diff options
author | Olof Johansson <olof@lixom.net> | 2014-07-08 00:47:03 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-07-08 00:47:03 -0400 |
commit | 12af7011e958f2d2cef3ec1e2b692fb93f9c3dac (patch) | |
tree | 3b151e6d039d8d37e47d3db997869f1fecf658ec /arch/arm/boot | |
parent | b040614c5bf6af6657574299fdf0572d47b53366 (diff) | |
parent | a54c959d8be9d057b1a192e34a378b74dd81c5f6 (diff) |
Merge tag 'versatile-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux into next/soc
Merge "DT IRQ and clock support for Versatile platforms" from Rob Herring.
This branch moves IRQ and clock support over to DT for the versatile
platforms.
* tag 'versatile-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
clk: versatile: add versatile OSC support
dts: versatile: add clock tree
ARM: timer-sp: allow getting timer1 clock from DT to fallback to legacy clock
dt/bindings: add compatible string for versatile osc clock
dt/bindings: arm-boards: add binding for Versatile core module
dts: versatile: add pl180 compatible strings
ARM: versatile: remove init_irq hook for DT boot
ARM: integrator: convert to use irqchip_init
irqchip: versatile-fpga: add support for arm,versatile-sic
irqchip: versatile-fpga: Add IRQCHIP_DECLARE support
dts: versatile: add missing irq controller properties
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r-- | arch/arm/boot/dts/versatile-ab.dts | 81 | ||||
-rw-r--r-- | arch/arm/boot/dts/versatile-pb.dts | 12 |
2 files changed, 91 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts index e01e5a081def..36c771a2d765 100644 --- a/arch/arm/boot/dts/versatile-ab.dts +++ b/arch/arm/boot/dts/versatile-ab.dts | |||
@@ -19,6 +19,41 @@ | |||
19 | reg = <0x0 0x08000000>; | 19 | reg = <0x0 0x08000000>; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | xtal24mhz: xtal24mhz@24M { | ||
23 | #clock-cells = <0>; | ||
24 | compatible = "fixed-clock"; | ||
25 | clock-frequency = <24000000>; | ||
26 | }; | ||
27 | |||
28 | core-module@10000000 { | ||
29 | compatible = "arm,core-module-versatile", "syscon"; | ||
30 | reg = <0x10000000 0x200>; | ||
31 | |||
32 | /* OSC1 on AB, OSC4 on PB */ | ||
33 | osc1: cm_aux_osc@24M { | ||
34 | #clock-cells = <0>; | ||
35 | compatible = "arm,versatile-cm-auxosc"; | ||
36 | clocks = <&xtal24mhz>; | ||
37 | }; | ||
38 | |||
39 | /* The timer clock is the 24 MHz oscillator divided to 1MHz */ | ||
40 | timclk: timclk@1M { | ||
41 | #clock-cells = <0>; | ||
42 | compatible = "fixed-factor-clock"; | ||
43 | clock-div = <24>; | ||
44 | clock-mult = <1>; | ||
45 | clocks = <&xtal24mhz>; | ||
46 | }; | ||
47 | |||
48 | pclk: pclk@24M { | ||
49 | #clock-cells = <0>; | ||
50 | compatible = "fixed-factor-clock"; | ||
51 | clock-div = <1>; | ||
52 | clock-mult = <1>; | ||
53 | clocks = <&xtal24mhz>; | ||
54 | }; | ||
55 | }; | ||
56 | |||
22 | flash@34000000 { | 57 | flash@34000000 { |
23 | compatible = "arm,versatile-flash"; | 58 | compatible = "arm,versatile-flash"; |
24 | reg = <0x34000000 0x4000000>; | 59 | reg = <0x34000000 0x4000000>; |
@@ -59,6 +94,8 @@ | |||
59 | interrupt-controller; | 94 | interrupt-controller; |
60 | #interrupt-cells = <1>; | 95 | #interrupt-cells = <1>; |
61 | reg = <0x10140000 0x1000>; | 96 | reg = <0x10140000 0x1000>; |
97 | clear-mask = <0xffffffff>; | ||
98 | valid-mask = <0xffffffff>; | ||
62 | }; | 99 | }; |
63 | 100 | ||
64 | sic: intc@10003000 { | 101 | sic: intc@10003000 { |
@@ -68,69 +105,93 @@ | |||
68 | reg = <0x10003000 0x1000>; | 105 | reg = <0x10003000 0x1000>; |
69 | interrupt-parent = <&vic>; | 106 | interrupt-parent = <&vic>; |
70 | interrupts = <31>; /* Cascaded to vic */ | 107 | interrupts = <31>; /* Cascaded to vic */ |
108 | clear-mask = <0xffffffff>; | ||
109 | valid-mask = <0xffc203f8>; | ||
71 | }; | 110 | }; |
72 | 111 | ||
73 | dma@10130000 { | 112 | dma@10130000 { |
74 | compatible = "arm,pl081", "arm,primecell"; | 113 | compatible = "arm,pl081", "arm,primecell"; |
75 | reg = <0x10130000 0x1000>; | 114 | reg = <0x10130000 0x1000>; |
76 | interrupts = <17>; | 115 | interrupts = <17>; |
116 | clocks = <&pclk>; | ||
117 | clock-names = "apb_pclk"; | ||
77 | }; | 118 | }; |
78 | 119 | ||
79 | uart0: uart@101f1000 { | 120 | uart0: uart@101f1000 { |
80 | compatible = "arm,pl011", "arm,primecell"; | 121 | compatible = "arm,pl011", "arm,primecell"; |
81 | reg = <0x101f1000 0x1000>; | 122 | reg = <0x101f1000 0x1000>; |
82 | interrupts = <12>; | 123 | interrupts = <12>; |
124 | clocks = <&xtal24mhz>, <&pclk>; | ||
125 | clock-names = "uartclk", "apb_pclk"; | ||
83 | }; | 126 | }; |
84 | 127 | ||
85 | uart1: uart@101f2000 { | 128 | uart1: uart@101f2000 { |
86 | compatible = "arm,pl011", "arm,primecell"; | 129 | compatible = "arm,pl011", "arm,primecell"; |
87 | reg = <0x101f2000 0x1000>; | 130 | reg = <0x101f2000 0x1000>; |
88 | interrupts = <13>; | 131 | interrupts = <13>; |
132 | clocks = <&xtal24mhz>, <&pclk>; | ||
133 | clock-names = "uartclk", "apb_pclk"; | ||
89 | }; | 134 | }; |
90 | 135 | ||
91 | uart2: uart@101f3000 { | 136 | uart2: uart@101f3000 { |
92 | compatible = "arm,pl011", "arm,primecell"; | 137 | compatible = "arm,pl011", "arm,primecell"; |
93 | reg = <0x101f3000 0x1000>; | 138 | reg = <0x101f3000 0x1000>; |
94 | interrupts = <14>; | 139 | interrupts = <14>; |
140 | clocks = <&xtal24mhz>, <&pclk>; | ||
141 | clock-names = "uartclk", "apb_pclk"; | ||
95 | }; | 142 | }; |
96 | 143 | ||
97 | smc@10100000 { | 144 | smc@10100000 { |
98 | compatible = "arm,primecell"; | 145 | compatible = "arm,primecell"; |
99 | reg = <0x10100000 0x1000>; | 146 | reg = <0x10100000 0x1000>; |
147 | clocks = <&pclk>; | ||
148 | clock-names = "apb_pclk"; | ||
100 | }; | 149 | }; |
101 | 150 | ||
102 | mpmc@10110000 { | 151 | mpmc@10110000 { |
103 | compatible = "arm,primecell"; | 152 | compatible = "arm,primecell"; |
104 | reg = <0x10110000 0x1000>; | 153 | reg = <0x10110000 0x1000>; |
154 | clocks = <&pclk>; | ||
155 | clock-names = "apb_pclk"; | ||
105 | }; | 156 | }; |
106 | 157 | ||
107 | display@10120000 { | 158 | display@10120000 { |
108 | compatible = "arm,pl110", "arm,primecell"; | 159 | compatible = "arm,pl110", "arm,primecell"; |
109 | reg = <0x10120000 0x1000>; | 160 | reg = <0x10120000 0x1000>; |
110 | interrupts = <16>; | 161 | interrupts = <16>; |
162 | clocks = <&osc1>, <&pclk>; | ||
163 | clock-names = "clcd", "apb_pclk"; | ||
111 | }; | 164 | }; |
112 | 165 | ||
113 | sctl@101e0000 { | 166 | sctl@101e0000 { |
114 | compatible = "arm,primecell"; | 167 | compatible = "arm,primecell"; |
115 | reg = <0x101e0000 0x1000>; | 168 | reg = <0x101e0000 0x1000>; |
169 | clocks = <&pclk>; | ||
170 | clock-names = "apb_pclk"; | ||
116 | }; | 171 | }; |
117 | 172 | ||
118 | watchdog@101e1000 { | 173 | watchdog@101e1000 { |
119 | compatible = "arm,primecell"; | 174 | compatible = "arm,primecell"; |
120 | reg = <0x101e1000 0x1000>; | 175 | reg = <0x101e1000 0x1000>; |
121 | interrupts = <0>; | 176 | interrupts = <0>; |
177 | clocks = <&pclk>; | ||
178 | clock-names = "apb_pclk"; | ||
122 | }; | 179 | }; |
123 | 180 | ||
124 | timer@101e2000 { | 181 | timer@101e2000 { |
125 | compatible = "arm,sp804", "arm,primecell"; | 182 | compatible = "arm,sp804", "arm,primecell"; |
126 | reg = <0x101e2000 0x1000>; | 183 | reg = <0x101e2000 0x1000>; |
127 | interrupts = <4>; | 184 | interrupts = <4>; |
185 | clocks = <&timclk>, <&timclk>, <&pclk>; | ||
186 | clock-names = "timer0", "timer1", "apb_pclk"; | ||
128 | }; | 187 | }; |
129 | 188 | ||
130 | timer@101e3000 { | 189 | timer@101e3000 { |
131 | compatible = "arm,sp804", "arm,primecell"; | 190 | compatible = "arm,sp804", "arm,primecell"; |
132 | reg = <0x101e3000 0x1000>; | 191 | reg = <0x101e3000 0x1000>; |
133 | interrupts = <5>; | 192 | interrupts = <5>; |
193 | clocks = <&timclk>, <&timclk>, <&pclk>; | ||
194 | clock-names = "timer0", "timer1", "apb_pclk"; | ||
134 | }; | 195 | }; |
135 | 196 | ||
136 | gpio0: gpio@101e4000 { | 197 | gpio0: gpio@101e4000 { |
@@ -141,6 +202,8 @@ | |||
141 | #gpio-cells = <2>; | 202 | #gpio-cells = <2>; |
142 | interrupt-controller; | 203 | interrupt-controller; |
143 | #interrupt-cells = <2>; | 204 | #interrupt-cells = <2>; |
205 | clocks = <&pclk>; | ||
206 | clock-names = "apb_pclk"; | ||
144 | }; | 207 | }; |
145 | 208 | ||
146 | gpio1: gpio@101e5000 { | 209 | gpio1: gpio@101e5000 { |
@@ -151,24 +214,32 @@ | |||
151 | #gpio-cells = <2>; | 214 | #gpio-cells = <2>; |
152 | interrupt-controller; | 215 | interrupt-controller; |
153 | #interrupt-cells = <2>; | 216 | #interrupt-cells = <2>; |
217 | clocks = <&pclk>; | ||
218 | clock-names = "apb_pclk"; | ||
154 | }; | 219 | }; |
155 | 220 | ||
156 | rtc@101e8000 { | 221 | rtc@101e8000 { |
157 | compatible = "arm,pl030", "arm,primecell"; | 222 | compatible = "arm,pl030", "arm,primecell"; |
158 | reg = <0x101e8000 0x1000>; | 223 | reg = <0x101e8000 0x1000>; |
159 | interrupts = <10>; | 224 | interrupts = <10>; |
225 | clocks = <&pclk>; | ||
226 | clock-names = "apb_pclk"; | ||
160 | }; | 227 | }; |
161 | 228 | ||
162 | sci@101f0000 { | 229 | sci@101f0000 { |
163 | compatible = "arm,primecell"; | 230 | compatible = "arm,primecell"; |
164 | reg = <0x101f0000 0x1000>; | 231 | reg = <0x101f0000 0x1000>; |
165 | interrupts = <15>; | 232 | interrupts = <15>; |
233 | clocks = <&pclk>; | ||
234 | clock-names = "apb_pclk"; | ||
166 | }; | 235 | }; |
167 | 236 | ||
168 | ssp@101f4000 { | 237 | ssp@101f4000 { |
169 | compatible = "arm,pl022", "arm,primecell"; | 238 | compatible = "arm,pl022", "arm,primecell"; |
170 | reg = <0x101f4000 0x1000>; | 239 | reg = <0x101f4000 0x1000>; |
171 | interrupts = <11>; | 240 | interrupts = <11>; |
241 | clocks = <&xtal24mhz>, <&pclk>; | ||
242 | clock-names = "SSPCLK", "apb_pclk"; | ||
172 | }; | 243 | }; |
173 | 244 | ||
174 | fpga { | 245 | fpga { |
@@ -181,23 +252,31 @@ | |||
181 | compatible = "arm,primecell"; | 252 | compatible = "arm,primecell"; |
182 | reg = <0x4000 0x1000>; | 253 | reg = <0x4000 0x1000>; |
183 | interrupts = <24>; | 254 | interrupts = <24>; |
255 | clocks = <&pclk>; | ||
256 | clock-names = "apb_pclk"; | ||
184 | }; | 257 | }; |
185 | mmc@5000 { | 258 | mmc@5000 { |
186 | compatible = "arm,primecell"; | 259 | compatible = "arm,pl180", "arm,primecell"; |
187 | reg = < 0x5000 0x1000>; | 260 | reg = < 0x5000 0x1000>; |
188 | interrupts-extended = <&vic 22 &sic 2>; | 261 | interrupts-extended = <&vic 22 &sic 2>; |
262 | clocks = <&xtal24mhz>, <&pclk>; | ||
263 | clock-names = "mclk", "apb_pclk"; | ||
189 | }; | 264 | }; |
190 | kmi@6000 { | 265 | kmi@6000 { |
191 | compatible = "arm,pl050", "arm,primecell"; | 266 | compatible = "arm,pl050", "arm,primecell"; |
192 | reg = <0x6000 0x1000>; | 267 | reg = <0x6000 0x1000>; |
193 | interrupt-parent = <&sic>; | 268 | interrupt-parent = <&sic>; |
194 | interrupts = <3>; | 269 | interrupts = <3>; |
270 | clocks = <&xtal24mhz>, <&pclk>; | ||
271 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
195 | }; | 272 | }; |
196 | kmi@7000 { | 273 | kmi@7000 { |
197 | compatible = "arm,pl050", "arm,primecell"; | 274 | compatible = "arm,pl050", "arm,primecell"; |
198 | reg = <0x7000 0x1000>; | 275 | reg = <0x7000 0x1000>; |
199 | interrupt-parent = <&sic>; | 276 | interrupt-parent = <&sic>; |
200 | interrupts = <4>; | 277 | interrupts = <4>; |
278 | clocks = <&xtal24mhz>, <&pclk>; | ||
279 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
201 | }; | 280 | }; |
202 | }; | 281 | }; |
203 | }; | 282 | }; |
diff --git a/arch/arm/boot/dts/versatile-pb.dts b/arch/arm/boot/dts/versatile-pb.dts index 65f657711323..d025048119d3 100644 --- a/arch/arm/boot/dts/versatile-pb.dts +++ b/arch/arm/boot/dts/versatile-pb.dts | |||
@@ -13,6 +13,8 @@ | |||
13 | #gpio-cells = <2>; | 13 | #gpio-cells = <2>; |
14 | interrupt-controller; | 14 | interrupt-controller; |
15 | #interrupt-cells = <2>; | 15 | #interrupt-cells = <2>; |
16 | clocks = <&pclk>; | ||
17 | clock-names = "apb_pclk"; | ||
16 | }; | 18 | }; |
17 | 19 | ||
18 | gpio3: gpio@101e7000 { | 20 | gpio3: gpio@101e7000 { |
@@ -23,6 +25,8 @@ | |||
23 | #gpio-cells = <2>; | 25 | #gpio-cells = <2>; |
24 | interrupt-controller; | 26 | interrupt-controller; |
25 | #interrupt-cells = <2>; | 27 | #interrupt-cells = <2>; |
28 | clocks = <&pclk>; | ||
29 | clock-names = "apb_pclk"; | ||
26 | }; | 30 | }; |
27 | 31 | ||
28 | fpga { | 32 | fpga { |
@@ -31,17 +35,23 @@ | |||
31 | reg = <0x9000 0x1000>; | 35 | reg = <0x9000 0x1000>; |
32 | interrupt-parent = <&sic>; | 36 | interrupt-parent = <&sic>; |
33 | interrupts = <6>; | 37 | interrupts = <6>; |
38 | clocks = <&xtal24mhz>, <&pclk>; | ||
39 | clock-names = "uartclk", "apb_pclk"; | ||
34 | }; | 40 | }; |
35 | sci@a000 { | 41 | sci@a000 { |
36 | compatible = "arm,primecell"; | 42 | compatible = "arm,primecell"; |
37 | reg = <0xa000 0x1000>; | 43 | reg = <0xa000 0x1000>; |
38 | interrupt-parent = <&sic>; | 44 | interrupt-parent = <&sic>; |
39 | interrupts = <5>; | 45 | interrupts = <5>; |
46 | clocks = <&xtal24mhz>; | ||
47 | clock-names = "apb_pclk"; | ||
40 | }; | 48 | }; |
41 | mmc@b000 { | 49 | mmc@b000 { |
42 | compatible = "arm,primecell"; | 50 | compatible = "arm,pl180", "arm,primecell"; |
43 | reg = <0xb000 0x1000>; | 51 | reg = <0xb000 0x1000>; |
44 | interrupts-extended = <&vic 23 &sic 2>; | 52 | interrupts-extended = <&vic 23 &sic 2>; |
53 | clocks = <&xtal24mhz>, <&pclk>; | ||
54 | clock-names = "mclk", "apb_pclk"; | ||
45 | }; | 55 | }; |
46 | }; | 56 | }; |
47 | }; | 57 | }; |