aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-04-08 05:36:17 -0400
committerSimon Horman <horms+renesas@verge.net.au>2013-06-05 04:17:12 -0400
commit43ca9cbb29e11181888159b9a6375b1720672b82 (patch)
tree2bb360405f45b99f66299890bbf62311eacf8bc7
parent39ca2283358852fa944f4abb8eb7ed8403b50420 (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.c35
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
32static const struct resource pfc_resources[] = { 33static 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) \
38static struct resource r8a7790_gpio##idx##_resources[] = { \
39 DEFINE_RES_MEM(0xe6050000 + 0x1000 * (idx), 0x50), \
40 DEFINE_RES_IRQ(gic_spi(4 + (idx))), \
41}; \
42 \
43static 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
50R8A7790_GPIO(0);
51R8A7790_GPIO(1);
52R8A7790_GPIO(2);
53R8A7790_GPIO(3);
54R8A7790_GPIO(4);
55R8A7790_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
37void __init r8a7790_pinmux_init(void) 64void __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) \