summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Guibout <christophe.guibout@stericsson.com>2011-09-02 16:02:13 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:05:53 +0200
commite9906ade5a613fb203aa9aef6fa21ff4dba939fd (patch)
treeebc1ce567abfb657e28c3c64f87fdd574b555fd1
parentac79f96435637ec7b82382123ba6c1dd39fcfe61 (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 Change-Id: Ia76f1a5a611a1929c12589a48c3e0774e891880a Signed-off-by: Christophe Guibout <christophe.guibout@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30041 Reviewed-by: Virupax SADASHIVPETIMATH <virupax.sadashivpetimath@stericsson.com> Tested-by: Virupax SADASHIVPETIMATH <virupax.sadashivpetimath@stericsson.com>
-rw-r--r--drivers/staging/cg2900/board-mop500-cg2900.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/drivers/staging/cg2900/board-mop500-cg2900.c b/drivers/staging/cg2900/board-mop500-cg2900.c
index 4c010a1287e..b8fa3e98fa2 100644
--- a/drivers/staging/cg2900/board-mop500-cg2900.c
+++ b/drivers/staging/cg2900/board-mop500-cg2900.c
@@ -20,11 +20,12 @@
#include <net/bluetooth/hci.h>
#include <plat/pincfg.h>
+#include <mach/gpio.h>
#include "cg2900.h"
#include "devices-cg2900.h"
#include "pins-db8500.h"
-
+#include "pins.h"
#define CG2900_BT_ENABLE_GPIO 170
#define CG2900_GBF_ENA_RESET_GPIO 171
@@ -140,6 +141,27 @@ static struct resource cg2900_uart_resources[] = {
},
};
+static struct resource cg2900_uart_resources_u9500[] = {
+ {
+ .start = CG2900_GBF_ENA_RESET_GPIO,
+ .end = CG2900_GBF_ENA_RESET_GPIO,
+ .flags = IORESOURCE_IO,
+ .name = "gbf_ena_reset",
+ },
+ {
+ .start = CG2900_BT_CTS_GPIO,
+ .end = CG2900_BT_CTS_GPIO,
+ .flags = IORESOURCE_IO,
+ .name = "cts_gpio",
+ },
+ {
+ .start = NOMADIK_GPIO_TO_IRQ(CG2900_BT_CTS_GPIO),
+ .end = NOMADIK_GPIO_TO_IRQ(CG2900_BT_CTS_GPIO),
+ .flags = IORESOURCE_IRQ,
+ .name = "cts_irq",
+ },
+};
+
static pin_cfg_t cg2900_uart_enabled[] = {
GPIO0_U0_CTSn | PIN_INPUT_PULLUP,
GPIO1_U0_RTSn | PIN_OUTPUT_HIGH,
@@ -195,7 +217,12 @@ static int __init board_cg2900_init(void)
dcg2900_init_platdata(&cg2900_test_platform_data);
dcg2900_init_platdata(&cg2900_uart_platform_data);
- if (machine_is_hrefv60()) {
+ if (pins_for_u9500()) {
+ ux500_cg2900_uart_device.num_resources =
+ ARRAY_SIZE(cg2900_uart_resources_u9500);
+ ux500_cg2900_uart_device.resource =
+ cg2900_uart_resources_u9500;
+ } else if (machine_is_hrefv60()) {
ux500_cg2900_uart_device.num_resources =
ARRAY_SIZE(cg2900_uart_resources);
ux500_cg2900_uart_device.resource =