diff options
author | Olof Johansson <olof@lixom.net> | 2013-08-14 03:24:05 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-08-14 03:24:05 -0400 |
commit | 55689bfa21dc0c02ff6cc9c3ab90a78bc9b66093 (patch) | |
tree | 0b645145d8aae568ac0cef5e3337551a6dc20c93 | |
parent | 38494429f383c8c0bda1d462f6be3d54f1dc1fed (diff) | |
parent | 1469273960de45275f33276c7254456edcba9da2 (diff) |
Merge tag 'renesas-pinmux-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
From Simon Horman:
Renesas ARM based SoC pinmux updates for v3.12
SH Mobile pinctrl DT support
* tag 'renesas-pinmux-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: kzm9g-reference: Add LED1-LED4 to the device tree
ARM: shmobile: kzm9g-reference: Move SDHI regulators to DT
ARM: shmobile: kzm9g-reference: Move pinctrl mappings to device tree
ARM: shmobile: marzen-reference: Add LED2-LED4 to the device tree
ARM: shmobile: marzen-reference: Move pinctrl mappings to device tree
ARM: shmobile: armadillo-reference: Add LED1-LED4 to the device tree
ARM: shmobile: armadillo-reference: Move st1232 reset GPIO to DT
ARM: shmobile: armadillo-reference: Add st1232 pin mappings
ARM: shmobile: armadillo-reference: Move pinctrl mappings to device tree
ARM: shmobile: sh73a0: Add pin control device to device tree
ARM: shmobile: sh7372: Add pin control device to device tree
ARM: shmobile: r8a7790: Add GPIO controller devices to device tree
ARM: shmobile: r8a7790: Add pin control device to device tree
ARM: shmobile: r8a7779: Add GPIO controller devices to device tree
ARM: shmobile: r8a7779: Add pin control device to device tree
ARM: shmobile: r8a7778: Add GPIO controller devices to device tree
ARM: shmobile: r8a7778: Add pin control device to device tree
ARM: shmobile: r8a7740: Add pin control device to device tree
ARM: shmobile: r8a73a4: Add pin control device to device tree
Signed-off-by: Olof Johansson <olof@lixom.net>
Conflicts:
arch/arm/boot/dts/r8a73a4.dtsi
arch/arm/boot/dts/r8a7790.dtsi
-rw-r--r-- | arch/arm/boot/dts/r8a73a4.dtsi | 7 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts | 34 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7740.dtsi | 8 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7778.dtsi | 66 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7779-marzen-reference.dts | 49 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7779.dtsi | 90 | ||||
-rw-r--r-- | arch/arm/boot/dts/r8a7790.dtsi | 78 | ||||
-rw-r--r-- | arch/arm/boot/dts/sh7372.dtsi | 8 | ||||
-rw-r--r-- | arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 90 | ||||
-rw-r--r-- | arch/arm/boot/dts/sh73a0.dtsi | 8 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-armadillo800eva-reference.c | 18 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-kzm9g-reference.c | 47 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-marzen-reference.c | 28 |
13 files changed, 437 insertions, 94 deletions
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi index 6ce699be6095..6c26caa880f2 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi | |||
@@ -185,6 +185,13 @@ | |||
185 | status = "disabled"; | 185 | status = "disabled"; |
186 | }; | 186 | }; |
187 | 187 | ||
188 | pfc: pfc@e6050000 { | ||
189 | compatible = "renesas,pfc-r8a73a4"; | ||
190 | reg = <0 0xe6050000 0 0x9000>; | ||
191 | gpio-controller; | ||
192 | #gpio-cells = <2>; | ||
193 | }; | ||
194 | |||
188 | sdhi0: sdhi@ee100000 { | 195 | sdhi0: sdhi@ee100000 { |
189 | compatible = "renesas,r8a73a4-sdhi"; | 196 | compatible = "renesas,r8a73a4-sdhi"; |
190 | reg = <0 0xee100000 0 0x100>; | 197 | reg = <0 0xee100000 0 0x100>; |
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts index 09ea22c26359..366f72989dc3 100644 --- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts +++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | /dts-v1/; | 11 | /dts-v1/; |
12 | /include/ "r8a7740.dtsi" | 12 | /include/ "r8a7740.dtsi" |
13 | #include <dt-bindings/gpio/gpio.h> | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | model = "armadillo 800 eva reference"; | 16 | model = "armadillo 800 eva reference"; |
@@ -33,6 +34,21 @@ | |||
33 | regulator-boot-on; | 34 | regulator-boot-on; |
34 | }; | 35 | }; |
35 | 36 | ||
37 | leds { | ||
38 | compatible = "gpio-leds"; | ||
39 | led1 { | ||
40 | gpios = <&pfc 102 GPIO_ACTIVE_HIGH>; | ||
41 | }; | ||
42 | led2 { | ||
43 | gpios = <&pfc 111 GPIO_ACTIVE_HIGH>; | ||
44 | }; | ||
45 | led3 { | ||
46 | gpios = <&pfc 110 GPIO_ACTIVE_HIGH>; | ||
47 | }; | ||
48 | led4 { | ||
49 | gpios = <&pfc 177 GPIO_ACTIVE_HIGH>; | ||
50 | }; | ||
51 | }; | ||
36 | }; | 52 | }; |
37 | 53 | ||
38 | &i2c0 { | 54 | &i2c0 { |
@@ -41,5 +57,23 @@ | |||
41 | reg = <0x55>; | 57 | reg = <0x55>; |
42 | interrupt-parent = <&irqpin1>; | 58 | interrupt-parent = <&irqpin1>; |
43 | interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */ | 59 | interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */ |
60 | pinctrl-0 = <&st1232_pins>; | ||
61 | pinctrl-names = "default"; | ||
62 | gpios = <&pfc 166 GPIO_ACTIVE_LOW>; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | &pfc { | ||
67 | pinctrl-0 = <&scifa1_pins>; | ||
68 | pinctrl-names = "default"; | ||
69 | |||
70 | scifa1_pins: scifa1 { | ||
71 | renesas,groups = "scifa1_data"; | ||
72 | renesas,function = "scifa1"; | ||
73 | }; | ||
74 | |||
75 | st1232_pins: st1232 { | ||
76 | renesas,groups = "intc_irq10"; | ||
77 | renesas,function = "intc"; | ||
44 | }; | 78 | }; |
45 | }; | 79 | }; |
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi index 24e930643821..e18a195b55f3 100644 --- a/arch/arm/boot/dts/r8a7740.dtsi +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
@@ -139,4 +139,12 @@ | |||
139 | 0 72 0x4 | 139 | 0 72 0x4 |
140 | 0 73 0x4>; | 140 | 0 73 0x4>; |
141 | }; | 141 | }; |
142 | |||
143 | pfc: pfc@e6050000 { | ||
144 | compatible = "renesas,pfc-r8a7740"; | ||
145 | reg = <0xe6050000 0x8000>, | ||
146 | <0xe605800c 0x20>; | ||
147 | gpio-controller; | ||
148 | #gpio-cells = <2>; | ||
149 | }; | ||
142 | }; | 150 | }; |
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi index 474373559bdc..45ac404ab6d8 100644 --- a/arch/arm/boot/dts/r8a7778.dtsi +++ b/arch/arm/boot/dts/r8a7778.dtsi | |||
@@ -32,4 +32,70 @@ | |||
32 | reg = <0xfe438000 0x1000>, | 32 | reg = <0xfe438000 0x1000>, |
33 | <0xfe430000 0x100>; | 33 | <0xfe430000 0x100>; |
34 | }; | 34 | }; |
35 | |||
36 | gpio0: gpio@ffc40000 { | ||
37 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | ||
38 | reg = <0xffc40000 0x2c>; | ||
39 | interrupt-parent = <&gic>; | ||
40 | interrupts = <0 103 0x4>; | ||
41 | #gpio-cells = <2>; | ||
42 | gpio-controller; | ||
43 | gpio-ranges = <&pfc 0 0 32>; | ||
44 | #interrupt-cells = <2>; | ||
45 | interrupt-controller; | ||
46 | }; | ||
47 | |||
48 | gpio1: gpio@ffc41000 { | ||
49 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | ||
50 | reg = <0xffc41000 0x2c>; | ||
51 | interrupt-parent = <&gic>; | ||
52 | interrupts = <0 103 0x4>; | ||
53 | #gpio-cells = <2>; | ||
54 | gpio-controller; | ||
55 | gpio-ranges = <&pfc 0 32 32>; | ||
56 | #interrupt-cells = <2>; | ||
57 | interrupt-controller; | ||
58 | }; | ||
59 | |||
60 | gpio2: gpio@ffc42000 { | ||
61 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | ||
62 | reg = <0xffc42000 0x2c>; | ||
63 | interrupt-parent = <&gic>; | ||
64 | interrupts = <0 103 0x4>; | ||
65 | #gpio-cells = <2>; | ||
66 | gpio-controller; | ||
67 | gpio-ranges = <&pfc 0 64 32>; | ||
68 | #interrupt-cells = <2>; | ||
69 | interrupt-controller; | ||
70 | }; | ||
71 | |||
72 | gpio3: gpio@ffc43000 { | ||
73 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | ||
74 | reg = <0xffc43000 0x2c>; | ||
75 | interrupt-parent = <&gic>; | ||
76 | interrupts = <0 103 0x4>; | ||
77 | #gpio-cells = <2>; | ||
78 | gpio-controller; | ||
79 | gpio-ranges = <&pfc 0 96 32>; | ||
80 | #interrupt-cells = <2>; | ||
81 | interrupt-controller; | ||
82 | }; | ||
83 | |||
84 | gpio4: gpio@ffc44000 { | ||
85 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | ||
86 | reg = <0xffc44000 0x2c>; | ||
87 | interrupt-parent = <&gic>; | ||
88 | interrupts = <0 103 0x4>; | ||
89 | #gpio-cells = <2>; | ||
90 | gpio-controller; | ||
91 | gpio-ranges = <&pfc 0 128 27>; | ||
92 | #interrupt-cells = <2>; | ||
93 | interrupt-controller; | ||
94 | }; | ||
95 | |||
96 | pfc: pfc@fffc0000 { | ||
97 | compatible = "renesas,pfc-r8a7778"; | ||
98 | reg = <0xfffc000 0x118>; | ||
99 | #gpio-range-cells = <3>; | ||
100 | }; | ||
35 | }; | 101 | }; |
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts index 72be4c87cfb5..b64705be258d 100644 --- a/arch/arm/boot/dts/r8a7779-marzen-reference.dts +++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "r8a7779.dtsi" | 13 | /include/ "r8a7779.dtsi" |
14 | #include <dt-bindings/gpio/gpio.h> | ||
14 | 15 | ||
15 | / { | 16 | / { |
16 | model = "marzen"; | 17 | model = "marzen"; |
@@ -37,6 +38,9 @@ | |||
37 | lan0@18000000 { | 38 | lan0@18000000 { |
38 | compatible = "smsc,lan9220", "smsc,lan9115"; | 39 | compatible = "smsc,lan9220", "smsc,lan9115"; |
39 | reg = <0x18000000 0x100>; | 40 | reg = <0x18000000 0x100>; |
41 | pinctrl-0 = <&lan0_pins>; | ||
42 | pinctrl-names = "default"; | ||
43 | |||
40 | phy-mode = "mii"; | 44 | phy-mode = "mii"; |
41 | interrupt-parent = <&gic>; | 45 | interrupt-parent = <&gic>; |
42 | interrupts = <0 28 0x4>; | 46 | interrupts = <0 28 0x4>; |
@@ -44,4 +48,49 @@ | |||
44 | vddvario-supply = <&fixedregulator3v3>; | 48 | vddvario-supply = <&fixedregulator3v3>; |
45 | vdd33a-supply = <&fixedregulator3v3>; | 49 | vdd33a-supply = <&fixedregulator3v3>; |
46 | }; | 50 | }; |
51 | |||
52 | leds { | ||
53 | compatible = "gpio-leds"; | ||
54 | led2 { | ||
55 | gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>; | ||
56 | }; | ||
57 | led3 { | ||
58 | gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>; | ||
59 | }; | ||
60 | led4 { | ||
61 | gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | &pfc { | ||
67 | pinctrl-0 = <&scif2_pins &scif4_pins &sdhi0_pins>; | ||
68 | pinctrl-names = "default"; | ||
69 | |||
70 | lan0_pins: lan0 { | ||
71 | intc { | ||
72 | renesas,groups = "intc_irq1_b"; | ||
73 | renesas,function = "intc"; | ||
74 | }; | ||
75 | lbsc { | ||
76 | renesas,groups = "lbsc_ex_cs0"; | ||
77 | renesas,function = "lbsc"; | ||
78 | }; | ||
79 | }; | ||
80 | |||
81 | scif2_pins: scif2 { | ||
82 | renesas,groups = "scif2_data_c"; | ||
83 | renesas,function = "scif2"; | ||
84 | }; | ||
85 | |||
86 | scif4_pins: scif4 { | ||
87 | renesas,groups = "scif4_data"; | ||
88 | renesas,function = "scif4"; | ||
89 | }; | ||
90 | |||
91 | sdhi0_pins: sdhi0 { | ||
92 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", | ||
93 | "sdhi0_wp"; | ||
94 | renesas,function = "sdhi0"; | ||
95 | }; | ||
47 | }; | 96 | }; |
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi index 7f146c6bf756..e9fbe3d572d7 100644 --- a/arch/arm/boot/dts/r8a7779.dtsi +++ b/arch/arm/boot/dts/r8a7779.dtsi | |||
@@ -48,6 +48,90 @@ | |||
48 | <0xf0000100 0x100>; | 48 | <0xf0000100 0x100>; |
49 | }; | 49 | }; |
50 | 50 | ||
51 | gpio0: gpio@ffc40000 { | ||
52 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
53 | reg = <0xffc40000 0x2c>; | ||
54 | interrupt-parent = <&gic>; | ||
55 | interrupts = <0 141 0x4>; | ||
56 | #gpio-cells = <2>; | ||
57 | gpio-controller; | ||
58 | gpio-ranges = <&pfc 0 0 32>; | ||
59 | #interrupt-cells = <2>; | ||
60 | interrupt-controller; | ||
61 | }; | ||
62 | |||
63 | gpio1: gpio@ffc41000 { | ||
64 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
65 | reg = <0xffc41000 0x2c>; | ||
66 | interrupt-parent = <&gic>; | ||
67 | interrupts = <0 142 0x4>; | ||
68 | #gpio-cells = <2>; | ||
69 | gpio-controller; | ||
70 | gpio-ranges = <&pfc 0 32 32>; | ||
71 | #interrupt-cells = <2>; | ||
72 | interrupt-controller; | ||
73 | }; | ||
74 | |||
75 | gpio2: gpio@ffc42000 { | ||
76 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
77 | reg = <0xffc42000 0x2c>; | ||
78 | interrupt-parent = <&gic>; | ||
79 | interrupts = <0 143 0x4>; | ||
80 | #gpio-cells = <2>; | ||
81 | gpio-controller; | ||
82 | gpio-ranges = <&pfc 0 64 32>; | ||
83 | #interrupt-cells = <2>; | ||
84 | interrupt-controller; | ||
85 | }; | ||
86 | |||
87 | gpio3: gpio@ffc43000 { | ||
88 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
89 | reg = <0xffc43000 0x2c>; | ||
90 | interrupt-parent = <&gic>; | ||
91 | interrupts = <0 144 0x4>; | ||
92 | #gpio-cells = <2>; | ||
93 | gpio-controller; | ||
94 | gpio-ranges = <&pfc 0 96 32>; | ||
95 | #interrupt-cells = <2>; | ||
96 | interrupt-controller; | ||
97 | }; | ||
98 | |||
99 | gpio4: gpio@ffc44000 { | ||
100 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
101 | reg = <0xffc44000 0x2c>; | ||
102 | interrupt-parent = <&gic>; | ||
103 | interrupts = <0 145 0x4>; | ||
104 | #gpio-cells = <2>; | ||
105 | gpio-controller; | ||
106 | gpio-ranges = <&pfc 0 128 32>; | ||
107 | #interrupt-cells = <2>; | ||
108 | interrupt-controller; | ||
109 | }; | ||
110 | |||
111 | gpio5: gpio@ffc45000 { | ||
112 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
113 | reg = <0xffc45000 0x2c>; | ||
114 | interrupt-parent = <&gic>; | ||
115 | interrupts = <0 146 0x4>; | ||
116 | #gpio-cells = <2>; | ||
117 | gpio-controller; | ||
118 | gpio-ranges = <&pfc 0 160 32>; | ||
119 | #interrupt-cells = <2>; | ||
120 | interrupt-controller; | ||
121 | }; | ||
122 | |||
123 | gpio6: gpio@ffc46000 { | ||
124 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | ||
125 | reg = <0xffc46000 0x2c>; | ||
126 | interrupt-parent = <&gic>; | ||
127 | interrupts = <0 147 0x4>; | ||
128 | #gpio-cells = <2>; | ||
129 | gpio-controller; | ||
130 | gpio-ranges = <&pfc 0 192 9>; | ||
131 | #interrupt-cells = <2>; | ||
132 | interrupt-controller; | ||
133 | }; | ||
134 | |||
51 | irqpin0: irqpin@fe780010 { | 135 | irqpin0: irqpin@fe780010 { |
52 | compatible = "renesas,intc-irqpin"; | 136 | compatible = "renesas,intc-irqpin"; |
53 | #interrupt-cells = <2>; | 137 | #interrupt-cells = <2>; |
@@ -101,6 +185,12 @@ | |||
101 | interrupts = <0 81 0x4>; | 185 | interrupts = <0 81 0x4>; |
102 | }; | 186 | }; |
103 | 187 | ||
188 | pfc: pfc@fffc0000 { | ||
189 | compatible = "renesas,pfc-r8a7779"; | ||
190 | reg = <0xfffc0000 0x23c>; | ||
191 | #gpio-range-cells = <3>; | ||
192 | }; | ||
193 | |||
104 | thermal@ffc48000 { | 194 | thermal@ffc48000 { |
105 | compatible = "renesas,rcar-thermal"; | 195 | compatible = "renesas,rcar-thermal"; |
106 | reg = <0xffc48000 0x38>; | 196 | reg = <0xffc48000 0x38>; |
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index 9cd882028095..3b879e7c697c 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
@@ -38,6 +38,78 @@ | |||
38 | interrupts = <1 9 0xf04>; | 38 | interrupts = <1 9 0xf04>; |
39 | }; | 39 | }; |
40 | 40 | ||
41 | gpio0: gpio@ffc40000 { | ||
42 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
43 | reg = <0 0xffc40000 0 0x2c>; | ||
44 | interrupt-parent = <&gic>; | ||
45 | interrupts = <0 4 0x4>; | ||
46 | #gpio-cells = <2>; | ||
47 | gpio-controller; | ||
48 | gpio-ranges = <&pfc 0 0 32>; | ||
49 | #interrupt-cells = <2>; | ||
50 | interrupt-controller; | ||
51 | }; | ||
52 | |||
53 | gpio1: gpio@ffc41000 { | ||
54 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
55 | reg = <0 0xffc41000 0 0x2c>; | ||
56 | interrupt-parent = <&gic>; | ||
57 | interrupts = <0 5 0x4>; | ||
58 | #gpio-cells = <2>; | ||
59 | gpio-controller; | ||
60 | gpio-ranges = <&pfc 0 32 32>; | ||
61 | #interrupt-cells = <2>; | ||
62 | interrupt-controller; | ||
63 | }; | ||
64 | |||
65 | gpio2: gpio@ffc42000 { | ||
66 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
67 | reg = <0 0xffc42000 0 0x2c>; | ||
68 | interrupt-parent = <&gic>; | ||
69 | interrupts = <0 6 0x4>; | ||
70 | #gpio-cells = <2>; | ||
71 | gpio-controller; | ||
72 | gpio-ranges = <&pfc 0 64 32>; | ||
73 | #interrupt-cells = <2>; | ||
74 | interrupt-controller; | ||
75 | }; | ||
76 | |||
77 | gpio3: gpio@ffc43000 { | ||
78 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
79 | reg = <0 0xffc43000 0 0x2c>; | ||
80 | interrupt-parent = <&gic>; | ||
81 | interrupts = <0 7 0x4>; | ||
82 | #gpio-cells = <2>; | ||
83 | gpio-controller; | ||
84 | gpio-ranges = <&pfc 0 96 32>; | ||
85 | #interrupt-cells = <2>; | ||
86 | interrupt-controller; | ||
87 | }; | ||
88 | |||
89 | gpio4: gpio@ffc44000 { | ||
90 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
91 | reg = <0 0xffc44000 0 0x2c>; | ||
92 | interrupt-parent = <&gic>; | ||
93 | interrupts = <0 8 0x4>; | ||
94 | #gpio-cells = <2>; | ||
95 | gpio-controller; | ||
96 | gpio-ranges = <&pfc 0 128 32>; | ||
97 | #interrupt-cells = <2>; | ||
98 | interrupt-controller; | ||
99 | }; | ||
100 | |||
101 | gpio5: gpio@ffc45000 { | ||
102 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | ||
103 | reg = <0 0xffc45000 0 0x2c>; | ||
104 | interrupt-parent = <&gic>; | ||
105 | interrupts = <0 9 0x4>; | ||
106 | #gpio-cells = <2>; | ||
107 | gpio-controller; | ||
108 | gpio-ranges = <&pfc 0 160 32>; | ||
109 | #interrupt-cells = <2>; | ||
110 | interrupt-controller; | ||
111 | }; | ||
112 | |||
41 | timer { | 113 | timer { |
42 | compatible = "arm,armv7-timer"; | 114 | compatible = "arm,armv7-timer"; |
43 | interrupts = <1 13 0xf08>, | 115 | interrupts = <1 13 0xf08>, |
@@ -73,6 +145,12 @@ | |||
73 | status = "disabled"; | 145 | status = "disabled"; |
74 | }; | 146 | }; |
75 | 147 | ||
148 | pfc: pfc@e6060000 { | ||
149 | compatible = "renesas,pfc-r8a7790"; | ||
150 | reg = <0 0xe6060000 0 0x250>; | ||
151 | #gpio-range-cells = <3>; | ||
152 | }; | ||
153 | |||
76 | sdhi0: sdhi@ee100000 { | 154 | sdhi0: sdhi@ee100000 { |
77 | compatible = "renesas,r8a7790-sdhi"; | 155 | compatible = "renesas,r8a7790-sdhi"; |
78 | reg = <0 0xee100000 0 0x100>; | 156 | reg = <0 0xee100000 0 0x100>; |
diff --git a/arch/arm/boot/dts/sh7372.dtsi b/arch/arm/boot/dts/sh7372.dtsi index 7bf020ecadf5..249f65be2a50 100644 --- a/arch/arm/boot/dts/sh7372.dtsi +++ b/arch/arm/boot/dts/sh7372.dtsi | |||
@@ -23,4 +23,12 @@ | |||
23 | reg = <0x0>; | 23 | reg = <0x0>; |
24 | }; | 24 | }; |
25 | }; | 25 | }; |
26 | |||
27 | pfc: pfc@e6050000 { | ||
28 | compatible = "renesas,pfc-sh7372"; | ||
29 | reg = <0xe6050000 0x8000>, | ||
30 | <0xe605801c 0x1c>; | ||
31 | gpio-controller; | ||
32 | #gpio-cells = <2>; | ||
33 | }; | ||
26 | }; | 34 | }; |
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index b6f759e830ed..b99e890def54 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | |||
@@ -13,6 +13,7 @@ | |||
13 | 13 | ||
14 | /dts-v1/; | 14 | /dts-v1/; |
15 | /include/ "sh73a0.dtsi" | 15 | /include/ "sh73a0.dtsi" |
16 | #include <dt-bindings/gpio/gpio.h> | ||
16 | 17 | ||
17 | / { | 18 | / { |
18 | model = "KZM-A9-GT"; | 19 | model = "KZM-A9-GT"; |
@@ -58,6 +59,24 @@ | |||
58 | regulator-boot-on; | 59 | regulator-boot-on; |
59 | }; | 60 | }; |
60 | 61 | ||
62 | vmmc_sdhi0: regulator@2 { | ||
63 | compatible = "regulator-fixed"; | ||
64 | regulator-name = "SDHI0 Vcc"; | ||
65 | regulator-min-microvolt = <3300000>; | ||
66 | regulator-max-microvolt = <3300000>; | ||
67 | gpio = <&pfc 15 GPIO_ACTIVE_HIGH>; | ||
68 | enable-active-high; | ||
69 | }; | ||
70 | |||
71 | vmmc_sdhi2: regulator@3 { | ||
72 | compatible = "regulator-fixed"; | ||
73 | regulator-name = "SDHI2 Vcc"; | ||
74 | regulator-min-microvolt = <3300000>; | ||
75 | regulator-max-microvolt = <3300000>; | ||
76 | gpio = <&pfc 14 GPIO_ACTIVE_HIGH>; | ||
77 | enable-active-high; | ||
78 | }; | ||
79 | |||
61 | lan9220@10000000 { | 80 | lan9220@10000000 { |
62 | compatible = "smsc,lan9220", "smsc,lan9115"; | 81 | compatible = "smsc,lan9220", "smsc,lan9115"; |
63 | reg = <0x10000000 0x100>; | 82 | reg = <0x10000000 0x100>; |
@@ -70,6 +89,22 @@ | |||
70 | vddvario-supply = <®_1p8v>; | 89 | vddvario-supply = <®_1p8v>; |
71 | vdd33a-supply = <®_3p3v>; | 90 | vdd33a-supply = <®_3p3v>; |
72 | }; | 91 | }; |
92 | |||
93 | leds { | ||
94 | compatible = "gpio-leds"; | ||
95 | led1 { | ||
96 | gpios = <&pfc 20 GPIO_ACTIVE_LOW>; | ||
97 | }; | ||
98 | led2 { | ||
99 | gpios = <&pfc 21 GPIO_ACTIVE_LOW>; | ||
100 | }; | ||
101 | led3 { | ||
102 | gpios = <&pfc 22 GPIO_ACTIVE_LOW>; | ||
103 | }; | ||
104 | led4 { | ||
105 | gpios = <&pfc 23 GPIO_ACTIVE_LOW>; | ||
106 | }; | ||
107 | }; | ||
73 | }; | 108 | }; |
74 | 109 | ||
75 | &i2c0 { | 110 | &i2c0 { |
@@ -145,20 +180,71 @@ | |||
145 | }; | 180 | }; |
146 | }; | 181 | }; |
147 | 182 | ||
183 | &i2c3 { | ||
184 | pinctrl-0 = <&i2c3_pins>; | ||
185 | pinctrl-names = "default"; | ||
186 | }; | ||
187 | |||
148 | &mmcif { | 188 | &mmcif { |
189 | pinctrl-0 = <&mmcif_pins>; | ||
190 | pinctrl-names = "default"; | ||
191 | |||
149 | bus-width = <8>; | 192 | bus-width = <8>; |
150 | vmmc-supply = <®_1p8v>; | 193 | vmmc-supply = <®_1p8v>; |
151 | status = "okay"; | 194 | status = "okay"; |
152 | }; | 195 | }; |
153 | 196 | ||
197 | &pfc { | ||
198 | pinctrl-0 = <&scifa4_pins>; | ||
199 | pinctrl-names = "default"; | ||
200 | |||
201 | i2c3_pins: i2c3 { | ||
202 | renesas,groups = "i2c3_1"; | ||
203 | renesas,function = "i2c3"; | ||
204 | }; | ||
205 | |||
206 | mmcif_pins: mmcif { | ||
207 | mux { | ||
208 | renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0"; | ||
209 | renesas,function = "mmc0"; | ||
210 | }; | ||
211 | cfg { | ||
212 | renesas,groups = "mmc0_data8_0"; | ||
213 | renesas,pins = "PORT279"; | ||
214 | bias-pull-up; | ||
215 | }; | ||
216 | }; | ||
217 | |||
218 | scifa4_pins: scifa4 { | ||
219 | renesas,groups = "scifa4_data", "scifa4_ctrl"; | ||
220 | renesas,function = "scifa4"; | ||
221 | }; | ||
222 | |||
223 | sdhi0_pins: sdhi0 { | ||
224 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", "sdhi0_wp"; | ||
225 | renesas,function = "sdhi0"; | ||
226 | }; | ||
227 | |||
228 | sdhi2_pins: sdhi2 { | ||
229 | renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; | ||
230 | renesas,function = "sdhi2"; | ||
231 | }; | ||
232 | }; | ||
233 | |||
154 | &sdhi0 { | 234 | &sdhi0 { |
155 | vmmc-supply = <®_3p3v>; | 235 | pinctrl-0 = <&sdhi0_pins>; |
236 | pinctrl-names = "default"; | ||
237 | |||
238 | vmmc-supply = <&vmmc_sdhi0>; | ||
156 | bus-width = <4>; | 239 | bus-width = <4>; |
157 | status = "okay"; | 240 | status = "okay"; |
158 | }; | 241 | }; |
159 | 242 | ||
160 | &sdhi2 { | 243 | &sdhi2 { |
161 | vmmc-supply = <®_3p3v>; | 244 | pinctrl-0 = <&sdhi2_pins>; |
245 | pinctrl-names = "default"; | ||
246 | |||
247 | vmmc-supply = <&vmmc_sdhi2>; | ||
162 | bus-width = <4>; | 248 | bus-width = <4>; |
163 | broken-cd; | 249 | broken-cd; |
164 | status = "okay"; | 250 | status = "okay"; |
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi index b97750256003..86e79feb7560 100644 --- a/arch/arm/boot/dts/sh73a0.dtsi +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
@@ -222,4 +222,12 @@ | |||
222 | cap-sd-highspeed; | 222 | cap-sd-highspeed; |
223 | status = "disabled"; | 223 | status = "disabled"; |
224 | }; | 224 | }; |
225 | |||
226 | pfc: pfc@e6050000 { | ||
227 | compatible = "renesas,pfc-sh73a0"; | ||
228 | reg = <0xe6050000 0x8000>, | ||
229 | <0xe605801c 0x1c>; | ||
230 | gpio-controller; | ||
231 | #gpio-cells = <2>; | ||
232 | }; | ||
225 | }; | 233 | }; |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva-reference.c b/arch/arm/mach-shmobile/board-armadillo800eva-reference.c index 03b85fec2ddb..002d8d3d0fc5 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva-reference.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva-reference.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/pinctrl/machine.h> | ||
28 | #include <mach/common.h> | 27 | #include <mach/common.h> |
29 | #include <mach/r8a7740.h> | 28 | #include <mach/r8a7740.h> |
30 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
@@ -119,12 +118,6 @@ | |||
119 | * usbhsf_power_ctrl() | 118 | * usbhsf_power_ctrl() |
120 | */ | 119 | */ |
121 | 120 | ||
122 | static const struct pinctrl_map eva_pinctrl_map[] = { | ||
123 | /* SCIFA1 */ | ||
124 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.1", "pfc-r8a7740", | ||
125 | "scifa1_data", "scifa1"), | ||
126 | }; | ||
127 | |||
128 | static void __init eva_clock_init(void) | 121 | static void __init eva_clock_init(void) |
129 | { | 122 | { |
130 | struct clk *system = clk_get(NULL, "system_clk"); | 123 | struct clk *system = clk_get(NULL, "system_clk"); |
@@ -165,27 +158,18 @@ clock_error: | |||
165 | */ | 158 | */ |
166 | static void __init eva_init(void) | 159 | static void __init eva_init(void) |
167 | { | 160 | { |
168 | |||
169 | r8a7740_clock_init(MD_CK0 | MD_CK2); | 161 | r8a7740_clock_init(MD_CK0 | MD_CK2); |
170 | eva_clock_init(); | 162 | eva_clock_init(); |
171 | 163 | ||
172 | pinctrl_register_mappings(eva_pinctrl_map, ARRAY_SIZE(eva_pinctrl_map)); | ||
173 | r8a7740_pinmux_init(); | ||
174 | |||
175 | r8a7740_meram_workaround(); | 164 | r8a7740_meram_workaround(); |
176 | 165 | ||
177 | /* | ||
178 | * Touchscreen | ||
179 | * TODO: Move reset GPIO over to .dts when we can reference it | ||
180 | */ | ||
181 | gpio_request_one(166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */ | ||
182 | |||
183 | #ifdef CONFIG_CACHE_L2X0 | 166 | #ifdef CONFIG_CACHE_L2X0 |
184 | /* Early BRESP enable, Shared attribute override enable, 32K*8way */ | 167 | /* Early BRESP enable, Shared attribute override enable, 32K*8way */ |
185 | l2x0_init(IOMEM(0xf0002000), 0x40440000, 0x82000fff); | 168 | l2x0_init(IOMEM(0xf0002000), 0x40440000, 0x82000fff); |
186 | #endif | 169 | #endif |
187 | 170 | ||
188 | r8a7740_add_standard_devices_dt(); | 171 | r8a7740_add_standard_devices_dt(); |
172 | |||
189 | r8a7740_pm_init(); | 173 | r8a7740_pm_init(); |
190 | } | 174 | } |
191 | 175 | ||
diff --git a/arch/arm/mach-shmobile/board-kzm9g-reference.c b/arch/arm/mach-shmobile/board-kzm9g-reference.c index 41092bb01ee5..a66a808db012 100644 --- a/arch/arm/mach-shmobile/board-kzm9g-reference.c +++ b/arch/arm/mach-shmobile/board-kzm9g-reference.c | |||
@@ -21,66 +21,19 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/gpio.h> | ||
25 | #include <linux/io.h> | 24 | #include <linux/io.h> |
26 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
27 | #include <linux/input.h> | 26 | #include <linux/input.h> |
28 | #include <linux/of_platform.h> | 27 | #include <linux/of_platform.h> |
29 | #include <linux/pinctrl/machine.h> | ||
30 | #include <linux/pinctrl/pinconf-generic.h> | ||
31 | #include <mach/sh73a0.h> | 28 | #include <mach/sh73a0.h> |
32 | #include <mach/common.h> | 29 | #include <mach/common.h> |
33 | #include <asm/hardware/cache-l2x0.h> | 30 | #include <asm/hardware/cache-l2x0.h> |
34 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
35 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
36 | 33 | ||
37 | static unsigned long pin_pullup_conf[] = { | ||
38 | PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0), | ||
39 | }; | ||
40 | |||
41 | static const struct pinctrl_map kzm_pinctrl_map[] = { | ||
42 | PIN_MAP_MUX_GROUP_DEFAULT("e6826000.i2c", "pfc-sh73a0", | ||
43 | "i2c3_1", "i2c3"), | ||
44 | /* MMCIF */ | ||
45 | PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0", | ||
46 | "mmc0_data8_0", "mmc0"), | ||
47 | PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0", | ||
48 | "mmc0_ctrl_0", "mmc0"), | ||
49 | PIN_MAP_CONFIGS_PIN_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0", | ||
50 | "PORT279", pin_pullup_conf), | ||
51 | PIN_MAP_CONFIGS_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0", | ||
52 | "mmc0_data8_0", pin_pullup_conf), | ||
53 | /* SCIFA4 */ | ||
54 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0", | ||
55 | "scifa4_data", "scifa4"), | ||
56 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0", | ||
57 | "scifa4_ctrl", "scifa4"), | ||
58 | /* SDHI0 */ | ||
59 | PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0", | ||
60 | "sdhi0_data4", "sdhi0"), | ||
61 | PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0", | ||
62 | "sdhi0_ctrl", "sdhi0"), | ||
63 | PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0", | ||
64 | "sdhi0_cd", "sdhi0"), | ||
65 | PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0", | ||
66 | "sdhi0_wp", "sdhi0"), | ||
67 | /* SDHI2 */ | ||
68 | PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0", | ||
69 | "sdhi2_data4", "sdhi2"), | ||
70 | PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0", | ||
71 | "sdhi2_ctrl", "sdhi2"), | ||
72 | }; | ||
73 | |||
74 | static void __init kzm_init(void) | 34 | static void __init kzm_init(void) |
75 | { | 35 | { |
76 | sh73a0_add_standard_devices_dt(); | 36 | sh73a0_add_standard_devices_dt(); |
77 | pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map)); | ||
78 | sh73a0_pinmux_init(); | ||
79 | |||
80 | /* enable SD */ | ||
81 | gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */ | ||
82 | |||
83 | gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */ | ||
84 | 37 | ||
85 | #ifdef CONFIG_CACHE_L2X0 | 38 | #ifdef CONFIG_CACHE_L2X0 |
86 | /* Early BRESP enable, Shared attribute override enable, 64K*8way */ | 39 | /* Early BRESP enable, Shared attribute override enable, 64K*8way */ |
diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c index 480d882e42c7..3d1c439b4998 100644 --- a/arch/arm/mach-shmobile/board-marzen-reference.c +++ b/arch/arm/mach-shmobile/board-marzen-reference.c | |||
@@ -19,42 +19,14 @@ | |||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/pinctrl/machine.h> | ||
23 | #include <mach/r8a7779.h> | 22 | #include <mach/r8a7779.h> |
24 | #include <mach/common.h> | 23 | #include <mach/common.h> |
25 | #include <mach/irqs.h> | 24 | #include <mach/irqs.h> |
26 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
27 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
28 | 27 | ||
29 | static const struct pinctrl_map marzen_pinctrl_map[] = { | ||
30 | /* SCIF2 (CN18: DEBUG0) */ | ||
31 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-r8a7779", | ||
32 | "scif2_data_c", "scif2"), | ||
33 | /* SCIF4 (CN19: DEBUG1) */ | ||
34 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-r8a7779", | ||
35 | "scif4_data", "scif4"), | ||
36 | /* SDHI0 */ | ||
37 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | ||
38 | "sdhi0_data4", "sdhi0"), | ||
39 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | ||
40 | "sdhi0_ctrl", "sdhi0"), | ||
41 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | ||
42 | "sdhi0_cd", "sdhi0"), | ||
43 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | ||
44 | "sdhi0_wp", "sdhi0"), | ||
45 | /* SMSC */ | ||
46 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779", | ||
47 | "intc_irq1_b", "intc"), | ||
48 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779", | ||
49 | "lbsc_ex_cs0", "lbsc"), | ||
50 | }; | ||
51 | |||
52 | static void __init marzen_init(void) | 28 | static void __init marzen_init(void) |
53 | { | 29 | { |
54 | pinctrl_register_mappings(marzen_pinctrl_map, | ||
55 | ARRAY_SIZE(marzen_pinctrl_map)); | ||
56 | r8a7779_pinmux_init(); | ||
57 | |||
58 | r8a7779_add_standard_devices_dt(); | 30 | r8a7779_add_standard_devices_dt(); |
59 | } | 31 | } |
60 | 32 | ||