diff options
author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-12-11 09:05:14 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-12-19 06:01:33 -0500 |
commit | 22a1f59547e1e63cd18ee1ddb32fa2d8ab591a22 (patch) | |
tree | ae45aa5472cb31c460244e1533d3fb6c12cf95c2 | |
parent | 90c2434daa0b8c7ec2b75fcb182436813e9120bd (diff) |
ARM: shmobile: r8a7790: Add clocks
Declare all core clocks and DIV6 clocks, as well as all MSTP clocks
currently used by r8a7790 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/r8a7790.dtsi | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index 0e4d5b57c48b..8dccbe7ba85a 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
@@ -8,6 +8,7 @@ | |||
8 | * kind, whether express or implied. | 8 | * kind, whether express or implied. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <dt-bindings/clock/r8a7790-clock.h> | ||
11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
12 | #include <dt-bindings/interrupt-controller/irq.h> | 13 | #include <dt-bindings/interrupt-controller/irq.h> |
13 | 14 | ||
@@ -287,4 +288,321 @@ | |||
287 | cap-sd-highspeed; | 288 | cap-sd-highspeed; |
288 | status = "disabled"; | 289 | status = "disabled"; |
289 | }; | 290 | }; |
291 | |||
292 | clocks { | ||
293 | #address-cells = <2>; | ||
294 | #size-cells = <2>; | ||
295 | ranges; | ||
296 | |||
297 | /* External root clock */ | ||
298 | extal_clk: extal_clk { | ||
299 | compatible = "fixed-clock"; | ||
300 | #clock-cells = <0>; | ||
301 | /* This value must be overriden by the board. */ | ||
302 | clock-frequency = <0>; | ||
303 | clock-output-names = "extal"; | ||
304 | }; | ||
305 | |||
306 | /* Special CPG clocks */ | ||
307 | cpg_clocks: cpg_clocks@e6150000 { | ||
308 | compatible = "renesas,r8a7790-cpg-clocks", | ||
309 | "renesas,rcar-gen2-cpg-clocks"; | ||
310 | reg = <0 0xe6150000 0 0x1000>; | ||
311 | clocks = <&extal_clk>; | ||
312 | #clock-cells = <1>; | ||
313 | clock-output-names = "main", "pll0", "pll1", "pll3", | ||
314 | "lb", "qspi", "sdh", "sd0", "sd1", | ||
315 | "z"; | ||
316 | }; | ||
317 | |||
318 | /* Variable factor clocks */ | ||
319 | sd2_clk: sd2_clk@e6150078 { | ||
320 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
321 | reg = <0 0xe6150078 0 4>; | ||
322 | clocks = <&pll1_div2_clk>; | ||
323 | #clock-cells = <0>; | ||
324 | clock-output-names = "sd2"; | ||
325 | }; | ||
326 | sd3_clk: sd3_clk@e615007c { | ||
327 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
328 | reg = <0 0xe615007c 0 4>; | ||
329 | clocks = <&pll1_div2_clk>; | ||
330 | #clock-cells = <0>; | ||
331 | clock-output-names = "sd3"; | ||
332 | }; | ||
333 | mmc0_clk: mmc0_clk@e6150240 { | ||
334 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
335 | reg = <0 0xe6150240 0 4>; | ||
336 | clocks = <&pll1_div2_clk>; | ||
337 | #clock-cells = <0>; | ||
338 | clock-output-names = "mmc0"; | ||
339 | }; | ||
340 | mmc1_clk: mmc1_clk@e6150244 { | ||
341 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
342 | reg = <0 0xe6150244 0 4>; | ||
343 | clocks = <&pll1_div2_clk>; | ||
344 | #clock-cells = <0>; | ||
345 | clock-output-names = "mmc1"; | ||
346 | }; | ||
347 | ssp_clk: ssp_clk@e6150248 { | ||
348 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
349 | reg = <0 0xe6150248 0 4>; | ||
350 | clocks = <&pll1_div2_clk>; | ||
351 | #clock-cells = <0>; | ||
352 | clock-output-names = "ssp"; | ||
353 | }; | ||
354 | ssprs_clk: ssprs_clk@e615024c { | ||
355 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
356 | reg = <0 0xe615024c 0 4>; | ||
357 | clocks = <&pll1_div2_clk>; | ||
358 | #clock-cells = <0>; | ||
359 | clock-output-names = "ssprs"; | ||
360 | }; | ||
361 | |||
362 | /* Fixed factor clocks */ | ||
363 | pll1_div2_clk: pll1_div2_clk { | ||
364 | compatible = "fixed-factor-clock"; | ||
365 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
366 | #clock-cells = <0>; | ||
367 | clock-div = <2>; | ||
368 | clock-mult = <1>; | ||
369 | clock-output-names = "pll1_div2"; | ||
370 | }; | ||
371 | z2_clk: z2_clk { | ||
372 | compatible = "fixed-factor-clock"; | ||
373 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
374 | #clock-cells = <0>; | ||
375 | clock-div = <2>; | ||
376 | clock-mult = <1>; | ||
377 | clock-output-names = "z2"; | ||
378 | }; | ||
379 | zg_clk: zg_clk { | ||
380 | compatible = "fixed-factor-clock"; | ||
381 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
382 | #clock-cells = <0>; | ||
383 | clock-div = <3>; | ||
384 | clock-mult = <1>; | ||
385 | clock-output-names = "zg"; | ||
386 | }; | ||
387 | zx_clk: zx_clk { | ||
388 | compatible = "fixed-factor-clock"; | ||
389 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
390 | #clock-cells = <0>; | ||
391 | clock-div = <3>; | ||
392 | clock-mult = <1>; | ||
393 | clock-output-names = "zx"; | ||
394 | }; | ||
395 | zs_clk: zs_clk { | ||
396 | compatible = "fixed-factor-clock"; | ||
397 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
398 | #clock-cells = <0>; | ||
399 | clock-div = <6>; | ||
400 | clock-mult = <1>; | ||
401 | clock-output-names = "zs"; | ||
402 | }; | ||
403 | hp_clk: hp_clk { | ||
404 | compatible = "fixed-factor-clock"; | ||
405 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
406 | #clock-cells = <0>; | ||
407 | clock-div = <12>; | ||
408 | clock-mult = <1>; | ||
409 | clock-output-names = "hp"; | ||
410 | }; | ||
411 | i_clk: i_clk { | ||
412 | compatible = "fixed-factor-clock"; | ||
413 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
414 | #clock-cells = <0>; | ||
415 | clock-div = <2>; | ||
416 | clock-mult = <1>; | ||
417 | clock-output-names = "i"; | ||
418 | }; | ||
419 | b_clk: b_clk { | ||
420 | compatible = "fixed-factor-clock"; | ||
421 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
422 | #clock-cells = <0>; | ||
423 | clock-div = <12>; | ||
424 | clock-mult = <1>; | ||
425 | clock-output-names = "b"; | ||
426 | }; | ||
427 | p_clk: p_clk { | ||
428 | compatible = "fixed-factor-clock"; | ||
429 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
430 | #clock-cells = <0>; | ||
431 | clock-div = <24>; | ||
432 | clock-mult = <1>; | ||
433 | clock-output-names = "p"; | ||
434 | }; | ||
435 | cl_clk: cl_clk { | ||
436 | compatible = "fixed-factor-clock"; | ||
437 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
438 | #clock-cells = <0>; | ||
439 | clock-div = <48>; | ||
440 | clock-mult = <1>; | ||
441 | clock-output-names = "cl"; | ||
442 | }; | ||
443 | m2_clk: m2_clk { | ||
444 | compatible = "fixed-factor-clock"; | ||
445 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
446 | #clock-cells = <0>; | ||
447 | clock-div = <8>; | ||
448 | clock-mult = <1>; | ||
449 | clock-output-names = "m2"; | ||
450 | }; | ||
451 | imp_clk: imp_clk { | ||
452 | compatible = "fixed-factor-clock"; | ||
453 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
454 | #clock-cells = <0>; | ||
455 | clock-div = <4>; | ||
456 | clock-mult = <1>; | ||
457 | clock-output-names = "imp"; | ||
458 | }; | ||
459 | rclk_clk: rclk_clk { | ||
460 | compatible = "fixed-factor-clock"; | ||
461 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
462 | #clock-cells = <0>; | ||
463 | clock-div = <(48 * 1024)>; | ||
464 | clock-mult = <1>; | ||
465 | clock-output-names = "rclk"; | ||
466 | }; | ||
467 | oscclk_clk: oscclk_clk { | ||
468 | compatible = "fixed-factor-clock"; | ||
469 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
470 | #clock-cells = <0>; | ||
471 | clock-div = <(12 * 1024)>; | ||
472 | clock-mult = <1>; | ||
473 | clock-output-names = "oscclk"; | ||
474 | }; | ||
475 | zb3_clk: zb3_clk { | ||
476 | compatible = "fixed-factor-clock"; | ||
477 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
478 | #clock-cells = <0>; | ||
479 | clock-div = <4>; | ||
480 | clock-mult = <1>; | ||
481 | clock-output-names = "zb3"; | ||
482 | }; | ||
483 | zb3d2_clk: zb3d2_clk { | ||
484 | compatible = "fixed-factor-clock"; | ||
485 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
486 | #clock-cells = <0>; | ||
487 | clock-div = <8>; | ||
488 | clock-mult = <1>; | ||
489 | clock-output-names = "zb3d2"; | ||
490 | }; | ||
491 | ddr_clk: ddr_clk { | ||
492 | compatible = "fixed-factor-clock"; | ||
493 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
494 | #clock-cells = <0>; | ||
495 | clock-div = <8>; | ||
496 | clock-mult = <1>; | ||
497 | clock-output-names = "ddr"; | ||
498 | }; | ||
499 | mp_clk: mp_clk { | ||
500 | compatible = "fixed-factor-clock"; | ||
501 | clocks = <&pll1_div2_clk>; | ||
502 | #clock-cells = <0>; | ||
503 | clock-div = <15>; | ||
504 | clock-mult = <1>; | ||
505 | clock-output-names = "mp"; | ||
506 | }; | ||
507 | cp_clk: cp_clk { | ||
508 | compatible = "fixed-factor-clock"; | ||
509 | clocks = <&extal_clk>; | ||
510 | #clock-cells = <0>; | ||
511 | clock-div = <2>; | ||
512 | clock-mult = <1>; | ||
513 | clock-output-names = "cp"; | ||
514 | }; | ||
515 | |||
516 | /* Gate clocks */ | ||
517 | mstp1_clks: mstp1_clks@e6150134 { | ||
518 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
519 | reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; | ||
520 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, | ||
521 | <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, | ||
522 | <&zs_clk>; | ||
523 | #clock-cells = <1>; | ||
524 | renesas,clock-indices = < | ||
525 | R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2 | ||
526 | R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1 | ||
527 | R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_RT R8A7790_CLK_VSP1_SY | ||
528 | >; | ||
529 | clock-output-names = | ||
530 | "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", | ||
531 | "vsp1-du0", "vsp1-rt", "vsp1-sy"; | ||
532 | }; | ||
533 | mstp2_clks: mstp2_clks@e6150138 { | ||
534 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
535 | reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; | ||
536 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, | ||
537 | <&mp_clk>; | ||
538 | #clock-cells = <1>; | ||
539 | renesas,clock-indices = < | ||
540 | R8A7790_CLK_SCIFA2 R8A7790_CLK_SCIFA1 R8A7790_CLK_SCIFA0 | ||
541 | R8A7790_CLK_SCIFB0 R8A7790_CLK_SCIFB1 R8A7790_CLK_SCIFB2 | ||
542 | >; | ||
543 | clock-output-names = | ||
544 | "scifa2", "scifa1", "scifa0", "scifb0", "scifb1", | ||
545 | "scifb2"; | ||
546 | }; | ||
547 | mstp3_clks: mstp3_clks@e615013c { | ||
548 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
549 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
550 | clocks = <&cp_clk>, <&mmc1_clk>, <&sd3_clk>, <&sd2_clk>, | ||
551 | <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, | ||
552 | <&mmc0_clk>, <&rclk_clk>; | ||
553 | #clock-cells = <1>; | ||
554 | renesas,clock-indices = < | ||
555 | R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3 | ||
556 | R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 | ||
557 | R8A7790_CLK_MMCIF0 R8A7790_CLK_CMT1 | ||
558 | >; | ||
559 | clock-output-names = | ||
560 | "tpu0", "mmcif1", "sdhi3", "sdhi2", | ||
561 | "sdhi1", "sdhi0", "mmcif0", "cmt1"; | ||
562 | }; | ||
563 | mstp5_clks: mstp5_clks@e6150144 { | ||
564 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
565 | reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; | ||
566 | clocks = <&extal_clk>, <&p_clk>; | ||
567 | #clock-cells = <1>; | ||
568 | renesas,clock-indices = <R8A7790_CLK_THERMAL R8A7790_CLK_PWM>; | ||
569 | clock-output-names = "thermal", "pwm"; | ||
570 | }; | ||
571 | mstp7_clks: mstp7_clks@e615014c { | ||
572 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
573 | reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; | ||
574 | clocks = <&mp_clk>, <&mp_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>, | ||
575 | <&p_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, | ||
576 | <&zx_clk>; | ||
577 | #clock-cells = <1>; | ||
578 | renesas,clock-indices = < | ||
579 | R8A7790_CLK_EHCI R8A7790_CLK_HSUSB R8A7790_CLK_HSCIF1 | ||
580 | R8A7790_CLK_HSCIF0 R8A7790_CLK_SCIF1 R8A7790_CLK_SCIF0 | ||
581 | R8A7790_CLK_DU2 R8A7790_CLK_DU1 R8A7790_CLK_DU0 | ||
582 | R8A7790_CLK_LVDS1 R8A7790_CLK_LVDS0 | ||
583 | >; | ||
584 | clock-output-names = | ||
585 | "ehci", "hsusb", "hscif1", "hscif0", "scif1", | ||
586 | "scif0", "du2", "du1", "du0", "lvds1", "lvds0"; | ||
587 | }; | ||
588 | mstp8_clks: mstp8_clks@e6150990 { | ||
589 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
590 | reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; | ||
591 | clocks = <&p_clk>; | ||
592 | #clock-cells = <1>; | ||
593 | renesas,clock-indices = <R8A7790_CLK_ETHER>; | ||
594 | clock-output-names = "ether"; | ||
595 | }; | ||
596 | mstp9_clks: mstp9_clks@e6150994 { | ||
597 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
598 | reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; | ||
599 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>; | ||
600 | #clock-cells = <1>; | ||
601 | renesas,clock-indices = < | ||
602 | R8A7790_CLK_RCAN1 R8A7790_CLK_RCAN0 R8A7790_CLK_I2C3 | ||
603 | R8A7790_CLK_I2C2 R8A7790_CLK_I2C1 R8A7790_CLK_I2C0 | ||
604 | >; | ||
605 | clock-output-names = "rcan1", "rcan0", "i2c3", "i2c2", "i2c1", "i2c0"; | ||
606 | }; | ||
607 | }; | ||
290 | }; | 608 | }; |