From e9906ade5a613fb203aa9aef6fa21ff4dba939fd Mon Sep 17 00:00:00 2001 From: Christophe Guibout Date: Fri, 2 Sep 2011 16:02:13 +0530 Subject: 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 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30041 Reviewed-by: Virupax SADASHIVPETIMATH Tested-by: Virupax SADASHIVPETIMATH --- drivers/staging/cg2900/board-mop500-cg2900.c | 31 ++++++++++++++++++++++++++-- 1 file 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 #include +#include #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 = -- cgit v1.2.3