dm814x-clocks.dtsi 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. &pllss {
  3. /*
  4. * See TRM "2.6.10 Connected outputso DPLLS" and
  5. * "2.6.11 Connected Outputs of DPLLJ". Only clkout is
  6. * connected except for hdmi and usb.
  7. */
  8. adpll_mpu_ck: adpll@40 {
  9. #clock-cells = <1>;
  10. compatible = "ti,dm814-adpll-s-clock";
  11. reg = <0x40 0x40>;
  12. clocks = <&devosc_ck &devosc_ck &devosc_ck>;
  13. clock-names = "clkinp", "clkinpulow", "clkinphif";
  14. clock-output-names = "481c5040.adpll.dcoclkldo",
  15. "481c5040.adpll.clkout",
  16. "481c5040.adpll.clkoutx2",
  17. "481c5040.adpll.clkouthif";
  18. };
  19. adpll_dsp_ck: adpll@80 {
  20. #clock-cells = <1>;
  21. compatible = "ti,dm814-adpll-lj-clock";
  22. reg = <0x80 0x30>;
  23. clocks = <&devosc_ck &devosc_ck>;
  24. clock-names = "clkinp", "clkinpulow";
  25. clock-output-names = "481c5080.adpll.dcoclkldo",
  26. "481c5080.adpll.clkout",
  27. "481c5080.adpll.clkoutldo";
  28. };
  29. adpll_sgx_ck: adpll@b0 {
  30. #clock-cells = <1>;
  31. compatible = "ti,dm814-adpll-lj-clock";
  32. reg = <0xb0 0x30>;
  33. clocks = <&devosc_ck &devosc_ck>;
  34. clock-names = "clkinp", "clkinpulow";
  35. clock-output-names = "481c50b0.adpll.dcoclkldo",
  36. "481c50b0.adpll.clkout",
  37. "481c50b0.adpll.clkoutldo";
  38. };
  39. adpll_hdvic_ck: adpll@e0 {
  40. #clock-cells = <1>;
  41. compatible = "ti,dm814-adpll-lj-clock";
  42. reg = <0xe0 0x30>;
  43. clocks = <&devosc_ck &devosc_ck>;
  44. clock-names = "clkinp", "clkinpulow";
  45. clock-output-names = "481c50e0.adpll.dcoclkldo",
  46. "481c50e0.adpll.clkout",
  47. "481c50e0.adpll.clkoutldo";
  48. };
  49. adpll_l3_ck: adpll@110 {
  50. #clock-cells = <1>;
  51. compatible = "ti,dm814-adpll-lj-clock";
  52. reg = <0x110 0x30>;
  53. clocks = <&devosc_ck &devosc_ck>;
  54. clock-names = "clkinp", "clkinpulow";
  55. clock-output-names = "481c5110.adpll.dcoclkldo",
  56. "481c5110.adpll.clkout",
  57. "481c5110.adpll.clkoutldo";
  58. };
  59. adpll_isp_ck: adpll@140 {
  60. #clock-cells = <1>;
  61. compatible = "ti,dm814-adpll-lj-clock";
  62. reg = <0x140 0x30>;
  63. clocks = <&devosc_ck &devosc_ck>;
  64. clock-names = "clkinp", "clkinpulow";
  65. clock-output-names = "481c5140.adpll.dcoclkldo",
  66. "481c5140.adpll.clkout",
  67. "481c5140.adpll.clkoutldo";
  68. };
  69. adpll_dss_ck: adpll@170 {
  70. #clock-cells = <1>;
  71. compatible = "ti,dm814-adpll-lj-clock";
  72. reg = <0x170 0x30>;
  73. clocks = <&devosc_ck &devosc_ck>;
  74. clock-names = "clkinp", "clkinpulow";
  75. clock-output-names = "481c5170.adpll.dcoclkldo",
  76. "481c5170.adpll.clkout",
  77. "481c5170.adpll.clkoutldo";
  78. };
  79. adpll_video0_ck: adpll@1a0 {
  80. #clock-cells = <1>;
  81. compatible = "ti,dm814-adpll-lj-clock";
  82. reg = <0x1a0 0x30>;
  83. clocks = <&devosc_ck &devosc_ck>;
  84. clock-names = "clkinp", "clkinpulow";
  85. clock-output-names = "481c51a0.adpll.dcoclkldo",
  86. "481c51a0.adpll.clkout",
  87. "481c51a0.adpll.clkoutldo";
  88. };
  89. adpll_video1_ck: adpll@1d0 {
  90. #clock-cells = <1>;
  91. compatible = "ti,dm814-adpll-lj-clock";
  92. reg = <0x1d0 0x30>;
  93. clocks = <&devosc_ck &devosc_ck>;
  94. clock-names = "clkinp", "clkinpulow";
  95. clock-output-names = "481c51d0.adpll.dcoclkldo",
  96. "481c51d0.adpll.clkout",
  97. "481c51d0.adpll.clkoutldo";
  98. };
  99. adpll_hdmi_ck: adpll@200 {
  100. #clock-cells = <1>;
  101. compatible = "ti,dm814-adpll-lj-clock";
  102. reg = <0x200 0x30>;
  103. clocks = <&devosc_ck &devosc_ck>;
  104. clock-names = "clkinp", "clkinpulow";
  105. clock-output-names = "481c5200.adpll.dcoclkldo",
  106. "481c5200.adpll.clkout",
  107. "481c5200.adpll.clkoutldo";
  108. };
  109. adpll_audio_ck: adpll@230 {
  110. #clock-cells = <1>;
  111. compatible = "ti,dm814-adpll-lj-clock";
  112. reg = <0x230 0x30>;
  113. clocks = <&devosc_ck &devosc_ck>;
  114. clock-names = "clkinp", "clkinpulow";
  115. clock-output-names = "481c5230.adpll.dcoclkldo",
  116. "481c5230.adpll.clkout",
  117. "481c5230.adpll.clkoutldo";
  118. };
  119. adpll_usb_ck: adpll@260 {
  120. #clock-cells = <1>;
  121. compatible = "ti,dm814-adpll-lj-clock";
  122. reg = <0x260 0x30>;
  123. clocks = <&devosc_ck &devosc_ck>;
  124. clock-names = "clkinp", "clkinpulow";
  125. clock-output-names = "481c5260.adpll.dcoclkldo",
  126. "481c5260.adpll.clkout",
  127. "481c5260.adpll.clkoutldo";
  128. };
  129. adpll_ddr_ck: adpll@290 {
  130. #clock-cells = <1>;
  131. compatible = "ti,dm814-adpll-lj-clock";
  132. reg = <0x290 0x30>;
  133. clocks = <&devosc_ck &devosc_ck>;
  134. clock-names = "clkinp", "clkinpulow";
  135. clock-output-names = "481c5290.adpll.dcoclkldo",
  136. "481c5290.adpll.clkout",
  137. "481c5290.adpll.clkoutldo";
  138. };
  139. };
  140. &pllss_clocks {
  141. timer1_fck: timer1_fck@2e0 {
  142. #clock-cells = <0>;
  143. compatible = "ti,mux-clock";
  144. clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
  145. &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
  146. ti,bit-shift = <3>;
  147. reg = <0x2e0>;
  148. };
  149. timer2_fck: timer2_fck@2e0 {
  150. #clock-cells = <0>;
  151. compatible = "ti,mux-clock";
  152. clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
  153. &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
  154. ti,bit-shift = <6>;
  155. reg = <0x2e0>;
  156. };
  157. /* CPTS_RFT_CLK in RMII_REFCLK_SRC, usually sourced from auiod */
  158. cpsw_cpts_rft_clk: cpsw_cpts_rft_clk {
  159. #clock-cells = <0>;
  160. compatible = "ti,mux-clock";
  161. clocks = <&adpll_video0_ck 1
  162. &adpll_video1_ck 1
  163. &adpll_audio_ck 1>;
  164. ti,bit-shift = <1>;
  165. reg = <0x2e8>;
  166. };
  167. /* REVISIT: Set up with a proper mux using RMII_REFCLK_SRC */
  168. cpsw_125mhz_gclk: cpsw_125mhz_gclk {
  169. #clock-cells = <0>;
  170. compatible = "fixed-clock";
  171. clock-frequency = <125000000>;
  172. };
  173. sysclk18_ck: sysclk18_ck@2f0 {
  174. #clock-cells = <0>;
  175. compatible = "ti,mux-clock";
  176. clocks = <&rtcosc_ck>, <&rtcdivider_ck>;
  177. ti,bit-shift = <0>;
  178. reg = <0x02f0>;
  179. };
  180. };
  181. &scm_clocks {
  182. devosc_ck: devosc_ck@40 {
  183. #clock-cells = <0>;
  184. compatible = "ti,mux-clock";
  185. clocks = <&virt_20000000_ck>, <&virt_19200000_ck>;
  186. ti,bit-shift = <21>;
  187. reg = <0x0040>;
  188. };
  189. /* Optional auxosc, 20 - 30 MHz range, assume 22.5729 MHz by default */
  190. auxosc_ck: auxosc_ck {
  191. #clock-cells = <0>;
  192. compatible = "fixed-clock";
  193. clock-frequency = <22572900>;
  194. };
  195. /* Optional 32768Hz crystal or clock on RTCOSC pins */
  196. rtcosc_ck: rtcosc_ck {
  197. #clock-cells = <0>;
  198. compatible = "fixed-clock";
  199. clock-frequency = <32768>;
  200. };
  201. /* Optional external clock on TCLKIN pin, set rate in baord dts file */
  202. tclkin_ck: tclkin_ck {
  203. #clock-cells = <0>;
  204. compatible = "fixed-clock";
  205. clock-frequency = <0>;
  206. };
  207. virt_20000000_ck: virt_20000000_ck {
  208. #clock-cells = <0>;
  209. compatible = "fixed-clock";
  210. clock-frequency = <20000000>;
  211. };
  212. virt_19200000_ck: virt_19200000_ck {
  213. #clock-cells = <0>;
  214. compatible = "fixed-clock";
  215. clock-frequency = <19200000>;
  216. };
  217. mpu_ck: mpu_ck {
  218. #clock-cells = <0>;
  219. compatible = "fixed-clock";
  220. clock-frequency = <1000000000>;
  221. };
  222. };
  223. &prcm_clocks {
  224. osc_src_ck: osc_src_ck {
  225. #clock-cells = <0>;
  226. compatible = "fixed-factor-clock";
  227. clocks = <&devosc_ck>;
  228. clock-mult = <1>;
  229. clock-div = <1>;
  230. };
  231. mpu_clksrc_ck: mpu_clksrc_ck@40 {
  232. #clock-cells = <0>;
  233. compatible = "ti,mux-clock";
  234. clocks = <&devosc_ck>, <&rtcdivider_ck>;
  235. ti,bit-shift = <0>;
  236. reg = <0x0040>;
  237. };
  238. /* Fixed divider clock 0.0016384 * devosc */
  239. rtcdivider_ck: rtcdivider_ck {
  240. #clock-cells = <0>;
  241. compatible = "fixed-factor-clock";
  242. clocks = <&devosc_ck>;
  243. clock-mult = <128>;
  244. clock-div = <78125>;
  245. };
  246. /* L4_HS 220 MHz*/
  247. sysclk4_ck: sysclk4_ck {
  248. #clock-cells = <0>;
  249. compatible = "ti,fixed-factor-clock";
  250. clocks = <&adpll_l3_ck 1>;
  251. ti,clock-mult = <1>;
  252. ti,clock-div = <1>;
  253. };
  254. /* L4_FWCFG */
  255. sysclk5_ck: sysclk5_ck {
  256. #clock-cells = <0>;
  257. compatible = "ti,fixed-factor-clock";
  258. clocks = <&adpll_l3_ck 1>;
  259. ti,clock-mult = <1>;
  260. ti,clock-div = <2>;
  261. };
  262. /* L4_LS 110 MHz */
  263. sysclk6_ck: sysclk6_ck {
  264. #clock-cells = <0>;
  265. compatible = "ti,fixed-factor-clock";
  266. clocks = <&adpll_l3_ck 1>;
  267. ti,clock-mult = <1>;
  268. ti,clock-div = <2>;
  269. };
  270. sysclk8_ck: sysclk8_ck {
  271. #clock-cells = <0>;
  272. compatible = "ti,fixed-factor-clock";
  273. clocks = <&adpll_usb_ck 1>;
  274. ti,clock-mult = <1>;
  275. ti,clock-div = <1>;
  276. };
  277. sysclk10_ck: sysclk10_ck {
  278. compatible = "ti,divider-clock";
  279. reg = <0x324>;
  280. ti,max-div = <7>;
  281. #clock-cells = <0>;
  282. clocks = <&adpll_usb_ck 1>;
  283. };
  284. aud_clkin0_ck: aud_clkin0_ck {
  285. #clock-cells = <0>;
  286. compatible = "fixed-clock";
  287. clock-frequency = <20000000>;
  288. };
  289. aud_clkin1_ck: aud_clkin1_ck {
  290. #clock-cells = <0>;
  291. compatible = "fixed-clock";
  292. clock-frequency = <20000000>;
  293. };
  294. aud_clkin2_ck: aud_clkin2_ck {
  295. #clock-cells = <0>;
  296. compatible = "fixed-clock";
  297. clock-frequency = <20000000>;
  298. };
  299. };
  300. &prcm {
  301. default_cm: default_cm@500 {
  302. compatible = "ti,omap4-cm";
  303. reg = <0x500 0x100>;
  304. #address-cells = <1>;
  305. #size-cells = <1>;
  306. ranges = <0 0x500 0x100>;
  307. default_clkctrl: clk@0 {
  308. compatible = "ti,clkctrl";
  309. reg = <0x0 0x5c>;
  310. #clock-cells = <2>;
  311. };
  312. };
  313. alwon_cm: alwon_cm@1400 {
  314. compatible = "ti,omap4-cm";
  315. reg = <0x1400 0x300>;
  316. #address-cells = <1>;
  317. #size-cells = <1>;
  318. ranges = <0 0x1400 0x300>;
  319. alwon_clkctrl: clk@0 {
  320. compatible = "ti,clkctrl";
  321. reg = <0x0 0x228>;
  322. #clock-cells = <2>;
  323. };
  324. };
  325. alwon_ethernet_cm: alwon_ethernet_cm@15d4 {
  326. compatible = "ti,omap4-cm";
  327. reg = <0x15d4 0x4>;
  328. #address-cells = <1>;
  329. #size-cells = <1>;
  330. ranges = <0 0x15d4 0x4>;
  331. alwon_ethernet_clkctrl: clk@0 {
  332. compatible = "ti,clkctrl";
  333. reg = <0 0x4>;
  334. #clock-cells = <2>;
  335. };
  336. };
  337. };