Commit 5eaf7a21 authored by Ralf Baechle's avatar Ralf Baechle

Use new txx9 serial driver.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent cdaed73a
...@@ -635,6 +635,7 @@ config SGI_IP32 ...@@ -635,6 +635,7 @@ config SGI_IP32
select OWN_DMA select OWN_DMA
select DMA_IP32 select DMA_IP32
select DMA_NONCOHERENT select DMA_NONCOHERENT
select HAS_TXX9_SERIAL
select HW_HAS_PCI select HW_HAS_PCI
select R5000_CPU_SCACHE select R5000_CPU_SCACHE
select RM7000_CPU_SCACHE select RM7000_CPU_SCACHE
...@@ -814,6 +815,7 @@ config RWSEM_GENERIC_SPINLOCK ...@@ -814,6 +815,7 @@ config RWSEM_GENERIC_SPINLOCK
config RWSEM_XCHGADD_ALGORITHM config RWSEM_XCHGADD_ALGORITHM
bool bool
select HAS_TXX9_SERIAL
config GENERIC_CALIBRATE_DELAY config GENERIC_CALIBRATE_DELAY
bool bool
......
...@@ -44,6 +44,11 @@ ...@@ -44,6 +44,11 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/param.h> /* for HZ */ #include <linux/param.h> /* for HZ */
#include <linux/delay.h> #include <linux/delay.h>
#ifdef CONFIG_SERIAL_TXX9
#include <linux/tty.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
#endif
#include <asm/addrspace.h> #include <asm/addrspace.h>
#include <asm/time.h> #include <asm/time.h>
...@@ -211,8 +216,8 @@ void __init plat_setup(void) ...@@ -211,8 +216,8 @@ void __init plat_setup(void)
*/ */
ioport_resource.start = pci_io_resource.start; ioport_resource.start = pci_io_resource.start;
ioport_resource.end = pci_io_resource.end; ioport_resource.end = pci_io_resource.end;
iomem_resource.start = pci_mem_resource.start; iomem_resource.start = 0;
iomem_resource.end = pci_mem_resource.end; iomem_resource.end = 0xffffffff;
/* Reboot on panic */ /* Reboot on panic */
panic_timeout = 180; panic_timeout = 180;
...@@ -265,13 +270,33 @@ void __init plat_setup(void) ...@@ -265,13 +270,33 @@ void __init plat_setup(void)
strcat(argptr, " ip=bootp"); strcat(argptr, " ip=bootp");
} }
#ifdef CONFIG_TXX927_SERIAL_CONSOLE #ifdef CONFIG_SERIAL_TXX9
{
extern int early_serial_txx9_setup(struct uart_port *port);
int i;
struct uart_port req;
for(i = 0; i < 2; i++) {
memset(&req, 0, sizeof(req));
req.line = i;
req.iotype = UPIO_MEM;
req.membase = (char *)TX3927_SIO_REG(i);
req.mapbase = TX3927_SIO_REG(i);
req.irq = i == 0 ?
JMR3927_IRQ_IRC_SIO0 : JMR3927_IRQ_IRC_SIO1;
if (i == 0)
req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/;
req.uartclk = JMR3927_IMCLK;
early_serial_txx9_setup(&req);
}
}
#ifdef CONFIG_SERIAL_TXX9_CONSOLE
argptr = prom_getcmdline(); argptr = prom_getcmdline();
if ((argptr = strstr(argptr, "console=")) == NULL) { if ((argptr = strstr(argptr, "console=")) == NULL) {
argptr = prom_getcmdline(); argptr = prom_getcmdline();
strcat(argptr, " console=ttyS1,115200"); strcat(argptr, " console=ttyS1,115200");
} }
#endif #endif
#endif
} }
static void tx3927_setup(void); static void tx3927_setup(void);
......
...@@ -77,6 +77,11 @@ ...@@ -77,6 +77,11 @@
#include <linux/hdreg.h> #include <linux/hdreg.h>
#include <linux/ide.h> #include <linux/ide.h>
#endif #endif
#ifdef CONFIG_SERIAL_TXX9
#include <linux/tty.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
#endif
#undef TOSHIBA_RBTX4927_SETUP_DEBUG #undef TOSHIBA_RBTX4927_SETUP_DEBUG
...@@ -920,12 +925,30 @@ void __init toshiba_rbtx4927_setup(void) ...@@ -920,12 +925,30 @@ void __init toshiba_rbtx4927_setup(void)
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
#ifdef CONFIG_SERIAL_TXX9
{
extern int early_serial_txx9_setup(struct uart_port *port);
int i;
struct uart_port req;
for(i = 0; i < 2; i++) {
memset(&req, 0, sizeof(req));
req.line = i;
req.iotype = UPIO_MEM;
req.membase = (char *)(0xff1ff300 + i * 0x100);
req.mapbase = 0xff1ff300 + i * 0x100;
req.irq = 32 + i;
req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/;
req.uartclk = 50000000;
early_serial_txx9_setup(&req);
}
}
#ifdef CONFIG_SERIAL_TXX9_CONSOLE #ifdef CONFIG_SERIAL_TXX9_CONSOLE
argptr = prom_getcmdline(); argptr = prom_getcmdline();
if (strstr(argptr, "console=") == NULL) { if (strstr(argptr, "console=") == NULL) {
strcat(argptr, " console=ttyS0,38400"); strcat(argptr, " console=ttyS0,38400");
} }
#endif #endif
#endif
#ifdef CONFIG_ROOT_NFS #ifdef CONFIG_ROOT_NFS
argptr = prom_getcmdline(); argptr = prom_getcmdline();
......
...@@ -201,20 +201,6 @@ static inline int jmr3927_have_isac(void) ...@@ -201,20 +201,6 @@ static inline int jmr3927_have_isac(void)
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
/*
* UART defines for serial.h
*/
/* use Pre-scaler T0 (1/2) */
#define JMR3927_BASE_BAUD (JMR3927_IMCLK / 2 / 16)
#define UART0_ADDR 0xfffef300
#define UART1_ADDR 0xfffef400
#define UART0_INT JMR3927_IRQ_IRC_SIO0
#define UART1_INT JMR3927_IRQ_IRC_SIO1
#define UART0_FLAGS ASYNC_BOOT_AUTOCONF
#define UART1_FLAGS 0
/* /*
* IRQ mappings * IRQ mappings
*/ */
......
...@@ -103,17 +103,6 @@ ...@@ -103,17 +103,6 @@
#define IVR_SERIAL_PORT_DEFNS #define IVR_SERIAL_PORT_DEFNS
#endif #endif
#ifdef CONFIG_TOSHIBA_JMR3927
#include <asm/jmr3927/jmr3927.h>
#define TXX927_SERIAL_PORT_DEFNS \
{ .baud_base = JMR3927_BASE_BAUD, .port = UART0_ADDR, .irq = UART0_INT, \
.flags = UART0_FLAGS, .type = 1 }, \
{ .baud_base = JMR3927_BASE_BAUD, .port = UART1_ADDR, .irq = UART1_INT, \
.flags = UART1_FLAGS, .type = 1 },
#else
#define TXX927_SERIAL_PORT_DEFNS
#endif
#ifdef CONFIG_SERIAL_AU1X00 #ifdef CONFIG_SERIAL_AU1X00
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
#ifdef CONFIG_SOC_AU1000 #ifdef CONFIG_SOC_AU1000
...@@ -343,7 +332,6 @@ ...@@ -343,7 +332,6 @@
MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS \ MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS \
MOMENCO_OCELOT_SERIAL_PORT_DEFNS \ MOMENCO_OCELOT_SERIAL_PORT_DEFNS \
MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS \ MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS \
TXX927_SERIAL_PORT_DEFNS \
AU1000_SERIAL_PORT_DEFNS AU1000_SERIAL_PORT_DEFNS
#endif /* _ASM_SERIAL_H */ #endif /* _ASM_SERIAL_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