diff options
author | Andrew Victor <linux@maxim.org.za> | 2008-09-21 16:34:06 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-09-21 18:01:00 -0400 |
commit | 77789ad8b1d58eb9ba5e14860f439d024c5e4120 (patch) | |
tree | f3fe2afc6ea36ad1eba321f6119ce7dd8fbf2043 /arch/arm/mach-at91 | |
parent | 2e9f12d6dd061899385bcd910ecb8777c6d05a72 (diff) |
[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: Sedji Gaouaou <sedji.gaouaou@atmel.com>
Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91')
-rw-r--r-- | arch/arm/mach-at91/board-csb337.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9261ek.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9263ek.c | 6 |
3 files changed, 15 insertions, 11 deletions
diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c index 4bdf69d552eb..fea2529ebcf9 100644 --- a/arch/arm/mach-at91/board-csb337.c +++ b/arch/arm/mach-at91/board-csb337.c | |||
@@ -193,11 +193,11 @@ static struct platform_device csb300_button_device = { | |||
193 | 193 | ||
194 | static void __init csb300_add_device_buttons(void) | 194 | static void __init csb300_add_device_buttons(void) |
195 | { | 195 | { |
196 | at91_set_gpio_input(AT91_PIN_PB29, 0); /* sw0 */ | 196 | at91_set_gpio_input(AT91_PIN_PB29, 1); /* sw0 */ |
197 | at91_set_deglitch(AT91_PIN_PB29, 1); | 197 | at91_set_deglitch(AT91_PIN_PB29, 1); |
198 | at91_set_gpio_input(AT91_PIN_PB28, 0); /* sw1 */ | 198 | at91_set_gpio_input(AT91_PIN_PB28, 1); /* sw1 */ |
199 | at91_set_deglitch(AT91_PIN_PB28, 1); | 199 | at91_set_deglitch(AT91_PIN_PB28, 1); |
200 | at91_set_gpio_input(AT91_PIN_PA21, 0); /* sw2 */ | 200 | at91_set_gpio_input(AT91_PIN_PA21, 1); /* sw2 */ |
201 | at91_set_deglitch(AT91_PIN_PA21, 1); | 201 | at91_set_deglitch(AT91_PIN_PA21, 1); |
202 | 202 | ||
203 | platform_device_register(&csb300_button_device); | 203 | platform_device_register(&csb300_button_device); |
@@ -224,7 +224,7 @@ static struct gpio_led csb_leds[] = { | |||
224 | .gpio = AT91_PIN_PB0, | 224 | .gpio = AT91_PIN_PB0, |
225 | .active_low = 1, | 225 | .active_low = 1, |
226 | .default_trigger = "ide-disk", | 226 | .default_trigger = "ide-disk", |
227 | }, | 227 | } |
228 | }; | 228 | }; |
229 | 229 | ||
230 | 230 | ||
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c index 03d3382cfef6..4977409d4fc6 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
@@ -435,24 +435,28 @@ static struct gpio_keys_button ek_buttons[] = { | |||
435 | .code = BTN_0, | 435 | .code = BTN_0, |
436 | .desc = "Button 0", | 436 | .desc = "Button 0", |
437 | .active_low = 1, | 437 | .active_low = 1, |
438 | .wakeup = 1, | ||
438 | }, | 439 | }, |
439 | { | 440 | { |
440 | .gpio = AT91_PIN_PA26, | 441 | .gpio = AT91_PIN_PA26, |
441 | .code = BTN_1, | 442 | .code = BTN_1, |
442 | .desc = "Button 1", | 443 | .desc = "Button 1", |
443 | .active_low = 1, | 444 | .active_low = 1, |
445 | .wakeup = 1, | ||
444 | }, | 446 | }, |
445 | { | 447 | { |
446 | .gpio = AT91_PIN_PA25, | 448 | .gpio = AT91_PIN_PA25, |
447 | .code = BTN_2, | 449 | .code = BTN_2, |
448 | .desc = "Button 2", | 450 | .desc = "Button 2", |
449 | .active_low = 1, | 451 | .active_low = 1, |
452 | .wakeup = 1, | ||
450 | }, | 453 | }, |
451 | { | 454 | { |
452 | .gpio = AT91_PIN_PA24, | 455 | .gpio = AT91_PIN_PA24, |
453 | .code = BTN_3, | 456 | .code = BTN_3, |
454 | .desc = "Button 3", | 457 | .desc = "Button 3", |
455 | .active_low = 1, | 458 | .active_low = 1, |
459 | .wakeup = 1, | ||
456 | } | 460 | } |
457 | }; | 461 | }; |
458 | 462 | ||
@@ -472,13 +476,13 @@ static struct platform_device ek_button_device = { | |||
472 | 476 | ||
473 | static void __init ek_add_device_buttons(void) | 477 | static void __init ek_add_device_buttons(void) |
474 | { | 478 | { |
475 | at91_set_gpio_input(AT91_PIN_PA27, 0); /* btn0 */ | 479 | at91_set_gpio_input(AT91_PIN_PA27, 1); /* btn0 */ |
476 | at91_set_deglitch(AT91_PIN_PA27, 1); | 480 | at91_set_deglitch(AT91_PIN_PA27, 1); |
477 | at91_set_gpio_input(AT91_PIN_PA26, 0); /* btn1 */ | 481 | at91_set_gpio_input(AT91_PIN_PA26, 1); /* btn1 */ |
478 | at91_set_deglitch(AT91_PIN_PA26, 1); | 482 | at91_set_deglitch(AT91_PIN_PA26, 1); |
479 | at91_set_gpio_input(AT91_PIN_PA25, 0); /* btn2 */ | 483 | at91_set_gpio_input(AT91_PIN_PA25, 1); /* btn2 */ |
480 | at91_set_deglitch(AT91_PIN_PA25, 1); | 484 | at91_set_deglitch(AT91_PIN_PA25, 1); |
481 | at91_set_gpio_input(AT91_PIN_PA24, 0); /* btn3 */ | 485 | at91_set_gpio_input(AT91_PIN_PA24, 1); /* btn3 */ |
482 | at91_set_deglitch(AT91_PIN_PA24, 1); | 486 | at91_set_deglitch(AT91_PIN_PA24, 1); |
483 | 487 | ||
484 | platform_device_register(&ek_button_device); | 488 | platform_device_register(&ek_button_device); |
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c index 2924b6884fe2..8354015c6a23 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
@@ -297,7 +297,7 @@ static struct gpio_keys_button ek_buttons[] = { | |||
297 | .active_low = 1, | 297 | .active_low = 1, |
298 | .desc = "right_click", | 298 | .desc = "right_click", |
299 | .wakeup = 1, | 299 | .wakeup = 1, |
300 | }, | 300 | } |
301 | }; | 301 | }; |
302 | 302 | ||
303 | static struct gpio_keys_platform_data ek_button_data = { | 303 | static struct gpio_keys_platform_data ek_button_data = { |
@@ -316,9 +316,9 @@ static struct platform_device ek_button_device = { | |||
316 | 316 | ||
317 | static void __init ek_add_device_buttons(void) | 317 | static void __init ek_add_device_buttons(void) |
318 | { | 318 | { |
319 | at91_set_GPIO_periph(AT91_PIN_PC5, 0); /* left button */ | 319 | at91_set_GPIO_periph(AT91_PIN_PC5, 1); /* left button */ |
320 | at91_set_deglitch(AT91_PIN_PC5, 1); | 320 | at91_set_deglitch(AT91_PIN_PC5, 1); |
321 | at91_set_GPIO_periph(AT91_PIN_PC4, 0); /* right button */ | 321 | at91_set_GPIO_periph(AT91_PIN_PC4, 1); /* right button */ |
322 | at91_set_deglitch(AT91_PIN_PC4, 1); | 322 | at91_set_deglitch(AT91_PIN_PC4, 1); |
323 | 323 | ||
324 | platform_device_register(&ek_button_device); | 324 | platform_device_register(&ek_button_device); |