summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert MARKLUND <robert.marklund@stericsson.com>2011-12-08 09:34:58 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2011-12-08 10:29:11 +0100
commitc18d35020f72a8b5f6e345f0907d45acdd65f0f3 (patch)
treef27dc7be810c3eef80b2833c4cf36d4edf413e93
parent9f66af2452e6f7a6219ee2c8322a2ed4886b8443 (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--drivers/staging/cg2900/board-ux500-cg2900.c47
1 files changed, 41 insertions, 6 deletions
diff --git a/drivers/staging/cg2900/board-ux500-cg2900.c b/drivers/staging/cg2900/board-ux500-cg2900.c
index bd81f68fdc6..2376c5dc078 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,
@@ -269,15 +298,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 */