summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/board-mop500.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 974da6eac8f..8bacdcdbc60 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -347,20 +347,16 @@ static int ske_kp_cols[] = {
COL_PIN_O4, COL_PIN_O5, COL_PIN_O6, COL_PIN_O7,
};
-static bool ske_config;
/*
* ske_set_gpio_row: request and set gpio rows
*/
static int ske_set_gpio_row(int gpio)
{
int ret;
-
- if (!ske_config) {
- ret = gpio_request(gpio, "ske-kp");
- if (ret < 0) {
- pr_err("ske_set_gpio_row: gpio request failed\n");
- return ret;
- }
+ ret = gpio_request(gpio, "ske-kp");
+ if (ret < 0) {
+ pr_err("ske_set_gpio_row: gpio request failed\n");
+ return ret;
}
ret = gpio_direction_output(gpio, 1);
@@ -391,8 +387,6 @@ static int ske_kp_init(void)
return ret;
}
}
- if (!ske_config)
- ske_config = true;
return 0;
}
@@ -400,11 +394,15 @@ static int ske_kp_init(void)
static int ske_kp_exit(void)
{
struct ux500_pins *pins;
+ int i;
pins = ux500_pins_get("ske");
if (pins)
ux500_pins_disable(pins);
+ for (i = 0; i < SKE_KPD_MAX_ROWS; i++)
+ gpio_free(ske_kp_rows[i]);
+
return 0;
}