1 /*
2  * Copyright 2008-2009 Analog Devices Inc.
3  *
4  * Licensed under the GPL-2 or later
5  */
6 
7 #include <asm/dma.h>
8 #include <asm/portmux.h>
9 
10 #if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS)
11 # define CONFIG_SERIAL_BFIN_CTSRTS
12 
13 # ifndef CONFIG_UART0_CTS_PIN
14 #  define CONFIG_UART0_CTS_PIN -1
15 # endif
16 
17 # ifndef CONFIG_UART0_RTS_PIN
18 #  define CONFIG_UART0_RTS_PIN -1
19 # endif
20 
21 # ifndef CONFIG_UART1_CTS_PIN
22 #  define CONFIG_UART1_CTS_PIN -1
23 # endif
24 
25 # ifndef CONFIG_UART1_RTS_PIN
26 #  define CONFIG_UART1_RTS_PIN -1
27 # endif
28 #endif
29 
30 struct bfin_serial_res {
31 	unsigned long uart_base_addr;
32 	int uart_irq;
33 	int uart_status_irq;
34 #ifdef CONFIG_SERIAL_BFIN_DMA
35 	unsigned int uart_tx_dma_channel;
36 	unsigned int uart_rx_dma_channel;
37 #endif
38 #ifdef CONFIG_SERIAL_BFIN_CTSRTS
39 	int uart_cts_pin;
40 	int uart_rts_pin;
41 #endif
42 };
43 
44 struct bfin_serial_res bfin_serial_resource[] = {
45 #ifdef CONFIG_SERIAL_BFIN_UART0
46 	{
47 	 0xFFC00400,
48 	 IRQ_UART0_RX,
49 	 IRQ_UART0_ERROR,
50 #ifdef CONFIG_SERIAL_BFIN_DMA
51 	 CH_UART0_TX,
52 	 CH_UART0_RX,
53 #endif
54 #ifdef CONFIG_SERIAL_BFIN_CTSRTS
55 	 CONFIG_UART0_CTS_PIN,
56 	 CONFIG_UART0_RTS_PIN,
57 #endif
58 	 },
59 #endif
60 #ifdef CONFIG_SERIAL_BFIN_UART1
61 	{
62 	 0xFFC02000,
63 	 IRQ_UART1_RX,
64 	 IRQ_UART1_ERROR,
65 #ifdef CONFIG_SERIAL_BFIN_DMA
66 	 CH_UART1_TX,
67 	 CH_UART1_RX,
68 #endif
69 #ifdef CONFIG_SERIAL_BFIN_CTSRTS
70 	 CONFIG_UART1_CTS_PIN,
71 	 CONFIG_UART1_RTS_PIN,
72 #endif
73 	 },
74 #endif
75 };
76 
77 #define DRIVER_NAME "bfin-uart"
78 
79 #include <asm/bfin_serial.h>
80