From mboxrd@z Thu Jan 1 00:00:00 1970 From: s.hauer@pengutronix.de (Sascha Hauer) Date: Fri, 1 Jul 2011 10:04:14 +0200 Subject: [PATCH] ARM: mach-mx5/mx53_ard: Add gpio_keys support In-Reply-To: <1309455706-9509-1-git-send-email-daiane.angolini@freescale.com> References: <1309455706-9509-1-git-send-email-daiane.angolini@freescale.com> Message-ID: <20110701080414.GT6069@pengutronix.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, Jun 30, 2011 at 02:41:46PM -0300, Daiane Angolini wrote: > Signed-off-by: Daiane Angolini Applied for next. Sascha > --- > arch/arm/mach-mx5/Kconfig | 1 + > arch/arm/mach-mx5/board-mx53_ard.c | 35 +++++++++++++++++++++++++++++++++++ > 2 files changed, 36 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig > index 6a47d4c..b4e7c58 100644 > --- a/arch/arm/mach-mx5/Kconfig > +++ b/arch/arm/mach-mx5/Kconfig > @@ -216,6 +216,7 @@ config MACH_MX53_ARD > select IMX_HAVE_PLATFORM_IMX_I2C > select IMX_HAVE_PLATFORM_IMX_UART > select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX > + select IMX_HAVE_PLATFORM_GPIO_KEYS > help > Include support for MX53 ARD platform. This includes specific > configurations for the board and its peripherals. > diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c > index 280cefc..e2b8b2f 100644 > --- a/arch/arm/mach-mx5/board-mx53_ard.c > +++ b/arch/arm/mach-mx5/board-mx53_ard.c > @@ -39,6 +39,11 @@ > #define ARD_SD1_CD IMX_GPIO_NR(1, 1) > #define ARD_SD1_WP IMX_GPIO_NR(1, 9) > #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[] = { > /* UART1 */ > @@ -91,6 +96,35 @@ static iomux_v3_cfg_t mx53_ard_pads[] = { > /* I2C3 */ > MX53_PAD_GPIO_3__I2C3_SCL, > 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[] = { > @@ -199,6 +233,7 @@ static void __init mx53_ard_board_init(void) > imx53_add_imx2_wdt(0, NULL); > imx53_add_imx_i2c(1, &mx53_ard_i2c2_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) > -- > 1.7.4.1 > > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |