stih418-clock.dtsi 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2015 STMicroelectronics R&D Limited
  4. */
  5. #include <dt-bindings/clock/stih418-clks.h>
  6. / {
  7. /*
  8. * Fixed 30MHz oscillator inputs to SoC
  9. */
  10. clk_sysin: clk-sysin {
  11. #clock-cells = <0>;
  12. compatible = "fixed-clock";
  13. clock-frequency = <30000000>;
  14. clock-output-names = "CLK_SYSIN";
  15. };
  16. clk_tmdsout_hdmi: clk-tmdsout-hdmi {
  17. #clock-cells = <0>;
  18. compatible = "fixed-clock";
  19. clock-frequency = <0>;
  20. };
  21. clocks {
  22. #address-cells = <1>;
  23. #size-cells = <1>;
  24. ranges;
  25. compatible = "st,stih418-clk", "simple-bus";
  26. /*
  27. * A9 PLL.
  28. */
  29. clockgen-a9@92b0000 {
  30. compatible = "st,clkgen-c32";
  31. reg = <0x92b0000 0x10000>;
  32. clockgen_a9_pll: clockgen-a9-pll {
  33. #clock-cells = <1>;
  34. compatible = "st,stih418-clkgen-plla9";
  35. clocks = <&clk_sysin>;
  36. };
  37. /*
  38. * ARM CPU related clocks.
  39. */
  40. clk_m_a9: clk-m-a9 {
  41. #clock-cells = <0>;
  42. compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
  43. clocks = <&clockgen_a9_pll 0>,
  44. <&clockgen_a9_pll 0>,
  45. <&clk_s_c0_flexgen 13>,
  46. <&clk_m_a9_ext2f_div2>;
  47. /*
  48. * ARM Peripheral clock for timers
  49. */
  50. arm_periph_clk: clk-m-a9-periphs {
  51. #clock-cells = <0>;
  52. compatible = "fixed-factor-clock";
  53. clocks = <&clk_m_a9>;
  54. clock-div = <2>;
  55. clock-mult = <1>;
  56. };
  57. };
  58. };
  59. clockgen-a@90ff000 {
  60. compatible = "st,clkgen-c32";
  61. reg = <0x90ff000 0x1000>;
  62. clk_s_a0_pll: clk-s-a0-pll {
  63. #clock-cells = <1>;
  64. compatible = "st,clkgen-pll0-a0";
  65. clocks = <&clk_sysin>;
  66. };
  67. clk_s_a0_flexgen: clk-s-a0-flexgen {
  68. compatible = "st,flexgen", "st,flexgen-stih410-a0";
  69. #clock-cells = <1>;
  70. clocks = <&clk_s_a0_pll 0>,
  71. <&clk_sysin>;
  72. };
  73. };
  74. clk_s_c0: clockgen-c@9103000 {
  75. compatible = "st,clkgen-c32";
  76. reg = <0x9103000 0x1000>;
  77. clk_s_c0_pll0: clk-s-c0-pll0 {
  78. #clock-cells = <1>;
  79. compatible = "st,clkgen-pll0-c0";
  80. clocks = <&clk_sysin>;
  81. };
  82. clk_s_c0_pll1: clk-s-c0-pll1 {
  83. #clock-cells = <1>;
  84. compatible = "st,clkgen-pll1-c0";
  85. clocks = <&clk_sysin>;
  86. };
  87. clk_s_c0_quadfs: clk-s-c0-quadfs {
  88. #clock-cells = <1>;
  89. compatible = "st,quadfs-pll";
  90. clocks = <&clk_sysin>;
  91. };
  92. clk_s_c0_flexgen: clk-s-c0-flexgen {
  93. #clock-cells = <1>;
  94. compatible = "st,flexgen", "st,flexgen-stih418-c0";
  95. clocks = <&clk_s_c0_pll0 0>,
  96. <&clk_s_c0_pll1 0>,
  97. <&clk_s_c0_quadfs 0>,
  98. <&clk_s_c0_quadfs 1>,
  99. <&clk_s_c0_quadfs 2>,
  100. <&clk_s_c0_quadfs 3>,
  101. <&clk_sysin>;
  102. /*
  103. * ARM Peripheral clock for timers
  104. */
  105. clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
  106. #clock-cells = <0>;
  107. compatible = "fixed-factor-clock";
  108. clocks = <&clk_s_c0_flexgen 13>;
  109. clock-output-names = "clk-m-a9-ext2f-div2";
  110. clock-div = <2>;
  111. clock-mult = <1>;
  112. };
  113. };
  114. };
  115. clockgen-d0@9104000 {
  116. compatible = "st,clkgen-c32";
  117. reg = <0x9104000 0x1000>;
  118. clk_s_d0_quadfs: clk-s-d0-quadfs {
  119. #clock-cells = <1>;
  120. compatible = "st,quadfs-d0";
  121. clocks = <&clk_sysin>;
  122. };
  123. clk_s_d0_flexgen: clk-s-d0-flexgen {
  124. #clock-cells = <1>;
  125. compatible = "st,flexgen", "st,flexgen-stih410-d0";
  126. clocks = <&clk_s_d0_quadfs 0>,
  127. <&clk_s_d0_quadfs 1>,
  128. <&clk_s_d0_quadfs 2>,
  129. <&clk_s_d0_quadfs 3>,
  130. <&clk_sysin>;
  131. };
  132. };
  133. clockgen-d2@9106000 {
  134. compatible = "st,clkgen-c32";
  135. reg = <0x9106000 0x1000>;
  136. clk_s_d2_quadfs: clk-s-d2-quadfs {
  137. #clock-cells = <1>;
  138. compatible = "st,quadfs-d2";
  139. clocks = <&clk_sysin>;
  140. };
  141. clk_s_d2_flexgen: clk-s-d2-flexgen {
  142. #clock-cells = <1>;
  143. compatible = "st,flexgen", "st,flexgen-stih418-d2";
  144. clocks = <&clk_s_d2_quadfs 0>,
  145. <&clk_s_d2_quadfs 1>,
  146. <&clk_s_d2_quadfs 2>,
  147. <&clk_s_d2_quadfs 3>,
  148. <&clk_sysin>,
  149. <&clk_sysin>,
  150. <&clk_tmdsout_hdmi>;
  151. };
  152. };
  153. clockgen-d3@9107000 {
  154. compatible = "st,clkgen-c32";
  155. reg = <0x9107000 0x1000>;
  156. clk_s_d3_quadfs: clk-s-d3-quadfs {
  157. #clock-cells = <1>;
  158. compatible = "st,quadfs-d3";
  159. clocks = <&clk_sysin>;
  160. };
  161. clk_s_d3_flexgen: clk-s-d3-flexgen {
  162. #clock-cells = <1>;
  163. compatible = "st,flexgen", "st,flexgen-stih407-d3";
  164. clocks = <&clk_s_d3_quadfs 0>,
  165. <&clk_s_d3_quadfs 1>,
  166. <&clk_s_d3_quadfs 2>,
  167. <&clk_s_d3_quadfs 3>,
  168. <&clk_sysin>;
  169. };
  170. };
  171. };
  172. };