diff options
author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-12-11 09:05:16 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-12-19 06:01:33 -0500 |
commit | 59e79895b95892863617ce630fbda467f2470575 (patch) | |
tree | f6c178959a94a8dcf4d30fce8bada8d473524b37 | |
parent | 72197ca7a1cb1cea5615c879f638d5d457c0b2e2 (diff) |
ARM: shmobile: r8a7791: Add clocks
Declare all core clocks and DIV6 clocks, as well as all MSTP clocks
currently used by r8a7791 boards.
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/boot/dts/r8a7791.dtsi | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi index a349aff54c76..0a8219258145 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi | |||
@@ -9,6 +9,7 @@ | |||
9 | * kind, whether express or implied. | 9 | * kind, whether express or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <dt-bindings/clock/r8a7791-clock.h> | ||
12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 13 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
13 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
14 | 15 | ||
@@ -183,4 +184,316 @@ | |||
183 | reg = <0 0xe6060000 0 0x250>; | 184 | reg = <0 0xe6060000 0 0x250>; |
184 | #gpio-range-cells = <3>; | 185 | #gpio-range-cells = <3>; |
185 | }; | 186 | }; |
187 | |||
188 | clocks { | ||
189 | #address-cells = <2>; | ||
190 | #size-cells = <2>; | ||
191 | ranges; | ||
192 | |||
193 | /* External root clock */ | ||
194 | extal_clk: extal_clk { | ||
195 | compatible = "fixed-clock"; | ||
196 | #clock-cells = <0>; | ||
197 | /* This value must be overriden by the board. */ | ||
198 | clock-frequency = <0>; | ||
199 | clock-output-names = "extal"; | ||
200 | }; | ||
201 | |||
202 | /* Special CPG clocks */ | ||
203 | cpg_clocks: cpg_clocks@e6150000 { | ||
204 | compatible = "renesas,r8a7791-cpg-clocks", | ||
205 | "renesas,rcar-gen2-cpg-clocks"; | ||
206 | reg = <0 0xe6150000 0 0x1000>; | ||
207 | clocks = <&extal_clk>; | ||
208 | #clock-cells = <1>; | ||
209 | clock-output-names = "main", "pll0", "pll1", "pll3", | ||
210 | "lb", "qspi", "sdh", "sd0", "z"; | ||
211 | }; | ||
212 | |||
213 | /* Variable factor clocks */ | ||
214 | sd1_clk: sd2_clk@e6150078 { | ||
215 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
216 | reg = <0 0xe6150078 0 4>; | ||
217 | clocks = <&pll1_div2_clk>; | ||
218 | #clock-cells = <0>; | ||
219 | clock-output-names = "sd1"; | ||
220 | }; | ||
221 | sd2_clk: sd3_clk@e615007c { | ||
222 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
223 | reg = <0 0xe615007c 0 4>; | ||
224 | clocks = <&pll1_div2_clk>; | ||
225 | #clock-cells = <0>; | ||
226 | clock-output-names = "sd2"; | ||
227 | }; | ||
228 | mmc0_clk: mmc0_clk@e6150240 { | ||
229 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
230 | reg = <0 0xe6150240 0 4>; | ||
231 | clocks = <&pll1_div2_clk>; | ||
232 | #clock-cells = <0>; | ||
233 | clock-output-names = "mmc0"; | ||
234 | }; | ||
235 | ssp_clk: ssp_clk@e6150248 { | ||
236 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
237 | reg = <0 0xe6150248 0 4>; | ||
238 | clocks = <&pll1_div2_clk>; | ||
239 | #clock-cells = <0>; | ||
240 | clock-output-names = "ssp"; | ||
241 | }; | ||
242 | ssprs_clk: ssprs_clk@e615024c { | ||
243 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
244 | reg = <0 0xe615024c 0 4>; | ||
245 | clocks = <&pll1_div2_clk>; | ||
246 | #clock-cells = <0>; | ||
247 | clock-output-names = "ssprs"; | ||
248 | }; | ||
249 | |||
250 | /* Fixed factor clocks */ | ||
251 | pll1_div2_clk: pll1_div2_clk { | ||
252 | compatible = "fixed-factor-clock"; | ||
253 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
254 | #clock-cells = <0>; | ||
255 | clock-div = <2>; | ||
256 | clock-mult = <1>; | ||
257 | clock-output-names = "pll1_div2"; | ||
258 | }; | ||
259 | zg_clk: zg_clk { | ||
260 | compatible = "fixed-factor-clock"; | ||
261 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
262 | #clock-cells = <0>; | ||
263 | clock-div = <3>; | ||
264 | clock-mult = <1>; | ||
265 | clock-output-names = "zg"; | ||
266 | }; | ||
267 | zx_clk: zx_clk { | ||
268 | compatible = "fixed-factor-clock"; | ||
269 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
270 | #clock-cells = <0>; | ||
271 | clock-div = <3>; | ||
272 | clock-mult = <1>; | ||
273 | clock-output-names = "zx"; | ||
274 | }; | ||
275 | zs_clk: zs_clk { | ||
276 | compatible = "fixed-factor-clock"; | ||
277 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
278 | #clock-cells = <0>; | ||
279 | clock-div = <6>; | ||
280 | clock-mult = <1>; | ||
281 | clock-output-names = "zs"; | ||
282 | }; | ||
283 | hp_clk: hp_clk { | ||
284 | compatible = "fixed-factor-clock"; | ||
285 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
286 | #clock-cells = <0>; | ||
287 | clock-div = <12>; | ||
288 | clock-mult = <1>; | ||
289 | clock-output-names = "hp"; | ||
290 | }; | ||
291 | i_clk: i_clk { | ||
292 | compatible = "fixed-factor-clock"; | ||
293 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
294 | #clock-cells = <0>; | ||
295 | clock-div = <2>; | ||
296 | clock-mult = <1>; | ||
297 | clock-output-names = "i"; | ||
298 | }; | ||
299 | b_clk: b_clk { | ||
300 | compatible = "fixed-factor-clock"; | ||
301 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
302 | #clock-cells = <0>; | ||
303 | clock-div = <12>; | ||
304 | clock-mult = <1>; | ||
305 | clock-output-names = "b"; | ||
306 | }; | ||
307 | p_clk: p_clk { | ||
308 | compatible = "fixed-factor-clock"; | ||
309 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
310 | #clock-cells = <0>; | ||
311 | clock-div = <24>; | ||
312 | clock-mult = <1>; | ||
313 | clock-output-names = "p"; | ||
314 | }; | ||
315 | cl_clk: cl_clk { | ||
316 | compatible = "fixed-factor-clock"; | ||
317 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
318 | #clock-cells = <0>; | ||
319 | clock-div = <48>; | ||
320 | clock-mult = <1>; | ||
321 | clock-output-names = "cl"; | ||
322 | }; | ||
323 | m2_clk: m2_clk { | ||
324 | compatible = "fixed-factor-clock"; | ||
325 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
326 | #clock-cells = <0>; | ||
327 | clock-div = <8>; | ||
328 | clock-mult = <1>; | ||
329 | clock-output-names = "m2"; | ||
330 | }; | ||
331 | imp_clk: imp_clk { | ||
332 | compatible = "fixed-factor-clock"; | ||
333 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
334 | #clock-cells = <0>; | ||
335 | clock-div = <4>; | ||
336 | clock-mult = <1>; | ||
337 | clock-output-names = "imp"; | ||
338 | }; | ||
339 | rclk_clk: rclk_clk { | ||
340 | compatible = "fixed-factor-clock"; | ||
341 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
342 | #clock-cells = <0>; | ||
343 | clock-div = <(48 * 1024)>; | ||
344 | clock-mult = <1>; | ||
345 | clock-output-names = "rclk"; | ||
346 | }; | ||
347 | oscclk_clk: oscclk_clk { | ||
348 | compatible = "fixed-factor-clock"; | ||
349 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
350 | #clock-cells = <0>; | ||
351 | clock-div = <(12 * 1024)>; | ||
352 | clock-mult = <1>; | ||
353 | clock-output-names = "oscclk"; | ||
354 | }; | ||
355 | zb3_clk: zb3_clk { | ||
356 | compatible = "fixed-factor-clock"; | ||
357 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
358 | #clock-cells = <0>; | ||
359 | clock-div = <4>; | ||
360 | clock-mult = <1>; | ||
361 | clock-output-names = "zb3"; | ||
362 | }; | ||
363 | zb3d2_clk: zb3d2_clk { | ||
364 | compatible = "fixed-factor-clock"; | ||
365 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
366 | #clock-cells = <0>; | ||
367 | clock-div = <8>; | ||
368 | clock-mult = <1>; | ||
369 | clock-output-names = "zb3d2"; | ||
370 | }; | ||
371 | ddr_clk: ddr_clk { | ||
372 | compatible = "fixed-factor-clock"; | ||
373 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
374 | #clock-cells = <0>; | ||
375 | clock-div = <8>; | ||
376 | clock-mult = <1>; | ||
377 | clock-output-names = "ddr"; | ||
378 | }; | ||
379 | mp_clk: mp_clk { | ||
380 | compatible = "fixed-factor-clock"; | ||
381 | clocks = <&pll1_div2_clk>; | ||
382 | #clock-cells = <0>; | ||
383 | clock-div = <15>; | ||
384 | clock-mult = <1>; | ||
385 | clock-output-names = "mp"; | ||
386 | }; | ||
387 | cp_clk: cp_clk { | ||
388 | compatible = "fixed-factor-clock"; | ||
389 | clocks = <&extal_clk>; | ||
390 | #clock-cells = <0>; | ||
391 | clock-div = <2>; | ||
392 | clock-mult = <1>; | ||
393 | clock-output-names = "cp"; | ||
394 | }; | ||
395 | |||
396 | /* Gate clocks */ | ||
397 | mstp1_clks: mstp1_clks@e6150134 { | ||
398 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
399 | reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; | ||
400 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, | ||
401 | <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>; | ||
402 | #clock-cells = <1>; | ||
403 | renesas,clock-indices = < | ||
404 | R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2 | ||
405 | R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1 | ||
406 | R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_SY | ||
407 | >; | ||
408 | clock-output-names = | ||
409 | "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", | ||
410 | "vsp1-du0", "vsp1-sy"; | ||
411 | }; | ||
412 | mstp2_clks: mstp2_clks@e6150138 { | ||
413 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
414 | reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; | ||
415 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, | ||
416 | <&mp_clk>; | ||
417 | #clock-cells = <1>; | ||
418 | renesas,clock-indices = < | ||
419 | R8A7791_CLK_SCIFA2 R8A7791_CLK_SCIFA1 R8A7791_CLK_SCIFA0 | ||
420 | R8A7791_CLK_SCIFB0 R8A7791_CLK_SCIFB1 R8A7791_CLK_SCIFB2 | ||
421 | >; | ||
422 | clock-output-names = | ||
423 | "scifa2", "scifa1", "scifa0", "scifb0", "scifb1", | ||
424 | "scifb2"; | ||
425 | }; | ||
426 | mstp3_clks: mstp3_clks@e615013c { | ||
427 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
428 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
429 | clocks = <&cp_clk>, <&sd2_clk>, <&sd1_clk>, | ||
430 | <&cpg_clocks R8A7791_CLK_SD0>, <&mmc0_clk>, <&rclk_clk>; | ||
431 | #clock-cells = <1>; | ||
432 | renesas,clock-indices = < | ||
433 | R8A7791_CLK_TPU0 R8A7791_CLK_SDHI2 R8A7791_CLK_SDHI1 | ||
434 | R8A7791_CLK_SDHI0 R8A7791_CLK_MMCIF0 R8A7791_CLK_CMT1 | ||
435 | >; | ||
436 | clock-output-names = | ||
437 | "tpu0", "sdhi2", "sdhi1", "sdhi0", "mmcif0", "cmt1"; | ||
438 | }; | ||
439 | mstp5_clks: mstp5_clks@e6150144 { | ||
440 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
441 | reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; | ||
442 | clocks = <&extal_clk>, <&p_clk>; | ||
443 | #clock-cells = <1>; | ||
444 | renesas,clock-indices = <R8A7791_CLK_THERMAL R8A7791_CLK_PWM>; | ||
445 | clock-output-names = "thermal", "pwm"; | ||
446 | }; | ||
447 | mstp7_clks: mstp7_clks@e615014c { | ||
448 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
449 | reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; | ||
450 | clocks = <&mp_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>, | ||
451 | <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, | ||
452 | <&zx_clk>, <&zx_clk>, <&zx_clk>; | ||
453 | #clock-cells = <1>; | ||
454 | renesas,clock-indices = < | ||
455 | R8A7791_CLK_HSUSB R8A7791_CLK_HSCIF2 R8A7791_CLK_SCIF5 | ||
456 | R8A7791_CLK_SCIF4 R8A7791_CLK_HSCIF1 R8A7791_CLK_HSCIF0 | ||
457 | R8A7791_CLK_SCIF3 R8A7791_CLK_SCIF2 R8A7791_CLK_SCIF1 | ||
458 | R8A7791_CLK_SCIF0 R8A7791_CLK_DU1 R8A7791_CLK_DU0 | ||
459 | R8A7791_CLK_LVDS0 | ||
460 | >; | ||
461 | clock-output-names = | ||
462 | "hsusb", "hscif2", "scif5", "scif4", "hscif1", "hscif0", | ||
463 | "scif3", "scif2", "scif1", "scif0", "du1", "du0", "lvds0"; | ||
464 | }; | ||
465 | mstp8_clks: mstp8_clks@e6150990 { | ||
466 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
467 | reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; | ||
468 | clocks = <&p_clk>; | ||
469 | #clock-cells = <1>; | ||
470 | renesas,clock-indices = <R8A7791_CLK_ETHER>; | ||
471 | clock-output-names = "ether"; | ||
472 | }; | ||
473 | mstp9_clks: mstp9_clks@e6150994 { | ||
474 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
475 | reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; | ||
476 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, | ||
477 | <&p_clk>, <&p_clk>, <&p_clk>; | ||
478 | #clock-cells = <1>; | ||
479 | renesas,clock-indices = < | ||
480 | R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_I2C4 | ||
481 | R8A7791_CLK_I2C4 R8A7791_CLK_I2C3 R8A7791_CLK_I2C2 | ||
482 | R8A7791_CLK_I2C1 R8A7791_CLK_I2C0 | ||
483 | >; | ||
484 | clock-output-names = | ||
485 | "rcan1", "rcan0", "i2c5", "i2c4", "i2c3", "i2c2", "i2c1", | ||
486 | "i2c0"; | ||
487 | }; | ||
488 | mstp11_clks: mstp11_clks@e615099c { | ||
489 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
490 | reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>; | ||
491 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>; | ||
492 | #clock-cells = <1>; | ||
493 | renesas,clock-indices = < | ||
494 | R8A7791_CLK_SCIFA3 R8A7791_CLK_SCIFA4 R8A7791_CLK_SCIFA5 | ||
495 | >; | ||
496 | clock-output-names = "scifa3", "scifa4", "scifa5"; | ||
497 | }; | ||
498 | }; | ||
186 | }; | 499 | }; |