uart_cpu_sbusart.c revision 202036
111270Savstepan/*- 211270Savstepan * Copyright (c) 2006 Wojciech A. Koszek <wkoszek@FreeBSD.org> 311270Savstepan * All rights reserved. 411270Savstepan * 511270Savstepan * Redistribution and use in source and binary forms, with or without 611270Savstepan * modification, are permitted provided that the following conditions 711270Savstepan * are met: 811270Savstepan * 1. Redistributions of source code must retain the above copyright 911270Savstepan * notice, this list of conditions and the following disclaimer. 1011270Savstepan * 2. Redistributions in binary form must reproduce the above copyright 1111270Savstepan * notice, this list of conditions and the following disclaimer in the 1211270Savstepan * documentation and/or other materials provided with the distribution. 1311270Savstepan * 1411270Savstepan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1511270Savstepan * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1611270Savstepan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1711270Savstepan * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1811270Savstepan * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1911270Savstepan * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2011270Savstepan * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2111270Savstepan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2211270Savstepan * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2311270Savstepan * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2411270Savstepan * SUCH DAMAGE. 2511270Savstepan * 2615235Sgoetz * $Id$ 2711270Savstepan */ 2811270Savstepan/* 2911270Savstepan * Skeleton of this file was based on respective code for ARM 3011270Savstepan * code written by Olivier Houchard. 3111270Savstepan */ 3211270Savstepan/* 3311270Savstepan * XXXMIPS: This file is hacked from arm/... . XXXMIPS here means this file is 3411270Savstepan * experimental and was written for MIPS32 port. 3511270Savstepan */ 3611270Savstepan#include "opt_uart.h" 3711270Savstepan 3811270Savstepan#include <sys/cdefs.h> 3911270Savstepan__FBSDID("$FreeBSD: head/sys/mips/sentry5/uart_cpu_sbusart.c 202036 2010-01-10 20:09:30Z imp $"); 4011270Savstepan 4111270Savstepan#include <sys/param.h> 4211270Savstepan#include <sys/systm.h> 4311270Savstepan#include <sys/bus.h> 4411270Savstepan#include <sys/cons.h> 4511270Savstepan 4611270Savstepan#include <machine/bus.h> 4711270Savstepan 4811270Savstepan#include <dev/uart/uart.h> 4911270Savstepan#include <dev/uart/uart_cpu.h> 5011270Savstepan 5111270Savstepan#include <mips/sentry5/sentry5reg.h> 5211270Savstepan 5311270Savstepanbus_space_tag_t uart_bus_space_io; 5411270Savstepanbus_space_tag_t uart_bus_space_mem; 5511270Savstepan 5611270Savstepanextern struct uart_ops malta_usart_ops; 5711270Savstepanextern struct bus_space malta_bs_tag; 5811270Savstepan 5911270Savstepanint 6011270Savstepanuart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2) 6111270Savstepan{ 6211270Savstepan return ((b1->bsh == b2->bsh && b1->bst == b2->bst) ? 1 : 0); 6311270Savstepan} 6411270Savstepan 6511270Savstepanint 6611270Savstepanuart_cpu_getdev(int devtype, struct uart_devinfo *di) 6711270Savstepan{ 6811270Savstepan di->ops = uart_getops(&uart_ns8250_class); 6911270Savstepan di->bas.chan = 0; 7011270Savstepan di->bas.bst = 0; 7111270Savstepan di->bas.regshft = 0; 7211270Savstepan di->bas.rclk = 0; 7311270Savstepan di->baudrate = 115200; 7411270Savstepan di->databits = 8; 7511270Savstepan di->stopbits = 1; 7611270Savstepan di->parity = UART_PARITY_NONE; 7711270Savstepan 7811270Savstepan uart_bus_space_io = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR); 7911270Savstepan uart_bus_space_mem = mips_bus_space_generic; 8011270Savstepan di->bas.bsh = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR); 8111270Savstepan return (0); 8211270Savstepan} 8311270Savstepan