imx8-ss-conn.dtsi 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright 2018-2019 NXP
  4. * Dong Aisheng <[email protected]>
  5. */
  6. #include <dt-bindings/clock/imx8-lpcg.h>
  7. #include <dt-bindings/firmware/imx/rsrc.h>
  8. conn_subsys: bus@5b000000 {
  9. compatible = "simple-bus";
  10. #address-cells = <1>;
  11. #size-cells = <1>;
  12. ranges = <0x5b000000 0x0 0x5b000000 0x1000000>;
  13. conn_axi_clk: clock-conn-axi {
  14. compatible = "fixed-clock";
  15. #clock-cells = <0>;
  16. clock-frequency = <333333333>;
  17. clock-output-names = "conn_axi_clk";
  18. };
  19. conn_ahb_clk: clock-conn-ahb {
  20. compatible = "fixed-clock";
  21. #clock-cells = <0>;
  22. clock-frequency = <166666666>;
  23. clock-output-names = "conn_ahb_clk";
  24. };
  25. conn_ipg_clk: clock-conn-ipg {
  26. compatible = "fixed-clock";
  27. #clock-cells = <0>;
  28. clock-frequency = <83333333>;
  29. clock-output-names = "conn_ipg_clk";
  30. };
  31. usdhc1: mmc@5b010000 {
  32. interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
  33. reg = <0x5b010000 0x10000>;
  34. clocks = <&sdhc0_lpcg IMX_LPCG_CLK_4>,
  35. <&sdhc0_lpcg IMX_LPCG_CLK_0>,
  36. <&sdhc0_lpcg IMX_LPCG_CLK_5>;
  37. clock-names = "ipg", "ahb", "per";
  38. power-domains = <&pd IMX_SC_R_SDHC_0>;
  39. status = "disabled";
  40. };
  41. usdhc2: mmc@5b020000 {
  42. interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
  43. reg = <0x5b020000 0x10000>;
  44. clocks = <&sdhc1_lpcg IMX_LPCG_CLK_4>,
  45. <&sdhc1_lpcg IMX_LPCG_CLK_0>,
  46. <&sdhc1_lpcg IMX_LPCG_CLK_5>;
  47. clock-names = "ipg", "ahb", "per";
  48. power-domains = <&pd IMX_SC_R_SDHC_1>;
  49. fsl,tuning-start-tap = <20>;
  50. fsl,tuning-step = <2>;
  51. status = "disabled";
  52. };
  53. usdhc3: mmc@5b030000 {
  54. interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
  55. reg = <0x5b030000 0x10000>;
  56. clocks = <&sdhc2_lpcg IMX_LPCG_CLK_4>,
  57. <&sdhc2_lpcg IMX_LPCG_CLK_0>,
  58. <&sdhc2_lpcg IMX_LPCG_CLK_5>;
  59. clock-names = "ipg", "ahb", "per";
  60. power-domains = <&pd IMX_SC_R_SDHC_2>;
  61. status = "disabled";
  62. };
  63. fec1: ethernet@5b040000 {
  64. reg = <0x5b040000 0x10000>;
  65. interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
  66. <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
  67. <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
  68. <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
  69. clocks = <&enet0_lpcg IMX_LPCG_CLK_4>,
  70. <&enet0_lpcg IMX_LPCG_CLK_2>,
  71. <&enet0_lpcg IMX_LPCG_CLK_3>,
  72. <&enet0_lpcg IMX_LPCG_CLK_0>;
  73. clock-names = "ipg", "ahb", "enet_clk_ref", "ptp";
  74. assigned-clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
  75. <&clk IMX_SC_R_ENET_0 IMX_SC_C_CLKDIV>;
  76. assigned-clock-rates = <250000000>, <125000000>;
  77. fsl,num-tx-queues = <3>;
  78. fsl,num-rx-queues = <3>;
  79. power-domains = <&pd IMX_SC_R_ENET_0>;
  80. status = "disabled";
  81. };
  82. fec2: ethernet@5b050000 {
  83. reg = <0x5b050000 0x10000>;
  84. interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
  85. <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
  86. <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
  87. <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
  88. clocks = <&enet1_lpcg IMX_LPCG_CLK_4>,
  89. <&enet1_lpcg IMX_LPCG_CLK_2>,
  90. <&enet1_lpcg IMX_LPCG_CLK_3>,
  91. <&enet1_lpcg IMX_LPCG_CLK_0>;
  92. clock-names = "ipg", "ahb", "enet_clk_ref", "ptp";
  93. assigned-clocks = <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
  94. <&clk IMX_SC_R_ENET_1 IMX_SC_C_CLKDIV>;
  95. assigned-clock-rates = <250000000>, <125000000>;
  96. fsl,num-tx-queues = <3>;
  97. fsl,num-rx-queues = <3>;
  98. power-domains = <&pd IMX_SC_R_ENET_1>;
  99. status = "disabled";
  100. };
  101. /* LPCG clocks */
  102. sdhc0_lpcg: clock-controller@5b200000 {
  103. compatible = "fsl,imx8qxp-lpcg";
  104. reg = <0x5b200000 0x10000>;
  105. #clock-cells = <1>;
  106. clocks = <&clk IMX_SC_R_SDHC_0 IMX_SC_PM_CLK_PER>,
  107. <&conn_ipg_clk>, <&conn_axi_clk>;
  108. clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
  109. <IMX_LPCG_CLK_5>;
  110. clock-output-names = "sdhc0_lpcg_per_clk",
  111. "sdhc0_lpcg_ipg_clk",
  112. "sdhc0_lpcg_ahb_clk";
  113. power-domains = <&pd IMX_SC_R_SDHC_0>;
  114. };
  115. sdhc1_lpcg: clock-controller@5b210000 {
  116. compatible = "fsl,imx8qxp-lpcg";
  117. reg = <0x5b210000 0x10000>;
  118. #clock-cells = <1>;
  119. clocks = <&clk IMX_SC_R_SDHC_1 IMX_SC_PM_CLK_PER>,
  120. <&conn_ipg_clk>, <&conn_axi_clk>;
  121. clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
  122. <IMX_LPCG_CLK_5>;
  123. clock-output-names = "sdhc1_lpcg_per_clk",
  124. "sdhc1_lpcg_ipg_clk",
  125. "sdhc1_lpcg_ahb_clk";
  126. power-domains = <&pd IMX_SC_R_SDHC_1>;
  127. };
  128. sdhc2_lpcg: clock-controller@5b220000 {
  129. compatible = "fsl,imx8qxp-lpcg";
  130. reg = <0x5b220000 0x10000>;
  131. #clock-cells = <1>;
  132. clocks = <&clk IMX_SC_R_SDHC_2 IMX_SC_PM_CLK_PER>,
  133. <&conn_ipg_clk>, <&conn_axi_clk>;
  134. clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
  135. <IMX_LPCG_CLK_5>;
  136. clock-output-names = "sdhc2_lpcg_per_clk",
  137. "sdhc2_lpcg_ipg_clk",
  138. "sdhc2_lpcg_ahb_clk";
  139. power-domains = <&pd IMX_SC_R_SDHC_2>;
  140. };
  141. enet0_lpcg: clock-controller@5b230000 {
  142. compatible = "fsl,imx8qxp-lpcg";
  143. reg = <0x5b230000 0x10000>;
  144. #clock-cells = <1>;
  145. clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
  146. <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
  147. <&conn_axi_clk>,
  148. <&clk IMX_SC_R_ENET_0 IMX_SC_C_TXCLK>,
  149. <&conn_ipg_clk>,
  150. <&conn_ipg_clk>;
  151. clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
  152. <IMX_LPCG_CLK_2>, <IMX_LPCG_CLK_3>,
  153. <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
  154. clock-output-names = "enet0_lpcg_timer_clk",
  155. "enet0_lpcg_txc_sampling_clk",
  156. "enet0_lpcg_ahb_clk",
  157. "enet0_lpcg_rgmii_txc_clk",
  158. "enet0_lpcg_ipg_clk",
  159. "enet0_lpcg_ipg_s_clk";
  160. power-domains = <&pd IMX_SC_R_ENET_0>;
  161. };
  162. enet1_lpcg: clock-controller@5b240000 {
  163. compatible = "fsl,imx8qxp-lpcg";
  164. reg = <0x5b240000 0x10000>;
  165. #clock-cells = <1>;
  166. clocks = <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
  167. <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
  168. <&conn_axi_clk>,
  169. <&clk IMX_SC_R_ENET_1 IMX_SC_C_TXCLK>,
  170. <&conn_ipg_clk>,
  171. <&conn_ipg_clk>;
  172. clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
  173. <IMX_LPCG_CLK_2>, <IMX_LPCG_CLK_3>,
  174. <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
  175. clock-output-names = "enet1_lpcg_timer_clk",
  176. "enet1_lpcg_txc_sampling_clk",
  177. "enet1_lpcg_ahb_clk",
  178. "enet1_lpcg_rgmii_txc_clk",
  179. "enet1_lpcg_ipg_clk",
  180. "enet1_lpcg_ipg_s_clk";
  181. power-domains = <&pd IMX_SC_R_ENET_1>;
  182. };
  183. };