Commit 2a90a69f authored by Daiane Angolini's avatar Daiane Angolini Committed by Sascha Hauer

ARM: mach-mx5/mx53_ard: Add gpio_keys support

Signed-off-by: default avatarDaiane Angolini <daiane.angolini@freescale.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent d23cb578
...@@ -216,6 +216,7 @@ config MACH_MX53_ARD ...@@ -216,6 +216,7 @@ config MACH_MX53_ARD
select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_IMX_I2C
select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_IMX_UART
select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
select IMX_HAVE_PLATFORM_GPIO_KEYS
help help
Include support for MX53 ARD platform. This includes specific Include support for MX53 ARD platform. This includes specific
configurations for the board and its peripherals. configurations for the board and its peripherals.
......
...@@ -39,6 +39,11 @@ ...@@ -39,6 +39,11 @@
#define ARD_SD1_CD IMX_GPIO_NR(1, 1) #define ARD_SD1_CD IMX_GPIO_NR(1, 1)
#define ARD_SD1_WP IMX_GPIO_NR(1, 9) #define ARD_SD1_WP IMX_GPIO_NR(1, 9)
#define ARD_I2CPORTEXP_B IMX_GPIO_NR(2, 3) #define ARD_I2CPORTEXP_B IMX_GPIO_NR(2, 3)
#define ARD_VOLUMEDOWN IMX_GPIO_NR(4, 0)
#define ARD_HOME IMX_GPIO_NR(5, 10)
#define ARD_BACK IMX_GPIO_NR(5, 11)
#define ARD_PROG IMX_GPIO_NR(5, 12)
#define ARD_VOLUMEUP IMX_GPIO_NR(5, 13)
static iomux_v3_cfg_t mx53_ard_pads[] = { static iomux_v3_cfg_t mx53_ard_pads[] = {
/* UART1 */ /* UART1 */
...@@ -91,6 +96,35 @@ static iomux_v3_cfg_t mx53_ard_pads[] = { ...@@ -91,6 +96,35 @@ static iomux_v3_cfg_t mx53_ard_pads[] = {
/* I2C3 */ /* I2C3 */
MX53_PAD_GPIO_3__I2C3_SCL, MX53_PAD_GPIO_3__I2C3_SCL,
MX53_PAD_GPIO_16__I2C3_SDA, MX53_PAD_GPIO_16__I2C3_SDA,
/* GPIO */
MX53_PAD_DISP0_DAT16__GPIO5_10, /* home */
MX53_PAD_DISP0_DAT17__GPIO5_11, /* back */
MX53_PAD_DISP0_DAT18__GPIO5_12, /* prog */
MX53_PAD_DISP0_DAT19__GPIO5_13, /* vol up */
MX53_PAD_GPIO_10__GPIO4_0, /* vol down */
};
#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \
{ \
.gpio = gpio_num, \
.type = EV_KEY, \
.code = ev_code, \
.active_low = act_low, \
.desc = "btn " descr, \
.wakeup = wake, \
}
static struct gpio_keys_button ard_buttons[] = {
GPIO_BUTTON(ARD_HOME, KEY_HOME, 1, "home", 0),
GPIO_BUTTON(ARD_BACK, KEY_BACK, 1, "back", 0),
GPIO_BUTTON(ARD_PROG, KEY_PROGRAM, 1, "program", 0),
GPIO_BUTTON(ARD_VOLUMEUP, KEY_VOLUMEUP, 1, "volume-up", 0),
GPIO_BUTTON(ARD_VOLUMEDOWN, KEY_VOLUMEDOWN, 1, "volume-down", 0),
};
static const struct gpio_keys_platform_data ard_button_data __initconst = {
.buttons = ard_buttons,
.nbuttons = ARRAY_SIZE(ard_buttons),
}; };
static struct resource ard_smsc911x_resources[] = { static struct resource ard_smsc911x_resources[] = {
...@@ -199,6 +233,7 @@ static void __init mx53_ard_board_init(void) ...@@ -199,6 +233,7 @@ static void __init mx53_ard_board_init(void)
imx53_add_imx2_wdt(0, NULL); imx53_add_imx2_wdt(0, NULL);
imx53_add_imx_i2c(1, &mx53_ard_i2c2_data); imx53_add_imx_i2c(1, &mx53_ard_i2c2_data);
imx53_add_imx_i2c(2, &mx53_ard_i2c3_data); imx53_add_imx_i2c(2, &mx53_ard_i2c3_data);
imx_add_gpio_keys(&ard_button_data);
} }
static void __init mx53_ard_timer_init(void) static void __init mx53_ard_timer_init(void)
......
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