aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorR Sricharan <r.sricharan@ti.com>2011-03-11 01:04:44 -0500
committerTony Lindgren <tony@atomide.com>2011-03-11 14:32:30 -0500
commitdae335265561bf6ade66be494888a24b6419e345 (patch)
tree68544adc0eaac857c03e529cd07b551c070124a5 /arch/arm
parent8aee6039465c9887af6a4babfa5b52f8bc96b43d (diff)
omap4: board-4430sdp: Initialise the serial pads
Use the mux framework to initialise the serial pads. Signed-off-by: sricharan <r.sricharan@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c71
1 files changed, 69 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 85805d432e38..670cbd567bf3 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -625,9 +625,76 @@ static struct omap_board_mux board_mux[] __initdata = {
625 OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), 625 OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
626 { .reg_offset = OMAP_MUX_TERMINATOR }, 626 { .reg_offset = OMAP_MUX_TERMINATOR },
627}; 627};
628
629static struct omap_device_pad serial2_pads[] __initdata = {
630 OMAP_MUX_STATIC("uart2_cts.uart2_cts",
631 OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0),
632 OMAP_MUX_STATIC("uart2_rts.uart2_rts",
633 OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
634 OMAP_MUX_STATIC("uart2_rx.uart2_rx",
635 OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0),
636 OMAP_MUX_STATIC("uart2_tx.uart2_tx",
637 OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
638};
639
640static struct omap_device_pad serial3_pads[] __initdata = {
641 OMAP_MUX_STATIC("uart3_cts_rctx.uart3_cts_rctx",
642 OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0),
643 OMAP_MUX_STATIC("uart3_rts_sd.uart3_rts_sd",
644 OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
645 OMAP_MUX_STATIC("uart3_rx_irrx.uart3_rx_irrx",
646 OMAP_PIN_INPUT | OMAP_MUX_MODE0),
647 OMAP_MUX_STATIC("uart3_tx_irtx.uart3_tx_irtx",
648 OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
649};
650
651static struct omap_device_pad serial4_pads[] __initdata = {
652 OMAP_MUX_STATIC("uart4_rx.uart4_rx",
653 OMAP_PIN_INPUT | OMAP_MUX_MODE0),
654 OMAP_MUX_STATIC("uart4_tx.uart4_tx",
655 OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
656};
657
658static struct omap_board_data serial2_data = {
659 .id = 1,
660 .pads = serial2_pads,
661 .pads_cnt = ARRAY_SIZE(serial2_pads),
662};
663
664static struct omap_board_data serial3_data = {
665 .id = 2,
666 .pads = serial3_pads,
667 .pads_cnt = ARRAY_SIZE(serial3_pads),
668};
669
670static struct omap_board_data serial4_data = {
671 .id = 3,
672 .pads = serial4_pads,
673 .pads_cnt = ARRAY_SIZE(serial4_pads),
674};
675
676static inline void board_serial_init(void)
677{
678 struct omap_board_data bdata;
679 bdata.flags = 0;
680 bdata.pads = NULL;
681 bdata.pads_cnt = 0;
682 bdata.id = 0;
683 /* pass dummy data for UART1 */
684 omap_serial_init_port(&bdata);
685
686 omap_serial_init_port(&serial2_data);
687 omap_serial_init_port(&serial3_data);
688 omap_serial_init_port(&serial4_data);
689}
628#else 690#else
629#define board_mux NULL 691#define board_mux NULL
630#endif 692
693static inline void board_serial_init(void)
694{
695 omap_serial_init();
696}
697 #endif
631 698
632static void __init omap_4430sdp_init(void) 699static void __init omap_4430sdp_init(void)
633{ 700{
@@ -644,7 +711,7 @@ static void __init omap_4430sdp_init(void)
644 omap4_i2c_init(); 711 omap4_i2c_init();
645 omap_sfh7741prox_init(); 712 omap_sfh7741prox_init();
646 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); 713 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
647 omap_serial_init(); 714 board_serial_init();
648 omap4_twl6030_hsmmc_init(mmc); 715 omap4_twl6030_hsmmc_init(mmc);
649 716
650 usb_musb_init(&musb_board_data); 717 usb_musb_init(&musb_board_data);