aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2012-02-14 07:47:02 +0100
committerPhilippe Langlais <philippe.langlais@linaro.org>2012-02-15 09:35:37 +0100
commit0337d1dcb95937704fd386b1b108c6834e7843c5 (patch)
tree447fc7f70cf0aec76134049381caa5bffd44614c
parentdb46426b70b60267d4440811de934fe941964316 (diff)
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 <jonas.aberg@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/board-mop500.c69
1 files 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));