aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/board-stamp9g20.c
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-04-05 02:14:28 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2012-04-17 05:04:42 -0400
commit71b149b3f740501c2d59c80de5b10f5e45051099 (patch)
tree101450eaa5658b89d9d85e67fa1d7f56557457ab /arch/arm/mach-at91/board-stamp9g20.c
parenta27fa58117ae1161adefedde449e5a71b3c593a4 (diff)
ARM: at91: do not pin mux the UARTs in init_early
There is no need to pinmux the UART so early in the kernel. Move it to the board init. This will also allow to finally move the gpio driver to platform device/driver. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Diffstat (limited to 'arch/arm/mach-at91/board-stamp9g20.c')
-rw-r--r--arch/arm/mach-at91/board-stamp9g20.c61
1 files changed, 24 insertions, 37 deletions
diff --git a/arch/arm/mach-at91/board-stamp9g20.c b/arch/arm/mach-at91/board-stamp9g20.c
index 38a7ca5a5a60..ee86f9d7ee72 100644
--- a/arch/arm/mach-at91/board-stamp9g20.c
+++ b/arch/arm/mach-at91/board-stamp9g20.c
@@ -36,41 +36,6 @@ void __init stamp9g20_init_early(void)
36{ 36{
37 /* Initialize processor: 18.432 MHz crystal */ 37 /* Initialize processor: 18.432 MHz crystal */
38 at91_initialize(18432000); 38 at91_initialize(18432000);
39
40 /* DGBU on ttyS0. (Rx & Tx only) */
41 at91_register_uart(0, 0, 0);
42}
43
44static void __init stamp9g20evb_init_early(void)
45{
46 stamp9g20_init_early();
47
48 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
49 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
50 | ATMEL_UART_DTR | ATMEL_UART_DSR
51 | ATMEL_UART_DCD | ATMEL_UART_RI);
52}
53
54static void __init portuxg20_init_early(void)
55{
56 stamp9g20_init_early();
57
58 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
59 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
60 | ATMEL_UART_DTR | ATMEL_UART_DSR
61 | ATMEL_UART_DCD | ATMEL_UART_RI);
62
63 /* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */
64 at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
65
66 /* USART2 on ttyS3. (Rx, Tx, CTS, RTS) */
67 at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
68
69 /* USART4 on ttyS5. (Rx, Tx only) */
70 at91_register_uart(AT91SAM9260_ID_US4, 5, 0);
71
72 /* USART5 on ttyS6. (Rx, Tx only) */
73 at91_register_uart(AT91SAM9260_ID_US5, 6, 0);
74} 39}
75 40
76/* 41/*
@@ -251,6 +216,8 @@ void add_w1(void)
251void __init stamp9g20_board_init(void) 216void __init stamp9g20_board_init(void)
252{ 217{
253 /* Serial */ 218 /* Serial */
219 /* DGBU on ttyS0. (Rx & Tx only) */
220 at91_register_uart(0, 0, 0);
254 at91_add_device_serial(); 221 at91_add_device_serial();
255 /* NAND */ 222 /* NAND */
256 add_device_nand(); 223 add_device_nand();
@@ -266,6 +233,22 @@ void __init stamp9g20_board_init(void)
266 233
267static void __init portuxg20_board_init(void) 234static void __init portuxg20_board_init(void)
268{ 235{
236 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
237 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
238 | ATMEL_UART_DTR | ATMEL_UART_DSR
239 | ATMEL_UART_DCD | ATMEL_UART_RI);
240
241 /* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */
242 at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
243
244 /* USART2 on ttyS3. (Rx, Tx, CTS, RTS) */
245 at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
246
247 /* USART4 on ttyS5. (Rx, Tx only) */
248 at91_register_uart(AT91SAM9260_ID_US4, 5, 0);
249
250 /* USART5 on ttyS6. (Rx, Tx only) */
251 at91_register_uart(AT91SAM9260_ID_US5, 6, 0);
269 stamp9g20_board_init(); 252 stamp9g20_board_init();
270 /* USB Host */ 253 /* USB Host */
271 at91_add_device_usbh(&usbh_data); 254 at91_add_device_usbh(&usbh_data);
@@ -283,6 +266,10 @@ static void __init portuxg20_board_init(void)
283 266
284static void __init stamp9g20evb_board_init(void) 267static void __init stamp9g20evb_board_init(void)
285{ 268{
269 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
270 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
271 | ATMEL_UART_DTR | ATMEL_UART_DSR
272 | ATMEL_UART_DCD | ATMEL_UART_RI);
286 stamp9g20_board_init(); 273 stamp9g20_board_init();
287 /* USB Host */ 274 /* USB Host */
288 at91_add_device_usbh(&usbh_data); 275 at91_add_device_usbh(&usbh_data);
@@ -300,7 +287,7 @@ MACHINE_START(PORTUXG20, "taskit PortuxG20")
300 /* Maintainer: taskit GmbH */ 287 /* Maintainer: taskit GmbH */
301 .timer = &at91sam926x_timer, 288 .timer = &at91sam926x_timer,
302 .map_io = at91_map_io, 289 .map_io = at91_map_io,
303 .init_early = portuxg20_init_early, 290 .init_early = stamp9g20_init_early,
304 .init_irq = at91_init_irq_default, 291 .init_irq = at91_init_irq_default,
305 .init_machine = portuxg20_board_init, 292 .init_machine = portuxg20_board_init,
306MACHINE_END 293MACHINE_END
@@ -309,7 +296,7 @@ MACHINE_START(STAMP9G20, "taskit Stamp9G20")
309 /* Maintainer: taskit GmbH */ 296 /* Maintainer: taskit GmbH */
310 .timer = &at91sam926x_timer, 297 .timer = &at91sam926x_timer,
311 .map_io = at91_map_io, 298 .map_io = at91_map_io,
312 .init_early = stamp9g20evb_init_early, 299 .init_early = stamp9g20_init_early,
313 .init_irq = at91_init_irq_default, 300 .init_irq = at91_init_irq_default,
314 .init_machine = stamp9g20evb_board_init, 301 .init_machine = stamp9g20evb_board_init,
315MACHINE_END 302MACHINE_END