ARM: imx: use imx_add_gpio_keys to register "gpio-keys" devices
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 28 Feb 2011 17:04:33 +0000 (18:04 +0100)
committerSascha Hauer <s.hauer@pengutronix.de>
Thu, 19 May 2011 11:11:06 +0000 (13:11 +0200)
LAKML-Reference: 1302207841-12450-1-git-send-email-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c
arch/arm/mach-imx/mach-imx27_visstrim_m10.c
arch/arm/mach-mx3/Kconfig
arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
arch/arm/mach-mx3/mach-armadillo5x0.c
arch/arm/mach-mx3/mach-pcm037_eet.c
arch/arm/mach-mx3/mach-vpr200.c
arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c

index 56b930a13443dd53947967769b8c5cf11099a9dc..4ac00e9fdbe8c2ea93a46e7105b9c8a181bbb26b 100644 (file)
@@ -129,6 +129,7 @@ choice
 
 config MACH_EUKREA_MBIMXSD25_BASEBOARD
        bool "Eukrea MBIMXSD development board"
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_SSI
        help
          This adds board specific devices that can be found on Eukrea's
@@ -254,6 +255,7 @@ config MACH_MX27_3DS
 config MACH_IMX27_VISSTRIM_M10
        bool "Vista Silicon i.MX27 Visstrim_m10"
        select SOC_IMX27
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_SSI
        select IMX_HAVE_PLATFORM_IMX_UART
index 6269053505f7ffec90ca276b48c307623355c2a5..176e61bf44b6dc8099c37a951a03105b3e8d33b3 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/gpio.h>
 #include <linux/leds.h>
 #include <linux/platform_device.h>
-#include <linux/gpio_keys.h>
 #include <linux/input.h>
 #include <video/platform_lcd.h>
 
@@ -208,23 +207,14 @@ static struct gpio_keys_button eukrea_mbimxsd_gpio_buttons[] = {
        },
 };
 
-static struct gpio_keys_platform_data eukrea_mbimxsd_button_data = {
+static const struct gpio_keys_platform_data
+               eukrea_mbimxsd_button_data __initconst = {
        .buttons        = eukrea_mbimxsd_gpio_buttons,
        .nbuttons       = ARRAY_SIZE(eukrea_mbimxsd_gpio_buttons),
 };
 
-static struct platform_device eukrea_mbimxsd_button_device = {
-       .name           = "gpio-keys",
-       .id             = -1,
-       .num_resources  = 0,
-       .dev            = {
-               .platform_data  = &eukrea_mbimxsd_button_data,
-       }
-};
-
 static struct platform_device *platform_devices[] __initdata = {
        &eukrea_mbimxsd_leds_gpio,
-       &eukrea_mbimxsd_button_device,
        &eukrea_mbimxsd_lcd_powerdev,
 };
 
@@ -299,4 +289,5 @@ void __init eukrea_mbimxsd25_baseboard_init(void)
                                ARRAY_SIZE(eukrea_mbimxsd_i2c_devices));
 
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+       imx_add_gpio_keys(&eukrea_mbimxsd_button_data);
 }
index d7e0d219726a26b916aaf6b3be5315dd2464aa96..7ae43b1ec51715ece828b11a72937c99ccb920a7 100644 (file)
@@ -27,7 +27,6 @@
 #include <linux/mtd/physmap.h>
 #include <linux/i2c.h>
 #include <linux/i2c/pca953x.h>
-#include <linux/gpio_keys.h>
 #include <linux/input.h>
 #include <linux/gpio.h>
 #include <linux/delay.h>
@@ -130,19 +129,12 @@ static struct gpio_keys_button visstrim_gpio_keys[] = {
        }
 };
 
-static struct gpio_keys_platform_data visstrim_gpio_keys_platform_data = {
+static const struct gpio_keys_platform_data
+               visstrim_gpio_keys_platform_data __initconst = {
        .buttons        = visstrim_gpio_keys,
        .nbuttons       = ARRAY_SIZE(visstrim_gpio_keys),
 };
 
-static struct platform_device visstrim_gpio_keys_device = {
-       .name   = "gpio-keys",
-       .id     = -1,
-       .dev    = {
-               .platform_data  = &visstrim_gpio_keys_platform_data,
-       },
-};
-
 /* Visstrim_SM10 has a microSD slot connected to sdhc1 */
 static int visstrim_m10_sdhc1_init(struct device *dev,
                irq_handler_t detect_irq, void *data)
@@ -186,7 +178,6 @@ static struct platform_device visstrim_m10_nor_mtd_device = {
 };
 
 static struct platform_device *platform_devices[] __initdata = {
-       &visstrim_gpio_keys_device,
        &visstrim_m10_nor_mtd_device,
 };
 
@@ -255,6 +246,7 @@ static void __init visstrim_m10_board_init(void)
        imx27_add_mxc_mmc(0, &visstrim_m10_sdhc_pdata);
        imx27_add_mxc_ehci_otg(&visstrim_m10_usbotg_pdata);
        imx27_add_fec(NULL);
+       imx_add_gpio_keys(&visstrim_gpio_keys_platform_data);
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
 }
 
index 340809a7d233a014a2c6a1ffb74df024c858fa83..b0831efadefc735a50eab381aba45b355c6dd300 100644 (file)
@@ -68,6 +68,7 @@ config MACH_PCM037
 config MACH_PCM037_EET
        bool "Support pcm037 EET board extensions"
        depends on MACH_PCM037
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_SPI_IMX
        help
          Add support for PCM037 EET baseboard extensions. If you are using the
@@ -168,6 +169,7 @@ config MACH_PCM043
 config MACH_ARMADILLO5X0
        bool "Support Atmark Armadillo-500 Development Base Board"
        select SOC_IMX31
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_I2C
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_MXC_EHCI
@@ -233,6 +235,7 @@ choice
 
 config MACH_EUKREA_MBIMXSD35_BASEBOARD
        bool "Eukrea MBIMXSD development board"
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX_SSI
        help
          This adds board specific devices that can be found on Eukrea's
@@ -244,6 +247,7 @@ config MACH_VPR200
        bool "Support VPR200 platform"
        select SOC_IMX35
        select IMX_HAVE_PLATFORM_FSL_USB2_UDC
+       select IMX_HAVE_PLATFORM_GPIO_KEYS
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMX_UART
        select IMX_HAVE_PLATFORM_IMX_I2C
index 2e288b38b4ad4fc0af60da25a84f5e1bcd9bd58b..63981ca8fc319b5def4a5dc7f09a502e23c047c9 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/interrupt.h>
 #include <linux/leds.h>
 #include <linux/platform_device.h>
-#include <linux/gpio_keys.h>
 #include <linux/input.h>
 #include <video/platform_lcd.h>
 #include <linux/i2c.h>
@@ -223,23 +222,14 @@ static struct gpio_keys_button eukrea_mbimxsd_gpio_buttons[] = {
        },
 };
 
-static struct gpio_keys_platform_data eukrea_mbimxsd_button_data = {
+static const struct gpio_keys_platform_data
+               eukrea_mbimxsd_button_data __initconst = {
        .buttons        = eukrea_mbimxsd_gpio_buttons,
        .nbuttons       = ARRAY_SIZE(eukrea_mbimxsd_gpio_buttons),
 };
 
-static struct platform_device eukrea_mbimxsd_button_device = {
-       .name           = "gpio-keys",
-       .id             = -1,
-       .num_resources  = 0,
-       .dev            = {
-               .platform_data  = &eukrea_mbimxsd_button_data,
-       }
-};
-
 static struct platform_device *platform_devices[] __initdata = {
        &eukrea_mbimxsd_leds_gpio,
-       &eukrea_mbimxsd_button_device,
        &eukrea_mbimxsd_lcd_powerdev,
 };
 
@@ -315,4 +305,5 @@ void __init eukrea_mbimxsd35_baseboard_init(void)
                                ARRAY_SIZE(eukrea_mbimxsd_i2c_devices));
 
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+       imx_add_gpio_keys(&eukrea_mbimxsd_button_data);
 }
index 226829bf7c25d8834b725df6103b40b1cee10701..ace0c4c3b66200961b3ba379f634c244ed7b9a82 100644 (file)
@@ -34,7 +34,6 @@
 #include <linux/mtd/physmap.h>
 #include <linux/io.h>
 #include <linux/input.h>
-#include <linux/gpio_keys.h>
 #include <linux/i2c.h>
 #include <linux/usb/otg.h>
 #include <linux/usb/ulpi.h>
@@ -280,20 +279,12 @@ static struct gpio_keys_button armadillo5x0_buttons[] = {
        }
 };
 
-static struct gpio_keys_platform_data armadillo5x0_button_data = {
+static const struct gpio_keys_platform_data
+               armadillo5x0_button_data __initconst = {
        .buttons        = armadillo5x0_buttons,
        .nbuttons       = ARRAY_SIZE(armadillo5x0_buttons),
 };
 
-static struct platform_device armadillo5x0_button_device = {
-       .name           = "gpio-keys",
-       .id             = -1,
-       .num_resources  = 0,
-       .dev            = {
-               .platform_data  = &armadillo5x0_button_data,
-       }
-};
-
 /*
  * NAND Flash
  */
@@ -496,7 +487,6 @@ static const struct imxuart_platform_data uart_pdata __initconst = {
 
 static struct platform_device *devices[] __initdata = {
        &armadillo5x0_smc911x_device,
-       &armadillo5x0_button_device,
 };
 
 /*
@@ -508,6 +498,7 @@ static void __init armadillo5x0_init(void)
                        ARRAY_SIZE(armadillo5x0_pins), "armadillo5x0");
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
+       imx_add_gpio_keys(&armadillo5x0_button_data);
        imx31_add_imx_i2c1(NULL);
 
        /* Register UART */
index df6fb07d037e5d8fc69e9d5da70f7ca15c47a50c..3f81e357affba85b27a95863582c08de5f020533 100644 (file)
@@ -7,7 +7,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/gpio.h>
-#include <linux/gpio_keys.h>
 #include <linux/input.h>
 #include <linux/platform_device.h>
 #include <linux/spi/spi.h>
@@ -156,20 +155,13 @@ static struct gpio_keys_button pcm037_gpio_keys[] = {
        },
 };
 
-static struct gpio_keys_platform_data pcm037_gpio_keys_platform_data = {
+static const struct gpio_keys_platform_data
+               pcm037_gpio_keys_platform_data __initconst = {
        .buttons        = pcm037_gpio_keys,
        .nbuttons       = ARRAY_SIZE(pcm037_gpio_keys),
        .rep            = 0, /* No auto-repeat */
 };
 
-static struct platform_device pcm037_gpio_keys_device = {
-       .name   = "gpio-keys",
-       .id     = -1,
-       .dev    = {
-               .platform_data  = &pcm037_gpio_keys_platform_data,
-       },
-};
-
 static int __init eet_init_devices(void)
 {
        if (!machine_is_pcm037() || pcm037_variant() != PCM037_EET)
@@ -182,9 +174,8 @@ static int __init eet_init_devices(void)
        spi_register_board_info(pcm037_spi_dev, ARRAY_SIZE(pcm037_spi_dev));
        imx31_add_spi_imx0(&pcm037_spi1_pdata);
 
-       platform_device_register(&pcm037_gpio_keys_device);
+       imx_add_gpio_keys(&pcm037_gpio_keys_platform_data);
 
        return 0;
 }
-
 late_initcall(eet_init_devices);
index 47a69cbc31a873dbc19fc9f69d4b231095f3d356..d7d190eacdcd67c1bf392dc40b9d5ac8e83040ba 100644 (file)
@@ -141,18 +141,12 @@ static struct gpio_keys_button vpr200_gpio_keys_table[] = {
        {KEY_F9, GPIO_BUTTON8, 1, "vpr-keys: F9", 1, VPR_KEY_DEBOUNCE},
 };
 
-static struct gpio_keys_platform_data vpr200_gpio_keys_data = {
+static const struct gpio_keys_platform_data
+               vpr200_gpio_keys_data __initconst = {
        .buttons = vpr200_gpio_keys_table,
        .nbuttons = ARRAY_SIZE(vpr200_gpio_keys_table),
 };
 
-static struct platform_device vpr200_device_gpiokeys = {
-       .name = "gpio-keys",
-       .dev = {
-               .platform_data = &vpr200_gpio_keys_data,
-       }
-};
-
 static struct mc13xxx_platform_data vpr200_pmic = {
        .flags = MC13XXX_USE_ADC | MC13XXX_USE_TOUCHSCREEN,
 };
@@ -271,7 +265,6 @@ static const struct mxc_usbh_platform_data usb_host_pdata __initconst = {
 
 static struct platform_device *devices[] __initdata = {
        &vpr200_flash,
-       &vpr200_device_gpiokeys,
 };
 
 /*
@@ -283,6 +276,7 @@ static void __init vpr200_board_init(void)
 
        imx35_add_fec(NULL);
        imx35_add_imx2_wdt(NULL);
+       imx_add_gpio_keys(&vpr200_gpio_keys_data);
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 
index e6c1119c20ae4df4d1bd2e846cbaa25d08ee854b..0c80b62ed7861d3a84db8abc59f26b493a4a497e 100644 (file)
@@ -27,7 +27,6 @@
 #include <linux/irq.h>
 #include <linux/leds.h>
 #include <linux/platform_device.h>
-#include <linux/gpio_keys.h>
 #include <linux/input.h>
 #include <linux/i2c.h>
 
@@ -108,23 +107,14 @@ static struct gpio_keys_button eukrea_mbimxsd_gpio_buttons[] = {
        },
 };
 
-static struct gpio_keys_platform_data eukrea_mbimxsd_button_data = {
+static const struct gpio_keys_platform_data
+               eukrea_mbimxsd_button_data __initconst = {
        .buttons        = eukrea_mbimxsd_gpio_buttons,
        .nbuttons       = ARRAY_SIZE(eukrea_mbimxsd_gpio_buttons),
 };
 
-static struct platform_device eukrea_mbimxsd_button_device = {
-       .name           = "gpio-keys",
-       .id             = -1,
-       .num_resources  = 0,
-       .dev            = {
-               .platform_data  = &eukrea_mbimxsd_button_data,
-       }
-};
-
 static struct platform_device *platform_devices[] __initdata = {
        &eukrea_mbimxsd_leds_gpio,
-       &eukrea_mbimxsd_button_device,
 };
 
 static const struct imxuart_platform_data uart_pdata __initconst = {
@@ -166,4 +156,5 @@ void __init eukrea_mbimxsd51_baseboard_init(void)
                                ARRAY_SIZE(eukrea_mbimxsd_i2c_devices));
 
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+       imx_add_gpio_keys(&eukrea_mbimxsd_button_data);
 }