Commit ae6e1719 authored by Ralf Bächle's avatar Ralf Bächle Committed by Linus Torvalds

[PATCH] mips: TXX9 serieal driver rewrite

Replace the old drivers/char/ serial driver for the Toshiba TX series of
SOCs with a modern style drivers/serial/ one.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent db3a8f46
......@@ -348,22 +348,6 @@ config ISTALLION
To compile this driver as a module, choose M here: the
module will be called istallion.
config SERIAL_TX3912
bool "TX3912/PR31700 serial port support"
depends on SERIAL_NONSTANDARD && MIPS && BROKEN_ON_SMP
help
The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core;
see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
Say Y here to enable kernel support for the on-board serial port.
config SERIAL_TX3912_CONSOLE
bool "Console on TX3912/PR31700 serial port"
depends on SERIAL_TX3912
help
The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core;
see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
Say Y here to direct console I/O to the on-board serial port.
config AU1000_UART
bool "Enable Au1000 UART Support"
depends on SERIAL_NONSTANDARD && MIPS
......
......@@ -20,7 +20,6 @@ obj-$(CONFIG_ESPSERIAL) += esp.o
obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o
obj-$(CONFIG_ROCKETPORT) += rocket.o
obj-$(CONFIG_SERIAL167) += serial167.o
obj-$(CONFIG_CYCLADES) += cyclades.o
......
This diff is collapsed.
/*
* drivers/char/serial_tx3912.h
*
* Copyright (C) 1999 Harald Koerfgen
* Copyright (C) 2000 Jim Pick <jim@jimpick.com>
* Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Serial driver for TMPR3912/05 and PR31700 processors
*/
#include <linux/serialP.h>
#include <linux/generic_serial.h>
/* UART Interrupt (Interrupt 2) bits (UARTA,UARTB) */
#define UART_RX_INT 9 /* receiver holding register full (31, 21) */
#define UART_RXOVERRUN_INT 8 /* receiver overrun error (30, 20) */
#define UART_FRAMEERR_INT 7 /* receiver frame error (29, 19) */
#define UART_BREAK_INT 6 /* received break signal (28, 18) */
#define UART_PARITYERR_INT 5 /* receiver parity error (27, 17) */
#define UART_TX_INT 4 /* transmit holding register empty (26, 16) */
#define UART_TXOVERRUN_INT 3 /* transmit overrun error (25, 15) */
#define UART_EMPTY_INT 2 /* both trans/recv regs empty (24, 14) */
#define UART_DMAFULL_INT 1 /* DMA at end of buffer (23, 13) */
#define UART_DMAHALF_INT 0 /* DMA halfway through buffer (22, 12) */
#define UARTA_SHIFT 22
#define UARTB_SHIFT 12
#define INTTYPE(interrupttype) (1 << interrupttype)
/*
* This driver can spew a whole lot of debugging output at you. If you
* need maximum performance, you should disable the DEBUG define.
*/
#undef TX3912_UART_DEBUG
#ifdef TX3912_UART_DEBUG
#define TX3912_UART_DEBUG_OPEN 0x00000001
#define TX3912_UART_DEBUG_SETTING 0x00000002
#define TX3912_UART_DEBUG_FLOW 0x00000004
#define TX3912_UART_DEBUG_MODEMSIGNALS 0x00000008
#define TX3912_UART_DEBUG_TERMIOS 0x00000010
#define TX3912_UART_DEBUG_TRANSMIT 0x00000020
#define TX3912_UART_DEBUG_RECEIVE 0x00000040
#define TX3912_UART_DEBUG_INTERRUPTS 0x00000080
#define TX3912_UART_DEBUG_PROBE 0x00000100
#define TX3912_UART_DEBUG_INIT 0x00000200
#define TX3912_UART_DEBUG_CLEANUP 0x00000400
#define TX3912_UART_DEBUG_CLOSE 0x00000800
#define TX3912_UART_DEBUG_FIRMWARE 0x00001000
#define TX3912_UART_DEBUG_MEMTEST 0x00002000
#define TX3912_UART_DEBUG_THROTTLE 0x00004000
#define TX3912_UART_DEBUG_ALL 0xffffffff
int rs_debug = TX3912_UART_DEBUG_ALL & ~TX3912_UART_DEBUG_TRANSMIT;
#define rs_dprintk(f, str...) if (rs_debug & f) printk (str)
#define func_enter() rs_dprintk (TX3912_UART_DEBUG_FLOW, \
"rs: enter %s\n", __FUNCTION__)
#define func_exit() rs_dprintk (TX3912_UART_DEBUG_FLOW, \
"rs: exit %s\n", __FUNCTION__)
#else
#define rs_dprintk(f, str...)
#define func_enter()
#define func_exit()
#endif /* TX3912_UART_DEBUG */
/*
* Number of serial ports
*/
#define TX3912_UART_NPORTS 2
/*
* Hardware specific serial port structure
*/
struct rs_port {
struct gs_port gs; /* Must be first field! */
unsigned long base;
int intshift; /* Register shift */
struct wait_queue *shutdown_wait;
int stat_flags;
struct async_icount icount; /* Counters for 4 input IRQs */
int read_status_mask;
int ignore_status_mask;
int x_char; /* XON/XOFF character */
};
......@@ -792,4 +792,18 @@ config SERIAL_M32R_PLDSIO
If you use an M3T-M32700UT or an OPSPUT platform,
please say Y.
config SERIAL_TXX9
bool "TMPTX39XX/49XX SIO support"
depends on MIPS || PCI
select SERIAL_CORE
config SERIAL_TXX9_CONSOLE
bool "TMPTX39XX/49XX SIO Console support"
depends on SERIAL_TXX9=y
select SERIAL_CORE_CONSOLE
config SERIAL_TXX9_STDSERIAL
bool "TX39XX/49XX SIO act as standard serial"
depends on !SERIAL_8250 && SERIAL_TXX9
endmenu
This diff is collapsed.
......@@ -1469,6 +1469,7 @@
#define PCI_DEVICE_ID_TOSHIBA_TX3927 0x000a
#define PCI_DEVICE_ID_TOSHIBA_TC35815CF 0x0030
#define PCI_DEVICE_ID_TOSHIBA_TX4927 0x0180
#define PCI_DEVICE_ID_TOSHIBA_TC86C001_MISC 0x0108
#define PCI_VENDOR_ID_RICOH 0x1180
#define PCI_DEVICE_ID_RICOH_RL5C465 0x0465
......
......@@ -103,6 +103,9 @@
/* Marvell MPSC */
#define PORT_MPSC 63
/* TXX9 type number */
#define PORT_TXX9 64
#ifdef __KERNEL__
#include <linux/config.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment