diff options
Diffstat (limited to 'arch/arm/mach-shmobile/setup-r8a7790.c')
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7790.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 49de2d56f86d..b461d93431ed 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
24 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
25 | #include <linux/serial_sci.h> | 25 | #include <linux/serial_sci.h> |
26 | #include <linux/platform_data/gpio-rcar.h> | ||
26 | #include <linux/platform_data/irq-renesas-irqc.h> | 27 | #include <linux/platform_data/irq-renesas-irqc.h> |
27 | #include <mach/common.h> | 28 | #include <mach/common.h> |
28 | #include <mach/irqs.h> | 29 | #include <mach/irqs.h> |
@@ -31,13 +32,46 @@ | |||
31 | 32 | ||
32 | static const struct resource pfc_resources[] = { | 33 | static const struct resource pfc_resources[] = { |
33 | DEFINE_RES_MEM(0xe6060000, 0x250), | 34 | DEFINE_RES_MEM(0xe6060000, 0x250), |
34 | DEFINE_RES_MEM(0xe6050000, 0x5050), | ||
35 | }; | 35 | }; |
36 | 36 | ||
37 | #define R8A7790_GPIO(idx) \ | ||
38 | static struct resource r8a7790_gpio##idx##_resources[] = { \ | ||
39 | DEFINE_RES_MEM(0xe6050000 + 0x1000 * (idx), 0x50), \ | ||
40 | DEFINE_RES_IRQ(gic_spi(4 + (idx))), \ | ||
41 | }; \ | ||
42 | \ | ||
43 | static struct gpio_rcar_config r8a7790_gpio##idx##_platform_data = { \ | ||
44 | .gpio_base = 32 * (idx), \ | ||
45 | .irq_base = 0, \ | ||
46 | .number_of_pins = 32, \ | ||
47 | .pctl_name = "pfc-r8a7790", \ | ||
48 | .has_both_edge_trigger = 1, \ | ||
49 | }; \ | ||
50 | |||
51 | R8A7790_GPIO(0); | ||
52 | R8A7790_GPIO(1); | ||
53 | R8A7790_GPIO(2); | ||
54 | R8A7790_GPIO(3); | ||
55 | R8A7790_GPIO(4); | ||
56 | R8A7790_GPIO(5); | ||
57 | |||
58 | #define r8a7790_register_gpio(idx) \ | ||
59 | platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ | ||
60 | r8a7790_gpio##idx##_resources, \ | ||
61 | ARRAY_SIZE(r8a7790_gpio##idx##_resources), \ | ||
62 | &r8a7790_gpio##idx##_platform_data, \ | ||
63 | sizeof(r8a7790_gpio##idx##_platform_data)) | ||
64 | |||
37 | void __init r8a7790_pinmux_init(void) | 65 | void __init r8a7790_pinmux_init(void) |
38 | { | 66 | { |
39 | platform_device_register_simple("pfc-r8a7790", -1, pfc_resources, | 67 | platform_device_register_simple("pfc-r8a7790", -1, pfc_resources, |
40 | ARRAY_SIZE(pfc_resources)); | 68 | ARRAY_SIZE(pfc_resources)); |
69 | r8a7790_register_gpio(0); | ||
70 | r8a7790_register_gpio(1); | ||
71 | r8a7790_register_gpio(2); | ||
72 | r8a7790_register_gpio(3); | ||
73 | r8a7790_register_gpio(4); | ||
74 | r8a7790_register_gpio(5); | ||
41 | } | 75 | } |
42 | 76 | ||
43 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ | 77 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ |