aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mx3
diff options
context:
space:
mode:
authorValentin Longchamp <valentin.longchamp@epfl.ch>2009-11-03 12:09:47 -0500
committerSascha Hauer <s.hauer@pengutronix.de>2009-11-14 04:29:14 -0500
commit421bf82e996826452ebe2011419f846a61950784 (patch)
treef1261f7cba7fe0c4bcc354c1a3ed4a34d4c948ef /arch/arm/mach-mx3
parent8963c49fdba293fbc21aee1bbae9afa99a52755f (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')
-rw-r--r--arch/arm/mach-mx3/mx31moboard.c20
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
46static unsigned int moboard_pins[] = { 46static 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
104static struct imxuart_platform_data uart_pdata = { 104static 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
111static struct imxuart_platform_data uart0_pdata = {
112 .init = moboard_uart0_init,
113};
114
115static 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