diff options
author | Florian Fainelli <florian@openwrt.org> | 2007-06-02 23:13:51 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2007-06-02 23:13:51 +0000 |
commit | 7c6f7b805a57b60852eeffdf2c611327ab3b90d3 (patch) | |
tree | 7e6839d0a0b426439a52199cbc1ecdd54efd8a7a /target/linux/adm5120-2.6/files/drivers/serial | |
parent | a073e984b15308eb7e55728de75a58a989da522c (diff) | |
download | master-187ad058-7c6f7b805a57b60852eeffdf2c611327ab3b90d3.tar.gz master-187ad058-7c6f7b805a57b60852eeffdf2c611327ab3b90d3.tar.bz2 master-187ad058-7c6f7b805a57b60852eeffdf2c611327ab3b90d3.zip |
IRQ handler rewrite by Gabor Juhos, uses C no longer assembly
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7464 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/files/drivers/serial')
-rw-r--r-- | target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c b/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c index ea1010cca1..8a2adaa9c4 100644 --- a/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c +++ b/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c @@ -24,12 +24,8 @@ #include <linux/tty_flip.h> #include <linux/console.h> -#define ADM5120_UART_BASE0 0x12600000 -#define ADM5120_UART_BASE1 0x12800000 -#define ADM5120_UART_SIZE 0x20 - -#define ADM5120_UART_IRQ0 1 -#define ADM5120_UART_IRQ1 2 +#include <asm/mach-adm5120/adm5120_defs.h> +#include <asm/mach-adm5120/adm5120_irq.h> #define ADM5120_UART_REG(base, reg) \ (*(volatile u32 *)KSEG1ADDR((base)+(reg))) @@ -421,9 +417,9 @@ static struct uart_ops adm5120ser_ops = { static void adm5120console_put(const char c) { - while ((ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_FR) & + while ((ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_FR) & ADM5120_UART_TXFF) != 0); - ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_DATA) = c; + ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_DATA) = c; } static void adm5120console_write(struct console *con, const char *s, @@ -440,14 +436,14 @@ static void adm5120console_write(struct console *con, const char *s, static int __init adm5120console_setup(struct console *con, char *options) { /* Set to 115200 baud, 8N1 and enable FIFO */ - ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_L) = + ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_L) = ADM5120_UART_BAUD115200 & 0xff; - ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_M) = + ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_M) = ADM5120_UART_BAUD115200 >> 8; - ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_H) = + ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_H) = ADM5120_UART_W8 | ADM5120_UART_FIFO_EN; /* Enable port */ - ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_CR) = + ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_CR) = ADM5120_UART_EN; return 0; @@ -477,8 +473,8 @@ console_initcall(adm5120console_init); static struct uart_port adm5120ser_ports[] = { { - .iobase = ADM5120_UART_BASE0, - .irq = ADM5120_UART_IRQ0, + .iobase = ADM5120_UART0_BASE, + .irq = ADM5120_IRQ_UART0, .uartclk = ADM5120_UARTCLK_FREQ, .fifosize = 16, .ops = &adm5120ser_ops, @@ -487,8 +483,8 @@ static struct uart_port adm5120ser_ports[] = { }, #if (CONFIG_ADM5120_NR_UARTS > 1) { - .iobase = ADM5120_UART_BASE1, - .irq = ADM5120_UART_IRQ1, + .iobase = ADM5120_UART1_BASE, + .irq = ADM5120_IRQ_UART1, .uartclk = ADM5120_UARTCLK_FREQ, .fifosize = 16, .ops = &adm5120ser_ops, |