[PATCH 1/2] cg2900: Change the PMU_EN gpio for snowball

mathieu.poirier at linaro.org mathieu.poirier at linaro.org
Tue Mar 20 20:01:26 UTC 2012


From: Robert MARKLUND <robert.marklund at stericsson.com>

Snowball have the GPIO_EN on GPIO161 diffrent from u8500.

Change-Id: I6dddb1e3d7b7b80ce046fbd92a7852a3d0a6c59d
Signed-off-by: Robert Marklund <robert.marklund at stericsson.com>
---
 arch/arm/mach-ux500/board-mop500-pins.c     |    1 +
 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 8f9b02e..43d87c1 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 cd25ff0..ca3902b 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 */
-- 
1.7.5.4



More information about the kernel mailing list