summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaga Radhesh <naga.radheshy@stericsson.com>2012-01-12 19:20:47 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:02:41 +0200
commit95e791e82c80f16e44f4ed570008b71f6888fa61 (patch)
tree6d45c0fdb6c918a7114198a93fdb9f310dc6246e
parent878e75f5c204dcc9fcb94d6d3038ba8e00be3831 (diff)
skekeypad:Release all acquired resources
During remove release the clock,irq's and gpio pins properly. ST-Ericsson ID: 410064 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I68fdc2fd16ca6476166b8a89e01eed0f02679fd9 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45282 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
-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;
}