]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/arm/mach-pxa/viper.c
Merge branch 'fix/misc' into topic/misc
[mirror_ubuntu-artful-kernel.git] / arch / arm / mach-pxa / viper.c
index cf0d71b7797e09427f9339137e57a58575df31e6..89f258c9e126acf249f719a39a629946cc8ae024 100644 (file)
@@ -47,6 +47,7 @@
 #include <mach/pxafb.h>
 #include <plat/i2c.h>
 #include <mach/regs-uart.h>
+#include <mach/arcom-pcmcia.h>
 #include <mach/viper.h>
 
 #include <asm/setup.h>
@@ -76,14 +77,28 @@ static void viper_icr_clear_bit(unsigned int bit)
 }
 
 /* This function is used from the pcmcia module to reset the CF */
-void viper_cf_rst(int state)
+static void viper_cf_reset(int state)
 {
        if (state)
                viper_icr_set_bit(VIPER_ICR_CF_RST);
        else
                viper_icr_clear_bit(VIPER_ICR_CF_RST);
 }
-EXPORT_SYMBOL(viper_cf_rst);
+
+static struct arcom_pcmcia_pdata viper_pcmcia_info = {
+       .cd_gpio        = VIPER_CF_CD_GPIO,
+       .rdy_gpio       = VIPER_CF_RDY_GPIO,
+       .pwr_gpio       = VIPER_CF_POWER_GPIO,
+       .reset          = viper_cf_reset,
+};
+
+static struct platform_device viper_pcmcia_device = {
+       .name           = "viper-pcmcia",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &viper_pcmcia_info,
+       },
+};
 
 /*
  * The CPLD version register was not present on VIPER boards prior to
@@ -364,7 +379,7 @@ err_request_bckl:
        return ret;
 }
 
-static int viper_backlight_notify(int brightness)
+static int viper_backlight_notify(struct device *dev, int brightness)
 {
        gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness);
        gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness);
@@ -685,6 +700,7 @@ static struct platform_device *viper_devs[] __initdata = {
        &viper_mtd_devices[0],
        &viper_mtd_devices[1],
        &viper_backlight_device,
+       &viper_pcmcia_device,
 };
 
 static mfp_cfg_t viper_pin_config[] __initdata = {