summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-ux500/board-u5500.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c
index 44a00c4478f..15f53543461 100644
--- a/arch/arm/mach-ux500/board-u5500.c
+++ b/arch/arm/mach-ux500/board-u5500.c
@@ -246,13 +246,13 @@ static int db5500_set_gpio_row(int gpio)
{
int ret = -1;
- if (db5500_config)
- return ret;
- ret = gpio_request(gpio, "db5500_kpd");
- if (ret < 0) {
- pr_err("db5500_set_gpio_row: gpio request failed\n");
- return ret;
+ if (!db5500_config) {
+ ret = gpio_request(gpio, "db5500_kpd");
+ if (ret < 0) {
+ pr_err("db5500_set_gpio_row: gpio request failed\n");
+ return ret;
+ }
}
ret = gpio_direction_output(gpio, 1);
@@ -277,14 +277,12 @@ static int db5500_kp_init(void)
ret = db5500_set_gpio_row(db5500_kp_rows[i]);
if (ret < 0) {
pr_err("db5500_kp_init: failed init\n");
- ux500_pins_disable(pins);
return ret;
}
}
- BUG_ON(db5500_config);
-
- db5500_config = true;
+ if (!db5500_config)
+ db5500_config = true;
return 0;
}