diff options
author | Bartosz Markowski <bartosz.markowski@tieto.com> | 2011-12-06 12:46:29 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:34 +0200 |
commit | 96d472636ea3216270ec94f6a0c5c896dfcf8002 (patch) | |
tree | 32b321738ed779bb72a98fc0afc71f9e02ee1a6f /arch/arm | |
parent | 5b3b5e0cc12f6ad8d7a4e3d96f29b4c06dc66a7e (diff) |
u5500: cw1200: Remove requesting SDIO pins
The SDIO pins belongs to the SDIO driver and
should be handled by the SDIO driver only.
The reason that it has worked up until now is that
the SDIO driver has just started using pm runtime.
Since both WLAN and SDIO framework enable
the pins, the number of users is set to two.
SDIO tries to release the pins (after 50 ms of inactivity
in order to save power), the usage count does not go
down to 0 and therefore the pins are not reconfigured
to GPIOs, which they must be when PL18X is not driving
the pins due to power down).
ST-Ericsson ID: 375493
ST-Ericsson Linux next: NA
ST-Ericsson FOSS-OUT ID: NA
Change-Id: Ibe3dfd32cb16a9d629a8c405e5723aec787a5ae6
Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/41183
Reviewed-by: QATOOLS
Reviewed-by: QABUILD
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-ux500/board-u5500-wlan.c | 43 |
1 files changed, 2 insertions, 41 deletions
diff --git a/arch/arm/mach-ux500/board-u5500-wlan.c b/arch/arm/mach-ux500/board-u5500-wlan.c index 8459ebd6aac..3683f3ad8bb 100644 --- a/arch/arm/mach-ux500/board-u5500-wlan.c +++ b/arch/arm/mach-ux500/board-u5500-wlan.c @@ -12,7 +12,6 @@ #include <linux/regulator/consumer.h> #include <asm/mach-types.h> #include <mach/irqs.h> -#include <plat/pincfg.h> #include "pins.h" #include <mach/cw1200_plat.h> @@ -44,38 +43,8 @@ const struct cw1200_platform_data *cw1200_u5500_get_platform_data(void) } EXPORT_SYMBOL_GPL(cw1200_u5500_get_platform_data); -static int cw1200_pins_enable(bool enable) -{ - struct ux500_pins *pins = NULL; - int ret = 0; - - pins = ux500_pins_get("sdi3"); - - if (!pins) { - printk(KERN_ERR "cw1200: Pins are not found. " - "Check platform data.\n"); - return -ENOENT; - } - - if (enable) - ret = ux500_pins_enable(pins); - else - ret = ux500_pins_disable(pins); - - if (ret) - printk(KERN_ERR "cw1200: Pins can not be %s: %d.\n", - enable ? "enabled" : "disabled", - ret); - - ux500_pins_put(pins); - - return ret; -} - int __init u5500_wlan_init(void) { - int ret; - if (machine_is_u5500()) { cw1200_device.num_resources = ARRAY_SIZE(cw1200_u5500_resources); cw1200_device.resource = cw1200_u5500_resources; @@ -92,18 +61,10 @@ int __init u5500_wlan_init(void) cw1200_device.dev.release = cw1200_release; - ret = cw1200_pins_enable(true); - if (WARN_ON(ret)) - return ret; - - ret = platform_device_register(&cw1200_device); - if (ret) - cw1200_pins_enable(false); - - return ret; + return platform_device_register(&cw1200_device); } static void cw1200_release(struct device *dev) { - cw1200_pins_enable(false); + } |