diff options
author | Philippe Langlais <philippe.langlais@stericsson.com> | 2011-10-17 09:23:45 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@linaro.org> | 2012-03-19 08:54:35 +0100 |
commit | 0907edbcbaf97d47de3dcd33984777048c31c470 (patch) | |
tree | 656f1c570a49092b2d9954719f5c587e7ba211c9 /arch/arm/mach-ux500/board-mop500-pins.c | |
parent | f4bd9341573e2117c8f03a7ca23ff779bf7c79a7 (diff) |
u9500: GPIO conflicts with external modem
On 8500, GPIO226 is used to set WLAN_PMU_EN for startup. More details
in CR 326583.
On 9500, GPIO226 is reserved for HSIT_CAWAKE0, and WLAN_PMU_EN is
mapped on AB_GPIO11. WLAN_IRQ has been moved from GPIO04 on 8500 to
GPIO144 on 9500 because GPIO04 is used for UART1 RX.
ST-Ericsson ID: 354110
ST-Ericsson FOSS-OUT ID: Trivial
ST-Ericsson Linux next: NA
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500-pins.c')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-pins.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index 120b3db1a78..726cc13fbee 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c @@ -22,10 +22,10 @@ enum custom_pin_cfg_t { PINS_FOR_DEFAULT, - PINS_FOR_U9500_21, + PINS_FOR_U9500, }; -static enum custom_pin_cfg_t pinsfor = PINS_FOR_DEFAULT; +static enum custom_pin_cfg_t pinsfor; static pin_cfg_t mop500_pins_common[] = { /* MSP0 */ @@ -93,7 +93,6 @@ static pin_cfg_t mop500_pins_default[] = { static pin_cfg_t hrefv60_pins[] = { /* WLAN */ - GPIO4_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ GPIO85_GPIO | PIN_OUTPUT_LOW,/* WLAN_ENA */ /* XENON Flashgun INTERFACE */ @@ -174,9 +173,16 @@ static pin_cfg_t hrefv60_pins[] = { GPIO95_GPIO | PIN_INPUT_PULLUP, }; -static pin_cfg_t u9500_21_pins[] = { +static pin_cfg_t u9500_pins[] = { GPIO4_U1_RXD | PIN_INPUT_PULLUP, GPIO5_U1_TXD | PIN_OUTPUT_HIGH, + GPIO144_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ + GPIO226_GPIO | PIN_OUTPUT_HIGH, /* HSI AC_WAKE0 */ +}; + +static pin_cfg_t u8500_pins[] = { + GPIO226_GPIO | PIN_OUTPUT_LOW, /* WLAN_PMU_EN */ + GPIO4_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ }; static pin_cfg_t snowball_pins[] = { @@ -885,12 +891,20 @@ static int __init early_pinsfor(char *p) pinsfor = PINS_FOR_DEFAULT; if (strcmp(p, "u9500-21") == 0) - pinsfor = PINS_FOR_U9500_21; + pinsfor = PINS_FOR_U9500; return 0; } early_param("pinsfor", early_pinsfor); +int pins_for_u9500(void) +{ + if (pinsfor == PINS_FOR_U9500) + return 1; + + return 0; +} + void __init mop500_pins_init(void) { nmk_config_pins(mop500_pins_common, @@ -902,11 +916,12 @@ void __init mop500_pins_init(void) ux500_pins_add(mop500_pins, ARRAY_SIZE(mop500_pins)); switch (pinsfor) { - case PINS_FOR_U9500_21: - nmk_config_pins(u9500_21_pins, ARRAY_SIZE(u9500_21_pins)); + case PINS_FOR_U9500: + nmk_config_pins(u9500_pins, ARRAY_SIZE(u9500_pins)); break; case PINS_FOR_DEFAULT: + nmk_config_pins(u8500_pins, ARRAY_SIZE(u8500_pins)); default: break; } |