Merge tag 'rpmsg-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-pxa / pxa930.c
index 8aeacf908784875da9c1e4e47c64ef44c9e4c728..ab624487cf39d3d8cf346f82c73518b08a6a7839 100644 (file)
 
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/irq.h>
 #include <linux/dma-mapping.h>
+#include <linux/irq.h>
+#include <linux/gpio-pxa.h>
+#include <linux/platform_device.h>
 
 #include <mach/pxa930.h>
 
+#include "devices.h"
+
 static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = {
 
        MFP_ADDR(GPIO0, 0x02e0),
@@ -190,11 +193,21 @@ static struct mfp_addr_map pxa935_mfp_addr_map[] __initdata = {
        MFP_ADDR_END,
 };
 
+static struct pxa_gpio_platform_data pxa93x_gpio_pdata = {
+       .irq_base       = PXA_GPIO_TO_IRQ(0),
+};
+
 static int __init pxa930_init(void)
 {
+       int ret = 0;
+
        if (cpu_is_pxa93x()) {
                mfp_init_base(io_p2v(MFPR_BASE));
                mfp_init_addr(pxa930_mfp_addr_map);
+               platform_device_add_data(&pxa93x_device_gpio,
+                                        &pxa93x_gpio_pdata,
+                                        sizeof(pxa93x_gpio_pdata));
+               ret = platform_device_register(&pxa93x_device_gpio);
        }
 
        if (cpu_is_pxa935())