aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert+renesas@glider.be>2015-02-17 10:04:43 -0500
committerSimon Horman <horms+renesas@verge.net.au>2015-02-23 16:37:49 -0500
commite4ba0a9bddff3ba52cec100414d2f178440efc91 (patch)
treeeef8366235c36441849f36ed66b1ad548510cd32 /arch/arm/boot/dts
parenta656c603889c256e3d05e79e57714aa88d179903 (diff)
ARM: shmobile: r8a73a4: Move pfc node to work around probe ordering bug
Currently the pin function controller (which is also a GPIO controller) is instantiated before the interrupt controllers due to the order in the DTS. At that time, the irq domains for the interrupt controllers referenced by its interrupts-extended property cannot be found yet: irq: no irq domain found for /interrupt-controller@e61c0000 ! Nevertheless, the core OF probing code ignores this failure, besides a debug message that's not normally printed: not all legacy IRQ resources mapped for pfc and continues initialization of the device. Then, the sh-pfc driver cannot find any IRQ resources, and thinks no interrupts are available, causing gpio-keys to fail later: gpio-keys keyboard: Unable to claim irq 0; error -22 gpio-keys: probe of keyboard failed with error -22 Move the pin function controller node after the interrupt controller nodes it references to work around the bug in the core OF probing code. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi46
1 files changed, 23 insertions, 23 deletions
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 77bd35cd8911..d41201d258ca 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -92,29 +92,6 @@
92 }; 92 };
93 }; 93 };
94 94
95 pfc: pfc@e6050000 {
96 compatible = "renesas,pfc-r8a73a4";
97 reg = <0 0xe6050000 0 0x9000>;
98 gpio-controller;
99 #gpio-cells = <2>;
100 interrupts-extended =
101 <&irqc0 0 0>, <&irqc0 1 0>, <&irqc0 2 0>, <&irqc0 3 0>,
102 <&irqc0 4 0>, <&irqc0 5 0>, <&irqc0 6 0>, <&irqc0 7 0>,
103 <&irqc0 8 0>, <&irqc0 9 0>, <&irqc0 10 0>, <&irqc0 11 0>,
104 <&irqc0 12 0>, <&irqc0 13 0>, <&irqc0 14 0>, <&irqc0 15 0>,
105 <&irqc0 16 0>, <&irqc0 17 0>, <&irqc0 18 0>, <&irqc0 19 0>,
106 <&irqc0 20 0>, <&irqc0 21 0>, <&irqc0 22 0>, <&irqc0 23 0>,
107 <&irqc0 24 0>, <&irqc0 25 0>, <&irqc0 26 0>, <&irqc0 27 0>,
108 <&irqc0 28 0>, <&irqc0 29 0>, <&irqc0 30 0>, <&irqc0 31 0>,
109 <&irqc1 0 0>, <&irqc1 1 0>, <&irqc1 2 0>, <&irqc1 3 0>,
110 <&irqc1 4 0>, <&irqc1 5 0>, <&irqc1 6 0>, <&irqc1 7 0>,
111 <&irqc1 8 0>, <&irqc1 9 0>, <&irqc1 10 0>, <&irqc1 11 0>,
112 <&irqc1 12 0>, <&irqc1 13 0>, <&irqc1 14 0>, <&irqc1 15 0>,
113 <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>,
114 <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>,
115 <&irqc1 24 0>, <&irqc1 25 0>;
116 };
117
118 i2c5: i2c@e60b0000 { 95 i2c5: i2c@e60b0000 {
119 #address-cells = <1>; 96 #address-cells = <1>;
120 #size-cells = <0>; 97 #size-cells = <0>;
@@ -210,6 +187,29 @@
210 <0 57 IRQ_TYPE_LEVEL_HIGH>; 187 <0 57 IRQ_TYPE_LEVEL_HIGH>;
211 }; 188 };
212 189
190 pfc: pfc@e6050000 {
191 compatible = "renesas,pfc-r8a73a4";
192 reg = <0 0xe6050000 0 0x9000>;
193 gpio-controller;
194 #gpio-cells = <2>;
195 interrupts-extended =
196 <&irqc0 0 0>, <&irqc0 1 0>, <&irqc0 2 0>, <&irqc0 3 0>,
197 <&irqc0 4 0>, <&irqc0 5 0>, <&irqc0 6 0>, <&irqc0 7 0>,
198 <&irqc0 8 0>, <&irqc0 9 0>, <&irqc0 10 0>, <&irqc0 11 0>,
199 <&irqc0 12 0>, <&irqc0 13 0>, <&irqc0 14 0>, <&irqc0 15 0>,
200 <&irqc0 16 0>, <&irqc0 17 0>, <&irqc0 18 0>, <&irqc0 19 0>,
201 <&irqc0 20 0>, <&irqc0 21 0>, <&irqc0 22 0>, <&irqc0 23 0>,
202 <&irqc0 24 0>, <&irqc0 25 0>, <&irqc0 26 0>, <&irqc0 27 0>,
203 <&irqc0 28 0>, <&irqc0 29 0>, <&irqc0 30 0>, <&irqc0 31 0>,
204 <&irqc1 0 0>, <&irqc1 1 0>, <&irqc1 2 0>, <&irqc1 3 0>,
205 <&irqc1 4 0>, <&irqc1 5 0>, <&irqc1 6 0>, <&irqc1 7 0>,
206 <&irqc1 8 0>, <&irqc1 9 0>, <&irqc1 10 0>, <&irqc1 11 0>,
207 <&irqc1 12 0>, <&irqc1 13 0>, <&irqc1 14 0>, <&irqc1 15 0>,
208 <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>,
209 <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>,
210 <&irqc1 24 0>, <&irqc1 25 0>;
211 };
212
213 thermal@e61f0000 { 213 thermal@e61f0000 {
214 compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal"; 214 compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
215 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, 215 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>,