stih407-clock.dtsi 4.2 KB

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