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