From 0337d1dcb95937704fd386b1b108c6834e7843c5 Mon Sep 17 00:00:00 2001 From: Jonas Aaberg Date: Tue, 14 Feb 2012 07:47:02 +0100 Subject: ARM: ux500: gpio-keys: Remove dynamic handling of pins Dynamic handling of pins does not work properly if done manually from suspend/resume hooks, so let's remove it for the time beeing. ST-Ericsson Linux next: - ST-Ericsson ID: 369952 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I3b130256b19af7feae9db0e4a1bd72c7856bb88c Signed-off-by: Jonas Aaberg --- arch/arm/mach-ux500/board-mop500.c | 69 ++++++++++++++------------------------ 1 file changed, 26 insertions(+), 43 deletions(-) diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 81484572bcc..8df987925da 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c @@ -671,16 +671,15 @@ static struct gpio_keys_button mop500_gpio_keys[] = { } }; -static struct regulator *sensors1p_regulator; -struct ux500_pins *sensors1p_pins; -static int mop500_sensors1p_activate(struct device *dev); -static void mop500_sensors1p_deactivate(struct device *dev); +static struct regulator *gpio_keys_regulator; +static int mop500_gpio_keys_activate(struct device *dev); +static void mop500_gpio_keys_deactivate(struct device *dev); static struct gpio_keys_platform_data mop500_gpio_keys_data = { .buttons = mop500_gpio_keys, .nbuttons = ARRAY_SIZE(mop500_gpio_keys), - .enable = mop500_sensors1p_activate, - .disable = mop500_sensors1p_deactivate, + .enable = mop500_gpio_keys_activate, + .disable = mop500_gpio_keys_deactivate, }; static struct platform_device mop500_gpio_keys_device = { @@ -709,20 +708,15 @@ static struct platform_device snowball_gpio_en_3v3_regulator_device = { }; #endif -static int mop500_sensors1p_activate(struct device *dev) +static int mop500_gpio_keys_activate(struct device *dev) { - if (sensors1p_pins == NULL) - return -EINVAL; - - ux500_pins_enable(sensors1p_pins); - - sensors1p_regulator = regulator_get(&mop500_gpio_keys_device.dev, + gpio_keys_regulator = regulator_get(&mop500_gpio_keys_device.dev, "vcc"); - if (IS_ERR(sensors1p_regulator)) { + if (IS_ERR(gpio_keys_regulator)) { dev_err(&mop500_gpio_keys_device.dev, "no regulator\n"); - return PTR_ERR(sensors1p_regulator); + return PTR_ERR(gpio_keys_regulator); } - regulator_enable(sensors1p_regulator); + regulator_enable(gpio_keys_regulator); /* * Please be aware that the start-up time of the SFH7741 is @@ -732,31 +726,31 @@ static int mop500_sensors1p_activate(struct device *dev) return 0; } -static void mop500_sensors1p_deactivate(struct device *dev) +static void mop500_gpio_keys_deactivate(struct device *dev) { - if (!IS_ERR(sensors1p_regulator)) { - regulator_disable(sensors1p_regulator); - regulator_put(sensors1p_regulator); + if (!IS_ERR(gpio_keys_regulator)) { + regulator_disable(gpio_keys_regulator); + regulator_put(gpio_keys_regulator); } - - if (sensors1p_pins != NULL) - ux500_pins_disable(sensors1p_pins); } -static __init void mop500_sensors1p_init(void) +static __init void mop500_gpio_keys_init(void) { - sensors1p_pins = ux500_pins_get("gpio-keys.0"); + struct ux500_pins *gpio_keys_pins = ux500_pins_get("gpio-keys.0"); - if (sensors1p_pins == NULL) { - pr_err("sensors1p: Fail to get keys\n"); + if (gpio_keys_pins == NULL) { + pr_err("gpio_keys: Fail to get pins\n"); return; } - mop500_gpio_keys[0].gpio = PIN_NUM(sensors1p_pins->cfg[0]); - mop500_gpio_keys[1].gpio = PIN_NUM(sensors1p_pins->cfg[1]); + ux500_pins_enable(gpio_keys_pins); + + mop500_gpio_keys[0].gpio = PIN_NUM(gpio_keys_pins->cfg[0]); + mop500_gpio_keys[1].gpio = PIN_NUM(gpio_keys_pins->cfg[1]); + } #else -static inline void mop500_sensors1p_init(void) { } +static inline void mop500_gpio_keys_init(void) { } #endif #ifdef CONFIG_LEDS_PWM @@ -1217,9 +1211,6 @@ static struct platform_device *snowball_platform_devs[] __initdata = { static void __init mop500_init_machine(void) { - mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; - mop500_gpio_keys[1].gpio = GPIO_HAL_SENSOR; - u8500_init_devices(); mop500_pins_init(); @@ -1231,7 +1222,7 @@ static void __init mop500_init_machine(void) ARRAY_SIZE(u8500_hsi_devices)); #endif - mop500_sensors1p_init(); + mop500_gpio_keys_init(); platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); @@ -1299,14 +1290,6 @@ static void __init snowball_init_machine(void) static void __init hrefv60_init_machine(void) { - /* - * The HREFv60 board removed a GPIO expander and routed - * all these GPIO pins to the internal GPIO controller - * instead. - */ - mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; - mop500_gpio_keys[1].gpio = HREFV60_HAL_SW_GPIO; - #ifdef CONFIG_INPUT_AB8500_ACCDET /* * On boards hrefpv60 and later, the accessory insertion/removal, @@ -1326,7 +1309,7 @@ static void __init hrefv60_init_machine(void) ARRAY_SIZE(u8500_hsi_devices)); #endif - mop500_sensors1p_init(); + mop500_gpio_keys_init(); platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); -- cgit v1.2.3