diff options
author | Govindraj.R <govindraj.raja@ti.com> | 2011-11-07 08:25:05 -0500 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-12-14 18:49:02 -0500 |
commit | 7496ba309f2adbce74d917fbb8bd3da26222d49f (patch) | |
tree | f54dd8f5ad2da160e537ef0ca85562b6bdd4381c /arch/arm/mach-omap2/board-4430sdp.c | |
parent | 273558b3a0399e368d99da5b3daf1c0e11b93e06 (diff) |
ARM: OMAP2+: UART: Add default mux for all uarts.
Padconf wakeup is used to wakeup uart after uart fclks/iclks are gated.
Rx-Pad wakeup was done by writing to rx-pad offset value populated in
serial.c idle_init. Remove the direct reading and writing into rx pad.
Remove the padconf field part of omap_uart_state struct and pad offsets
populated.
Now with mux framework support we can use mux_utilities
along with hmwod framework to handle io-pad configuration and enable rx-pad
wake-up mechanism.
To avoid breaking any board support add default mux data for all uart's
if mux info is not passed from board file.
With the default pads populated in serial.c wakeup capability for
rx pads is set, this can be used to enable uart_rx io-pad wakeup from
hwmod framework. The pad values in 3430sdp/4430sdp/omap4panda board file
are same as the default pad values populated in serial.c. Remove pad values
from 3430sdp/4430sdp/omap4panda board file and use the default pads
from serial.c file.
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-4430sdp.c')
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 68 |
1 files changed, 1 insertions, 67 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index ef2bbc09428a..5f264fad69bc 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -837,74 +837,8 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
837 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 837 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
838 | }; | 838 | }; |
839 | 839 | ||
840 | static struct omap_device_pad serial2_pads[] __initdata = { | ||
841 | OMAP_MUX_STATIC("uart2_cts.uart2_cts", | ||
842 | OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0), | ||
843 | OMAP_MUX_STATIC("uart2_rts.uart2_rts", | ||
844 | OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
845 | OMAP_MUX_STATIC("uart2_rx.uart2_rx", | ||
846 | OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0), | ||
847 | OMAP_MUX_STATIC("uart2_tx.uart2_tx", | ||
848 | OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
849 | }; | ||
850 | |||
851 | static struct omap_device_pad serial3_pads[] __initdata = { | ||
852 | OMAP_MUX_STATIC("uart3_cts_rctx.uart3_cts_rctx", | ||
853 | OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0), | ||
854 | OMAP_MUX_STATIC("uart3_rts_sd.uart3_rts_sd", | ||
855 | OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
856 | OMAP_MUX_STATIC("uart3_rx_irrx.uart3_rx_irrx", | ||
857 | OMAP_PIN_INPUT | OMAP_MUX_MODE0), | ||
858 | OMAP_MUX_STATIC("uart3_tx_irtx.uart3_tx_irtx", | ||
859 | OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
860 | }; | ||
861 | |||
862 | static struct omap_device_pad serial4_pads[] __initdata = { | ||
863 | OMAP_MUX_STATIC("uart4_rx.uart4_rx", | ||
864 | OMAP_PIN_INPUT | OMAP_MUX_MODE0), | ||
865 | OMAP_MUX_STATIC("uart4_tx.uart4_tx", | ||
866 | OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
867 | }; | ||
868 | |||
869 | static struct omap_board_data serial2_data __initdata = { | ||
870 | .id = 1, | ||
871 | .pads = serial2_pads, | ||
872 | .pads_cnt = ARRAY_SIZE(serial2_pads), | ||
873 | }; | ||
874 | |||
875 | static struct omap_board_data serial3_data __initdata = { | ||
876 | .id = 2, | ||
877 | .pads = serial3_pads, | ||
878 | .pads_cnt = ARRAY_SIZE(serial3_pads), | ||
879 | }; | ||
880 | |||
881 | static struct omap_board_data serial4_data __initdata = { | ||
882 | .id = 3, | ||
883 | .pads = serial4_pads, | ||
884 | .pads_cnt = ARRAY_SIZE(serial4_pads), | ||
885 | }; | ||
886 | |||
887 | static inline void board_serial_init(void) | ||
888 | { | ||
889 | struct omap_board_data bdata; | ||
890 | bdata.flags = 0; | ||
891 | bdata.pads = NULL; | ||
892 | bdata.pads_cnt = 0; | ||
893 | bdata.id = 0; | ||
894 | /* pass dummy data for UART1 */ | ||
895 | omap_serial_init_port(&bdata); | ||
896 | |||
897 | omap_serial_init_port(&serial2_data); | ||
898 | omap_serial_init_port(&serial3_data); | ||
899 | omap_serial_init_port(&serial4_data); | ||
900 | } | ||
901 | #else | 840 | #else |
902 | #define board_mux NULL | 841 | #define board_mux NULL |
903 | |||
904 | static inline void board_serial_init(void) | ||
905 | { | ||
906 | omap_serial_init(); | ||
907 | } | ||
908 | #endif | 842 | #endif |
909 | 843 | ||
910 | static void omap4_sdp4430_wifi_mux_init(void) | 844 | static void omap4_sdp4430_wifi_mux_init(void) |
@@ -954,7 +888,7 @@ static void __init omap_4430sdp_init(void) | |||
954 | omap4_i2c_init(); | 888 | omap4_i2c_init(); |
955 | omap_sfh7741prox_init(); | 889 | omap_sfh7741prox_init(); |
956 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); | 890 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); |
957 | board_serial_init(); | 891 | omap_serial_init(); |
958 | omap_sdrc_init(NULL, NULL); | 892 | omap_sdrc_init(NULL, NULL); |
959 | omap4_sdp4430_wifi_init(); | 893 | omap4_sdp4430_wifi_init(); |
960 | omap4_twl6030_hsmmc_init(mmc); | 894 | omap4_twl6030_hsmmc_init(mmc); |