diff options
author | Valentin Longchamp <valentin.longchamp@epfl.ch> | 2009-11-03 12:09:47 -0500 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-11-14 04:29:14 -0500 |
commit | 421bf82e996826452ebe2011419f846a61950784 (patch) | |
tree | f1261f7cba7fe0c4bcc354c1a3ed4a34d4c948ef /arch/arm/mach-mx3/mx31moboard.c | |
parent | 8963c49fdba293fbc21aee1bbae9afa99a52755f (diff) |
mx31moboard: serial port fix
We get rid of CTS/RTS lines on uart0 on our platform.
This is the port we use as main kernel console. We do not
want it to be blocking because of CTS/RTS signals, not allowing
the system to boot or print messages.
However we often use it with a bluetooth module needing CTS/RTS
lines as backup login in case of trouble. To be able to use it,
we assert CTS low so that the module can always send chars.
Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-mx3/mx31moboard.c')
-rw-r--r-- | arch/arm/mach-mx3/mx31moboard.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/arm/mach-mx3/mx31moboard.c b/arch/arm/mach-mx3/mx31moboard.c index 9243de54041a..ff74fab34c85 100644 --- a/arch/arm/mach-mx3/mx31moboard.c +++ b/arch/arm/mach-mx3/mx31moboard.c | |||
@@ -45,8 +45,8 @@ | |||
45 | 45 | ||
46 | static unsigned int moboard_pins[] = { | 46 | static unsigned int moboard_pins[] = { |
47 | /* UART0 */ | 47 | /* UART0 */ |
48 | MX31_PIN_CTS1__CTS1, MX31_PIN_RTS1__RTS1, | ||
49 | MX31_PIN_TXD1__TXD1, MX31_PIN_RXD1__RXD1, | 48 | MX31_PIN_TXD1__TXD1, MX31_PIN_RXD1__RXD1, |
49 | MX31_PIN_CTS1__GPIO2_7, | ||
50 | /* UART4 */ | 50 | /* UART4 */ |
51 | MX31_PIN_PC_RST__CTS5, MX31_PIN_PC_VS2__RTS5, | 51 | MX31_PIN_PC_RST__CTS5, MX31_PIN_PC_VS2__RTS5, |
52 | MX31_PIN_PC_BVD2__TXD5, MX31_PIN_PC_BVD1__RXD5, | 52 | MX31_PIN_PC_BVD2__TXD5, MX31_PIN_PC_BVD1__RXD5, |
@@ -101,7 +101,18 @@ static struct platform_device mx31moboard_flash = { | |||
101 | .num_resources = 1, | 101 | .num_resources = 1, |
102 | }; | 102 | }; |
103 | 103 | ||
104 | static struct imxuart_platform_data uart_pdata = { | 104 | static int moboard_uart0_init(struct platform_device *pdev) |
105 | { | ||
106 | gpio_request(IOMUX_TO_GPIO(MX31_PIN_CTS1), "uart0-cts-hack"); | ||
107 | gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CTS1), 0); | ||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | static struct imxuart_platform_data uart0_pdata = { | ||
112 | .init = moboard_uart0_init, | ||
113 | }; | ||
114 | |||
115 | static struct imxuart_platform_data uart4_pdata = { | ||
105 | .flags = IMXUART_HAVE_RTSCTS, | 116 | .flags = IMXUART_HAVE_RTSCTS, |
106 | }; | 117 | }; |
107 | 118 | ||
@@ -284,8 +295,9 @@ static void __init mxc_board_init(void) | |||
284 | 295 | ||
285 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 296 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
286 | 297 | ||
287 | mxc_register_device(&mxc_uart_device0, &uart_pdata); | 298 | mxc_register_device(&mxc_uart_device0, &uart0_pdata); |
288 | mxc_register_device(&mxc_uart_device4, &uart_pdata); | 299 | |
300 | mxc_register_device(&mxc_uart_device4, &uart4_pdata); | ||
289 | 301 | ||
290 | mx31moboard_init_sel_gpios(); | 302 | mx31moboard_init_sel_gpios(); |
291 | 303 | ||