Commit 77789ad8 authored by Andrew Victor's avatar Andrew Victor Committed by Russell King

[ARM] 5263/2: [AT91] GPIO buttons as wakeup sources

Allow the various GPIO-connected buttons to be used as wakeup sources.
Also enable the internal GPIO pullup.
Signed-off-by: default avatarSedji Gaouaou <sedji.gaouaou@atmel.com>
Signed-off-by: default avatarAndrew Victor <linux@maxim.org.za>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 2e9f12d6
...@@ -193,11 +193,11 @@ static struct platform_device csb300_button_device = { ...@@ -193,11 +193,11 @@ static struct platform_device csb300_button_device = {
static void __init csb300_add_device_buttons(void) static void __init csb300_add_device_buttons(void)
{ {
at91_set_gpio_input(AT91_PIN_PB29, 0); /* sw0 */ at91_set_gpio_input(AT91_PIN_PB29, 1); /* sw0 */
at91_set_deglitch(AT91_PIN_PB29, 1); at91_set_deglitch(AT91_PIN_PB29, 1);
at91_set_gpio_input(AT91_PIN_PB28, 0); /* sw1 */ at91_set_gpio_input(AT91_PIN_PB28, 1); /* sw1 */
at91_set_deglitch(AT91_PIN_PB28, 1); at91_set_deglitch(AT91_PIN_PB28, 1);
at91_set_gpio_input(AT91_PIN_PA21, 0); /* sw2 */ at91_set_gpio_input(AT91_PIN_PA21, 1); /* sw2 */
at91_set_deglitch(AT91_PIN_PA21, 1); at91_set_deglitch(AT91_PIN_PA21, 1);
platform_device_register(&csb300_button_device); platform_device_register(&csb300_button_device);
...@@ -224,7 +224,7 @@ static struct gpio_led csb_leds[] = { ...@@ -224,7 +224,7 @@ static struct gpio_led csb_leds[] = {
.gpio = AT91_PIN_PB0, .gpio = AT91_PIN_PB0,
.active_low = 1, .active_low = 1,
.default_trigger = "ide-disk", .default_trigger = "ide-disk",
}, }
}; };
......
...@@ -435,24 +435,28 @@ static struct gpio_keys_button ek_buttons[] = { ...@@ -435,24 +435,28 @@ static struct gpio_keys_button ek_buttons[] = {
.code = BTN_0, .code = BTN_0,
.desc = "Button 0", .desc = "Button 0",
.active_low = 1, .active_low = 1,
.wakeup = 1,
}, },
{ {
.gpio = AT91_PIN_PA26, .gpio = AT91_PIN_PA26,
.code = BTN_1, .code = BTN_1,
.desc = "Button 1", .desc = "Button 1",
.active_low = 1, .active_low = 1,
.wakeup = 1,
}, },
{ {
.gpio = AT91_PIN_PA25, .gpio = AT91_PIN_PA25,
.code = BTN_2, .code = BTN_2,
.desc = "Button 2", .desc = "Button 2",
.active_low = 1, .active_low = 1,
.wakeup = 1,
}, },
{ {
.gpio = AT91_PIN_PA24, .gpio = AT91_PIN_PA24,
.code = BTN_3, .code = BTN_3,
.desc = "Button 3", .desc = "Button 3",
.active_low = 1, .active_low = 1,
.wakeup = 1,
} }
}; };
...@@ -472,13 +476,13 @@ static struct platform_device ek_button_device = { ...@@ -472,13 +476,13 @@ static struct platform_device ek_button_device = {
static void __init ek_add_device_buttons(void) static void __init ek_add_device_buttons(void)
{ {
at91_set_gpio_input(AT91_PIN_PA27, 0); /* btn0 */ at91_set_gpio_input(AT91_PIN_PA27, 1); /* btn0 */
at91_set_deglitch(AT91_PIN_PA27, 1); at91_set_deglitch(AT91_PIN_PA27, 1);
at91_set_gpio_input(AT91_PIN_PA26, 0); /* btn1 */ at91_set_gpio_input(AT91_PIN_PA26, 1); /* btn1 */
at91_set_deglitch(AT91_PIN_PA26, 1); at91_set_deglitch(AT91_PIN_PA26, 1);
at91_set_gpio_input(AT91_PIN_PA25, 0); /* btn2 */ at91_set_gpio_input(AT91_PIN_PA25, 1); /* btn2 */
at91_set_deglitch(AT91_PIN_PA25, 1); at91_set_deglitch(AT91_PIN_PA25, 1);
at91_set_gpio_input(AT91_PIN_PA24, 0); /* btn3 */ at91_set_gpio_input(AT91_PIN_PA24, 1); /* btn3 */
at91_set_deglitch(AT91_PIN_PA24, 1); at91_set_deglitch(AT91_PIN_PA24, 1);
platform_device_register(&ek_button_device); platform_device_register(&ek_button_device);
......
...@@ -297,7 +297,7 @@ static struct gpio_keys_button ek_buttons[] = { ...@@ -297,7 +297,7 @@ static struct gpio_keys_button ek_buttons[] = {
.active_low = 1, .active_low = 1,
.desc = "right_click", .desc = "right_click",
.wakeup = 1, .wakeup = 1,
}, }
}; };
static struct gpio_keys_platform_data ek_button_data = { static struct gpio_keys_platform_data ek_button_data = {
...@@ -316,9 +316,9 @@ static struct platform_device ek_button_device = { ...@@ -316,9 +316,9 @@ static struct platform_device ek_button_device = {
static void __init ek_add_device_buttons(void) static void __init ek_add_device_buttons(void)
{ {
at91_set_GPIO_periph(AT91_PIN_PC5, 0); /* left button */ at91_set_GPIO_periph(AT91_PIN_PC5, 1); /* left button */
at91_set_deglitch(AT91_PIN_PC5, 1); at91_set_deglitch(AT91_PIN_PC5, 1);
at91_set_GPIO_periph(AT91_PIN_PC4, 0); /* right button */ at91_set_GPIO_periph(AT91_PIN_PC4, 1); /* right button */
at91_set_deglitch(AT91_PIN_PC4, 1); at91_set_deglitch(AT91_PIN_PC4, 1);
platform_device_register(&ek_button_device); platform_device_register(&ek_button_device);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment