diff options
author | Robert MARKLUND <robert.marklund@stericsson.com> | 2011-12-08 09:34:58 +0100 |
---|---|---|
committer | Mathieu J. Poirier <mathieu.poirier@linaro.org> | 2012-03-15 14:36:34 -0600 |
commit | 410dc88d192ee2a4c4bc7054f2b23bef0d176657 (patch) | |
tree | 84e0d2fb4affd23d07349176c49e27b66c89e420 | |
parent | 2c0662f3d654fb965a46df591141ef48546b98ba (diff) |
cg2900: Change the PMU_EN gpio for snowball
Snowball have the GPIO_EN on GPIO161 diffrent from u8500.
Change-Id: I6dddb1e3d7b7b80ce046fbd92a7852a3d0a6c59d
Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-pins.c | 1 | ||||
-rw-r--r-- | drivers/staging/cg2900/board-ux500-cg2900.c | 47 |
2 files changed, 42 insertions, 6 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index 8f9b02e252f..43d87c1f4df 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c @@ -235,6 +235,7 @@ static pin_cfg_t snowball_pins[] = { GPIO165_GPIO | PIN_INPUT_PULLUP, /* MAG_DRDY */ /* WLAN/GBF */ + GPIO161_GPIO | PIN_OUTPUT_LOW, /* WLAN_PMU_EN */ GPIO171_GPIO | PIN_OUTPUT_HIGH,/* GBF_ENA */ GPIO215_GPIO | PIN_OUTPUT_LOW,/* WLAN_ENA */ GPIO216_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ diff --git a/drivers/staging/cg2900/board-ux500-cg2900.c b/drivers/staging/cg2900/board-ux500-cg2900.c index cd25ff0a277..ca3902b4e2d 100644 --- a/drivers/staging/cg2900/board-ux500-cg2900.c +++ b/drivers/staging/cg2900/board-ux500-cg2900.c @@ -32,9 +32,10 @@ #define CG2900_BT_ENABLE_GPIO 170 #define CG2900_GBF_ENA_RESET_GPIO 171 #define WLAN_PMU_EN_GPIO 226 +#define WLAN_PMU_EN_GPIO_SNOWBALL 161 #define WLAN_PMU_EN_GPIO_U9500 AB8500_PIN_GPIO11 -#define CG2900_UX500_BT_CTS_GPIO 0 -#define CG2900_U5500_BT_CTS_GPIO 168 +#define CG2900_UX500_BT_CTS_GPIO 0 +#define CG2900_U5500_BT_CTS_GPIO 168 enum cg2900_gpio_pull_sleep ux500_cg2900_sleep_gpio[21] = { CG2900_NO_PULL, /* GPIO 0: PTA_CONFX */ @@ -160,6 +161,34 @@ static struct resource cg2900_uart_resources_u8500[] = { }, }; +static struct resource cg2900_uart_resources_snowball[] = { + { + .start = CG2900_GBF_ENA_RESET_GPIO, + .end = CG2900_GBF_ENA_RESET_GPIO, + .flags = IORESOURCE_IO, + .name = "gbf_ena_reset", + }, + { + .start = WLAN_PMU_EN_GPIO_SNOWBALL, + .end = WLAN_PMU_EN_GPIO_SNOWBALL, + .flags = IORESOURCE_IO, + .name = "pmu_en", + }, + { + .start = CG2900_UX500_BT_CTS_GPIO, + .end = CG2900_UX500_BT_CTS_GPIO, + .flags = IORESOURCE_IO, + .name = "cts_gpio", + }, + { + .start = NOMADIK_GPIO_TO_IRQ(CG2900_UX500_BT_CTS_GPIO), + .end = NOMADIK_GPIO_TO_IRQ(CG2900_UX500_BT_CTS_GPIO), + .flags = IORESOURCE_IRQ, + .name = "cts_irq", + }, +}; + + static struct resource cg2900_uart_resources_u9500[] = { { .start = CG2900_GBF_ENA_RESET_GPIO, @@ -275,15 +304,21 @@ static int __init board_cg2900_init(void) if (machine_is_hrefv60()) { /* u8500 */ ux500_cg2900_uart_device.num_resources = - ARRAY_SIZE(cg2900_uart_resources_u8500); + ARRAY_SIZE(cg2900_uart_resources_u8500); + ux500_cg2900_uart_device.resource = + cg2900_uart_resources_u8500; + } else if (machine_is_snowball()) { + /* snowball have diffrent PMU_EN gpio */ + ux500_cg2900_uart_device.num_resources = + ARRAY_SIZE(cg2900_uart_resources_snowball); ux500_cg2900_uart_device.resource = - cg2900_uart_resources_u8500; + cg2900_uart_resources_snowball; } else { /* u8500 pre v60*/ ux500_cg2900_uart_device.num_resources = - ARRAY_SIZE(cg2900_uart_resources_pre_v60); + ARRAY_SIZE(cg2900_uart_resources_pre_v60); ux500_cg2900_uart_device.resource = - cg2900_uart_resources_pre_v60; + cg2900_uart_resources_pre_v60; } } else if (cpu_is_u5500()) { /* u5500 */ |