diff options
author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-04-08 05:36:17 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-06-05 04:17:12 -0400 |
commit | 43ca9cbb29e11181888159b9a6375b1720672b82 (patch) | |
tree | 2bb360405f45b99f66299890bbf62311eacf8bc7 | |
parent | 39ca2283358852fa944f4abb8eb7ed8403b50420 (diff) |
ARM: shmobile: r8a7790: Register GPIO devices
Move GPIOs handling from the PFC device to separate GPIO devices.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7790.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 49de2d56f86d..eeef5f61832e 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,45 @@ | |||
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 | }; \ | ||
49 | |||
50 | R8A7790_GPIO(0); | ||
51 | R8A7790_GPIO(1); | ||
52 | R8A7790_GPIO(2); | ||
53 | R8A7790_GPIO(3); | ||
54 | R8A7790_GPIO(4); | ||
55 | R8A7790_GPIO(5); | ||
56 | |||
57 | #define r8a7790_register_gpio(idx) \ | ||
58 | platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ | ||
59 | r8a7790_gpio##idx##_resources, \ | ||
60 | ARRAY_SIZE(r8a7790_gpio##idx##_resources), \ | ||
61 | &r8a7790_gpio##idx##_platform_data, \ | ||
62 | sizeof(r8a7790_gpio##idx##_platform_data)) | ||
63 | |||
37 | void __init r8a7790_pinmux_init(void) | 64 | void __init r8a7790_pinmux_init(void) |
38 | { | 65 | { |
39 | platform_device_register_simple("pfc-r8a7790", -1, pfc_resources, | 66 | platform_device_register_simple("pfc-r8a7790", -1, pfc_resources, |
40 | ARRAY_SIZE(pfc_resources)); | 67 | ARRAY_SIZE(pfc_resources)); |
68 | r8a7790_register_gpio(0); | ||
69 | r8a7790_register_gpio(1); | ||
70 | r8a7790_register_gpio(2); | ||
71 | r8a7790_register_gpio(3); | ||
72 | r8a7790_register_gpio(4); | ||
73 | r8a7790_register_gpio(5); | ||
41 | } | 74 | } |
42 | 75 | ||
43 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ | 76 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ |