Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -193,11 +193,11 @@ static struct platform_device csb300_button_device = {

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_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_gpio_input(AT91_PIN_PA21, 0);	/* sw2 */
	at91_set_gpio_input(AT91_PIN_PA21, 1);	/* sw2 */
	at91_set_deglitch(AT91_PIN_PA21, 1);

	platform_device_register(&csb300_button_device);
@@ -224,7 +224,7 @@ static struct gpio_led csb_leds[] = {
		.gpio			= AT91_PIN_PB0,
		.active_low		= 1,
		.default_trigger	= "ide-disk",
	},
	}
};


+8 −4
Original line number Diff line number Diff line
@@ -435,24 +435,28 @@ static struct gpio_keys_button ek_buttons[] = {
		.code		= BTN_0,
		.desc		= "Button 0",
		.active_low	= 1,
		.wakeup		= 1,
	},
	{
		.gpio		= AT91_PIN_PA26,
		.code		= BTN_1,
		.desc		= "Button 1",
		.active_low	= 1,
		.wakeup		= 1,
	},
	{
		.gpio		= AT91_PIN_PA25,
		.code		= BTN_2,
		.desc		= "Button 2",
		.active_low	= 1,
		.wakeup		= 1,
	},
	{
		.gpio		= AT91_PIN_PA24,
		.code		= BTN_3,
		.desc		= "Button 3",
		.active_low	= 1,
		.wakeup		= 1,
	}
};

@@ -472,13 +476,13 @@ static struct platform_device ek_button_device = {

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_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_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_gpio_input(AT91_PIN_PA24, 0);	/* btn3 */
	at91_set_gpio_input(AT91_PIN_PA24, 1);	/* btn3 */
	at91_set_deglitch(AT91_PIN_PA24, 1);

	platform_device_register(&ek_button_device);
+3 −3
Original line number Diff line number Diff line
@@ -297,7 +297,7 @@ static struct gpio_keys_button ek_buttons[] = {
		.active_low	= 1,
		.desc		= "right_click",
		.wakeup		= 1,
	},
	}
};

static struct gpio_keys_platform_data ek_button_data = {
@@ -316,9 +316,9 @@ static struct platform_device ek_button_device = {

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_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);

	platform_device_register(&ek_button_device);