diff options
author | Vikram Pandita <vikram.pandita@ti.com> | 2009-09-19 16:13:19 -0400 |
---|---|---|
committer | Live-CD User <linux@linux.site> | 2009-09-19 16:13:19 -0400 |
commit | 1c2f04937b3e397a5695953c6b82aa4c77d21eb8 (patch) | |
tree | 8ccc7300fcc3fb4f3824575a7e7c47a4f3f366ba /include/linux | |
parent | 1e066d803ab7e34e9efb3b0766d618c0cd2598e4 (diff) |
serial: 8250: add IRQ trigger support
There is currently no provision for passing IRQ trigger flags for
serial IRQs with triggering requirements (such as GPIO IRQs)
This patch adds irqflags to plat_serial8250_port that can be passed
from board file to reqest_irq() of 8250 driver
Changes are backward compatible with boards passing UPF_SHARE_IRQ flag
Tested on Zoom2 board that has IRQF_TRIGGER_RISING requirement for 8250 irq
[Moved new flag to end to fix bugs in the original with the old_serial array
-- Alan]
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/serial_8250.h | 1 | ||||
-rw-r--r-- | include/linux/serial_core.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h index d4d2a78ad43e..fb46aba11fb5 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h | |||
@@ -22,6 +22,7 @@ struct plat_serial8250_port { | |||
22 | void __iomem *membase; /* ioremap cookie or NULL */ | 22 | void __iomem *membase; /* ioremap cookie or NULL */ |
23 | resource_size_t mapbase; /* resource base */ | 23 | resource_size_t mapbase; /* resource base */ |
24 | unsigned int irq; /* interrupt number */ | 24 | unsigned int irq; /* interrupt number */ |
25 | unsigned long irqflags; /* request_irq flags */ | ||
25 | unsigned int uartclk; /* UART clock rate */ | 26 | unsigned int uartclk; /* UART clock rate */ |
26 | void *private_data; | 27 | void *private_data; |
27 | unsigned char regshift; /* register shift */ | 28 | unsigned char regshift; /* register shift */ |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 23d2fb051f97..3cd255f0b211 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -265,6 +265,7 @@ struct uart_port { | |||
265 | unsigned int (*serial_in)(struct uart_port *, int); | 265 | unsigned int (*serial_in)(struct uart_port *, int); |
266 | void (*serial_out)(struct uart_port *, int, int); | 266 | void (*serial_out)(struct uart_port *, int, int); |
267 | unsigned int irq; /* irq number */ | 267 | unsigned int irq; /* irq number */ |
268 | unsigned long irqflags; /* irq flags */ | ||
268 | unsigned int uartclk; /* base uart clock */ | 269 | unsigned int uartclk; /* base uart clock */ |
269 | unsigned int fifosize; /* tx fifo size */ | 270 | unsigned int fifosize; /* tx fifo size */ |
270 | unsigned char x_char; /* xon/xoff char */ | 271 | unsigned char x_char; /* xon/xoff char */ |