am43xx-clocks.dtsi 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Device Tree Source for AM43xx clock data
  4. *
  5. * Copyright (C) 2013 Texas Instruments, Inc.
  6. */
  7. &scm_clocks {
  8. sys_clkin_ck: clock-sys-clkin-31@40 {
  9. #clock-cells = <0>;
  10. compatible = "ti,mux-clock";
  11. clock-output-names = "sys_clkin_ck";
  12. clocks = <&sysboot_freq_sel_ck>, <&crystal_freq_sel_ck>;
  13. ti,bit-shift = <31>;
  14. reg = <0x0040>;
  15. };
  16. crystal_freq_sel_ck: clock-crystal-freq-sel-29@40 {
  17. #clock-cells = <0>;
  18. compatible = "ti,mux-clock";
  19. clock-output-names = "crystal_freq_sel_ck";
  20. clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>;
  21. ti,bit-shift = <29>;
  22. reg = <0x0040>;
  23. };
  24. sysboot_freq_sel_ck: clock-sysboot-freq-sel-22@44e10040 {
  25. #clock-cells = <0>;
  26. compatible = "ti,mux-clock";
  27. clock-output-names = "sysboot_freq_sel_ck";
  28. clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>;
  29. ti,bit-shift = <22>;
  30. reg = <0x0040>;
  31. };
  32. adc_tsc_fck: clock-adc-tsc-fck {
  33. #clock-cells = <0>;
  34. compatible = "fixed-factor-clock";
  35. clock-output-names = "adc_tsc_fck";
  36. clocks = <&sys_clkin_ck>;
  37. clock-mult = <1>;
  38. clock-div = <1>;
  39. };
  40. dcan0_fck: clock-dcan0-fck {
  41. #clock-cells = <0>;
  42. compatible = "fixed-factor-clock";
  43. clock-output-names = "dcan0_fck";
  44. clocks = <&sys_clkin_ck>;
  45. clock-mult = <1>;
  46. clock-div = <1>;
  47. };
  48. dcan1_fck: clock-dcan1-fck {
  49. #clock-cells = <0>;
  50. compatible = "fixed-factor-clock";
  51. clock-output-names = "dcan1_fck";
  52. clocks = <&sys_clkin_ck>;
  53. clock-mult = <1>;
  54. clock-div = <1>;
  55. };
  56. mcasp0_fck: clock-mcasp0-fck {
  57. #clock-cells = <0>;
  58. compatible = "fixed-factor-clock";
  59. clock-output-names = "mcasp0_fck";
  60. clocks = <&sys_clkin_ck>;
  61. clock-mult = <1>;
  62. clock-div = <1>;
  63. };
  64. mcasp1_fck: clock-mcasp1-fck {
  65. #clock-cells = <0>;
  66. compatible = "fixed-factor-clock";
  67. clock-output-names = "mcasp1_fck";
  68. clocks = <&sys_clkin_ck>;
  69. clock-mult = <1>;
  70. clock-div = <1>;
  71. };
  72. smartreflex0_fck: clock-smartreflex0-fck {
  73. #clock-cells = <0>;
  74. compatible = "fixed-factor-clock";
  75. clock-output-names = "smartreflex0_fck";
  76. clocks = <&sys_clkin_ck>;
  77. clock-mult = <1>;
  78. clock-div = <1>;
  79. };
  80. smartreflex1_fck: clock-smartreflex1-fck {
  81. #clock-cells = <0>;
  82. compatible = "fixed-factor-clock";
  83. clock-output-names = "smartreflex1_fck";
  84. clocks = <&sys_clkin_ck>;
  85. clock-mult = <1>;
  86. clock-div = <1>;
  87. };
  88. sha0_fck: clock-sha0-fck {
  89. #clock-cells = <0>;
  90. compatible = "fixed-factor-clock";
  91. clock-output-names = "sha0_fck";
  92. clocks = <&sys_clkin_ck>;
  93. clock-mult = <1>;
  94. clock-div = <1>;
  95. };
  96. aes0_fck: clock-aes0-fck {
  97. #clock-cells = <0>;
  98. compatible = "fixed-factor-clock";
  99. clock-output-names = "aes0_fck";
  100. clocks = <&sys_clkin_ck>;
  101. clock-mult = <1>;
  102. clock-div = <1>;
  103. };
  104. rng_fck: clock-rng-fck {
  105. #clock-cells = <0>;
  106. compatible = "fixed-factor-clock";
  107. clock-output-names = "rng_fck";
  108. clocks = <&sys_clkin_ck>;
  109. clock-mult = <1>;
  110. clock-div = <1>;
  111. };
  112. ehrpwm0_tbclk: clock-ehrpwm0-tbclk-0@664 {
  113. #clock-cells = <0>;
  114. compatible = "ti,gate-clock";
  115. clock-output-names = "ehrpwm0_tbclk";
  116. clocks = <&l4ls_gclk>;
  117. ti,bit-shift = <0>;
  118. reg = <0x0664>;
  119. };
  120. ehrpwm1_tbclk: clock-ehrpwm1-tbclk-1@664 {
  121. #clock-cells = <0>;
  122. compatible = "ti,gate-clock";
  123. clock-output-names = "ehrpwm1_tbclk";
  124. clocks = <&l4ls_gclk>;
  125. ti,bit-shift = <1>;
  126. reg = <0x0664>;
  127. };
  128. ehrpwm2_tbclk: clock-ehrpwm2-tbclk-2@664 {
  129. #clock-cells = <0>;
  130. compatible = "ti,gate-clock";
  131. clock-output-names = "ehrpwm2_tbclk";
  132. clocks = <&l4ls_gclk>;
  133. ti,bit-shift = <2>;
  134. reg = <0x0664>;
  135. };
  136. ehrpwm3_tbclk: clock-ehrpwm3-tbclk-4@664 {
  137. #clock-cells = <0>;
  138. compatible = "ti,gate-clock";
  139. clock-output-names = "ehrpwm3_tbclk";
  140. clocks = <&l4ls_gclk>;
  141. ti,bit-shift = <4>;
  142. reg = <0x0664>;
  143. };
  144. ehrpwm4_tbclk: clock-ehrpwm4-tbclk-5@664 {
  145. #clock-cells = <0>;
  146. compatible = "ti,gate-clock";
  147. clock-output-names = "ehrpwm4_tbclk";
  148. clocks = <&l4ls_gclk>;
  149. ti,bit-shift = <5>;
  150. reg = <0x0664>;
  151. };
  152. ehrpwm5_tbclk: clock-ehrpwm5-tbclk-6@664 {
  153. #clock-cells = <0>;
  154. compatible = "ti,gate-clock";
  155. clock-output-names = "ehrpwm5_tbclk";
  156. clocks = <&l4ls_gclk>;
  157. ti,bit-shift = <6>;
  158. reg = <0x0664>;
  159. };
  160. };
  161. &prcm_clocks {
  162. clk_32768_ck: clock-clk-32768 {
  163. #clock-cells = <0>;
  164. compatible = "fixed-clock";
  165. clock-output-names = "clk_32768_ck";
  166. clock-frequency = <32768>;
  167. };
  168. clk_rc32k_ck: clock-clk-rc32k {
  169. #clock-cells = <0>;
  170. compatible = "fixed-clock";
  171. clock-output-names = "clk_rc32k_ck";
  172. clock-frequency = <32768>;
  173. };
  174. virt_19200000_ck: clock-virt-19200000 {
  175. #clock-cells = <0>;
  176. compatible = "fixed-clock";
  177. clock-output-names = "virt_19200000_ck";
  178. clock-frequency = <19200000>;
  179. };
  180. virt_24000000_ck: clock-virt-24000000 {
  181. #clock-cells = <0>;
  182. compatible = "fixed-clock";
  183. clock-output-names = "virt_24000000_ck";
  184. clock-frequency = <24000000>;
  185. };
  186. virt_25000000_ck: clock-virt-25000000 {
  187. #clock-cells = <0>;
  188. compatible = "fixed-clock";
  189. clock-output-names = "virt_25000000_ck";
  190. clock-frequency = <25000000>;
  191. };
  192. virt_26000000_ck: clock-virt-26000000 {
  193. #clock-cells = <0>;
  194. compatible = "fixed-clock";
  195. clock-output-names = "virt_26000000_ck";
  196. clock-frequency = <26000000>;
  197. };
  198. tclkin_ck: clock-tclkin {
  199. #clock-cells = <0>;
  200. compatible = "fixed-clock";
  201. clock-output-names = "tclkin_ck";
  202. clock-frequency = <26000000>;
  203. };
  204. dpll_core_ck: clock@2d20 {
  205. #clock-cells = <0>;
  206. compatible = "ti,am3-dpll-core-clock";
  207. clock-output-names = "dpll_core_ck";
  208. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  209. reg = <0x2d20>, <0x2d24>, <0x2d2c>, <0x2d48>, <0x2d4c>;
  210. };
  211. dpll_core_x2_ck: clock-dpll-core-x2 {
  212. #clock-cells = <0>;
  213. compatible = "ti,am3-dpll-x2-clock";
  214. clock-output-names = "dpll_core_x2_ck";
  215. clocks = <&dpll_core_ck>;
  216. };
  217. dpll_core_m4_ck: clock-dpll-core-m4-8@2d38 {
  218. #clock-cells = <0>;
  219. compatible = "ti,divider-clock";
  220. clock-output-names = "dpll_core_m4_ck";
  221. clocks = <&dpll_core_x2_ck>;
  222. ti,max-div = <31>;
  223. ti,autoidle-shift = <8>;
  224. reg = <0x2d38>;
  225. ti,index-starts-at-one;
  226. ti,invert-autoidle-bit;
  227. };
  228. dpll_core_m5_ck: clock-dpll-core-m5-8@2d3c {
  229. #clock-cells = <0>;
  230. compatible = "ti,divider-clock";
  231. clock-output-names = "dpll_core_m5_ck";
  232. clocks = <&dpll_core_x2_ck>;
  233. ti,max-div = <31>;
  234. ti,autoidle-shift = <8>;
  235. reg = <0x2d3c>;
  236. ti,index-starts-at-one;
  237. ti,invert-autoidle-bit;
  238. };
  239. dpll_core_m6_ck: clock-dpll-core-m6-8@2d40 {
  240. #clock-cells = <0>;
  241. compatible = "ti,divider-clock";
  242. clock-output-names = "dpll_core_m6_ck";
  243. clocks = <&dpll_core_x2_ck>;
  244. ti,max-div = <31>;
  245. ti,autoidle-shift = <8>;
  246. reg = <0x2d40>;
  247. ti,index-starts-at-one;
  248. ti,invert-autoidle-bit;
  249. };
  250. dpll_mpu_ck: clock@2d60 {
  251. #clock-cells = <0>;
  252. compatible = "ti,am3-dpll-clock";
  253. clock-output-names = "dpll_mpu_ck";
  254. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  255. reg = <0x2d60>, <0x2d64>, <0x2d6c>, <0x2d88>, <0x2d8c>;
  256. };
  257. dpll_mpu_m2_ck: clock-dpll-mpu-m2-8@2d70 {
  258. #clock-cells = <0>;
  259. compatible = "ti,divider-clock";
  260. clock-output-names = "dpll_mpu_m2_ck";
  261. clocks = <&dpll_mpu_ck>;
  262. ti,max-div = <31>;
  263. ti,autoidle-shift = <8>;
  264. reg = <0x2d70>;
  265. ti,index-starts-at-one;
  266. ti,invert-autoidle-bit;
  267. };
  268. mpu_periphclk: clock-mpu-periphclk {
  269. #clock-cells = <0>;
  270. compatible = "fixed-factor-clock";
  271. clock-output-names = "mpu_periphclk";
  272. clocks = <&dpll_mpu_m2_ck>;
  273. clock-mult = <1>;
  274. clock-div = <2>;
  275. };
  276. dpll_ddr_ck: clock@2da0 {
  277. #clock-cells = <0>;
  278. compatible = "ti,am3-dpll-clock";
  279. clock-output-names = "dpll_ddr_ck";
  280. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  281. reg = <0x2da0>, <0x2da4>, <0x2dac>, <0x2dc8>, <0x2dcc>;
  282. };
  283. dpll_ddr_m2_ck: clock-dpll-ddr-m2-8@2db0 {
  284. #clock-cells = <0>;
  285. compatible = "ti,divider-clock";
  286. clock-output-names = "dpll_ddr_m2_ck";
  287. clocks = <&dpll_ddr_ck>;
  288. ti,max-div = <31>;
  289. ti,autoidle-shift = <8>;
  290. reg = <0x2db0>;
  291. ti,index-starts-at-one;
  292. ti,invert-autoidle-bit;
  293. };
  294. dpll_disp_ck: clock@2e20 {
  295. #clock-cells = <0>;
  296. compatible = "ti,am3-dpll-clock";
  297. clock-output-names = "dpll_disp_ck";
  298. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  299. reg = <0x2e20>, <0x2e24>, <0x2e2c>, <0x2e48>, <0x2e4c>;
  300. };
  301. dpll_disp_m2_ck: clock-dpll-disp-m2-8@2e30 {
  302. #clock-cells = <0>;
  303. compatible = "ti,divider-clock";
  304. clock-output-names = "dpll_disp_m2_ck";
  305. clocks = <&dpll_disp_ck>;
  306. ti,max-div = <31>;
  307. ti,autoidle-shift = <8>;
  308. reg = <0x2e30>;
  309. ti,index-starts-at-one;
  310. ti,invert-autoidle-bit;
  311. ti,set-rate-parent;
  312. };
  313. dpll_per_ck: clock@2de0 {
  314. #clock-cells = <0>;
  315. compatible = "ti,am3-dpll-j-type-clock";
  316. clock-output-names = "dpll_per_ck";
  317. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  318. reg = <0x2de0>, <0x2de4>, <0x2dec>, <0x2e08>, <0x2e0c>;
  319. };
  320. dpll_per_m2_ck: clock-dpll-per-m2-8@2df0 {
  321. #clock-cells = <0>;
  322. compatible = "ti,divider-clock";
  323. clock-output-names = "dpll_per_m2_ck";
  324. clocks = <&dpll_per_ck>;
  325. ti,max-div = <127>;
  326. ti,autoidle-shift = <8>;
  327. reg = <0x2df0>;
  328. ti,index-starts-at-one;
  329. ti,invert-autoidle-bit;
  330. };
  331. dpll_per_m2_div4_wkupdm_ck: clock-dpll-per-m2-div4-wkupdm {
  332. #clock-cells = <0>;
  333. compatible = "fixed-factor-clock";
  334. clock-output-names = "dpll_per_m2_div4_wkupdm_ck";
  335. clocks = <&dpll_per_m2_ck>;
  336. clock-mult = <1>;
  337. clock-div = <4>;
  338. };
  339. dpll_per_m2_div4_ck: clock-dpll-per-m2-div4 {
  340. #clock-cells = <0>;
  341. compatible = "fixed-factor-clock";
  342. clock-output-names = "dpll_per_m2_div4_ck";
  343. clocks = <&dpll_per_m2_ck>;
  344. clock-mult = <1>;
  345. clock-div = <4>;
  346. };
  347. clk_24mhz: clock-clk-24mhz {
  348. #clock-cells = <0>;
  349. compatible = "fixed-factor-clock";
  350. clock-output-names = "clk_24mhz";
  351. clocks = <&dpll_per_m2_ck>;
  352. clock-mult = <1>;
  353. clock-div = <8>;
  354. };
  355. clkdiv32k_ck: clock-clkdiv32k {
  356. #clock-cells = <0>;
  357. compatible = "fixed-factor-clock";
  358. clock-output-names = "clkdiv32k_ck";
  359. clocks = <&clk_24mhz>;
  360. clock-mult = <1>;
  361. clock-div = <732>;
  362. };
  363. clkdiv32k_ick: clock-clkdiv32k-ick-8@2a38 {
  364. #clock-cells = <0>;
  365. compatible = "ti,gate-clock";
  366. clock-output-names = "clkdiv32k_ick";
  367. clocks = <&clkdiv32k_ck>;
  368. ti,bit-shift = <8>;
  369. reg = <0x2a38>;
  370. };
  371. sysclk_div: clock-sysclk-div {
  372. #clock-cells = <0>;
  373. compatible = "fixed-factor-clock";
  374. clock-output-names = "sysclk_div";
  375. clocks = <&dpll_core_m4_ck>;
  376. clock-mult = <1>;
  377. clock-div = <1>;
  378. };
  379. pruss_ocp_gclk: clock-pruss-ocp-gclk@4248 {
  380. #clock-cells = <0>;
  381. compatible = "ti,mux-clock";
  382. clock-output-names = "pruss_ocp_gclk";
  383. clocks = <&sysclk_div>, <&dpll_disp_m2_ck>;
  384. reg = <0x4248>;
  385. };
  386. clk_32k_tpm_ck: clock-clk-32k-tpm {
  387. #clock-cells = <0>;
  388. compatible = "fixed-clock";
  389. clock-output-names = "clk_32k_tpm_ck";
  390. clock-frequency = <32768>;
  391. };
  392. timer1_fck: clock-timer1-fck@4200 {
  393. #clock-cells = <0>;
  394. compatible = "ti,mux-clock";
  395. clock-output-names = "timer1_fck";
  396. clocks = <&sys_clkin_ck>, <&clkdiv32k_ick>, <&tclkin_ck>, <&clk_rc32k_ck>, <&clk_32768_ck>, <&clk_32k_tpm_ck>;
  397. reg = <0x4200>;
  398. };
  399. timer2_fck: clock-timer2-fck@4204 {
  400. #clock-cells = <0>;
  401. compatible = "ti,mux-clock";
  402. clock-output-names = "timer2_fck";
  403. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  404. reg = <0x4204>;
  405. };
  406. timer3_fck: clock-timer3-fck@4208 {
  407. #clock-cells = <0>;
  408. compatible = "ti,mux-clock";
  409. clock-output-names = "timer3_fck";
  410. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  411. reg = <0x4208>;
  412. };
  413. timer4_fck: clock-timer4-fck@420c {
  414. #clock-cells = <0>;
  415. compatible = "ti,mux-clock";
  416. clock-output-names = "timer4_fck";
  417. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  418. reg = <0x420c>;
  419. };
  420. timer5_fck: clock-timer5-fck@4210 {
  421. #clock-cells = <0>;
  422. compatible = "ti,mux-clock";
  423. clock-output-names = "timer5_fck";
  424. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  425. reg = <0x4210>;
  426. };
  427. timer6_fck: clock-timer6-fck@4214 {
  428. #clock-cells = <0>;
  429. compatible = "ti,mux-clock";
  430. clock-output-names = "timer6_fck";
  431. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  432. reg = <0x4214>;
  433. };
  434. timer7_fck: clock-timer7-fck@4218 {
  435. #clock-cells = <0>;
  436. compatible = "ti,mux-clock";
  437. clock-output-names = "timer7_fck";
  438. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
  439. reg = <0x4218>;
  440. };
  441. wdt1_fck: clock-wdt1-fck@422c {
  442. #clock-cells = <0>;
  443. compatible = "ti,mux-clock";
  444. clock-output-names = "wdt1_fck";
  445. clocks = <&clk_rc32k_ck>, <&clkdiv32k_ick>;
  446. reg = <0x422c>;
  447. };
  448. adc_mag_fck: adc_mag_fck@424c {
  449. #clock-cells = <0>;
  450. compatible = "ti,mux-clock";
  451. clocks = <&sys_clkin_ck>, <&dpll_per_m2_ck>;
  452. reg = <0x424c>;
  453. };
  454. l3_gclk: clock-l3-gclk {
  455. #clock-cells = <0>;
  456. compatible = "fixed-factor-clock";
  457. clock-output-names = "l3_gclk";
  458. clocks = <&dpll_core_m4_ck>;
  459. clock-mult = <1>;
  460. clock-div = <1>;
  461. };
  462. dpll_core_m4_div2_ck: clock-dpll-core-m4-div2 {
  463. #clock-cells = <0>;
  464. compatible = "fixed-factor-clock";
  465. clock-output-names = "dpll_core_m4_div2_ck";
  466. clocks = <&sysclk_div>;
  467. clock-mult = <1>;
  468. clock-div = <2>;
  469. };
  470. l4hs_gclk: clock-l4hs-gclk {
  471. #clock-cells = <0>;
  472. compatible = "fixed-factor-clock";
  473. clock-output-names = "l4hs_gclk";
  474. clocks = <&dpll_core_m4_ck>;
  475. clock-mult = <1>;
  476. clock-div = <1>;
  477. };
  478. l3s_gclk: clock-l3s-gclk {
  479. #clock-cells = <0>;
  480. compatible = "fixed-factor-clock";
  481. clock-output-names = "l3s_gclk";
  482. clocks = <&dpll_core_m4_div2_ck>;
  483. clock-mult = <1>;
  484. clock-div = <1>;
  485. };
  486. l4ls_gclk: clock-l4ls-gclk {
  487. #clock-cells = <0>;
  488. compatible = "fixed-factor-clock";
  489. clock-output-names = "l4ls_gclk";
  490. clocks = <&dpll_core_m4_div2_ck>;
  491. clock-mult = <1>;
  492. clock-div = <1>;
  493. };
  494. cpsw_125mhz_gclk: clock-cpsw-125mhz-gclk {
  495. #clock-cells = <0>;
  496. compatible = "fixed-factor-clock";
  497. clock-output-names = "cpsw_125mhz_gclk";
  498. clocks = <&dpll_core_m5_ck>;
  499. clock-mult = <1>;
  500. clock-div = <2>;
  501. };
  502. cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@4238 {
  503. #clock-cells = <0>;
  504. compatible = "ti,mux-clock";
  505. clock-output-names = "cpsw_cpts_rft_clk";
  506. clocks = <&sysclk_div>, <&dpll_core_m5_ck>, <&dpll_disp_m2_ck>;
  507. reg = <0x4238>;
  508. };
  509. dpll_clksel_mac_clk: clock-dpll-clksel-mac-2@4234 {
  510. #clock-cells = <0>;
  511. compatible = "ti,divider-clock";
  512. clock-output-names = "dpll_clksel_mac_clk";
  513. clocks = <&dpll_core_m5_ck>;
  514. reg = <0x4234>;
  515. ti,bit-shift = <2>;
  516. ti,dividers = <2>, <5>;
  517. };
  518. clk_32k_mosc_ck: clock-clk-32k-mosc {
  519. #clock-cells = <0>;
  520. compatible = "fixed-clock";
  521. clock-output-names = "clk_32k_mosc_ck";
  522. clock-frequency = <32768>;
  523. };
  524. gpio0_dbclk_mux_ck: clock-gpio0-dbclk-mux@4240 {
  525. #clock-cells = <0>;
  526. compatible = "ti,mux-clock";
  527. clock-output-names = "gpio0_dbclk_mux_ck";
  528. clocks = <&clk_rc32k_ck>, <&clk_32768_ck>, <&clkdiv32k_ick>, <&clk_32k_mosc_ck>, <&clk_32k_tpm_ck>;
  529. reg = <0x4240>;
  530. };
  531. mmc_clk: clock-mmc {
  532. #clock-cells = <0>;
  533. compatible = "fixed-factor-clock";
  534. clock-output-names = "mmc_clk";
  535. clocks = <&dpll_per_m2_ck>;
  536. clock-mult = <1>;
  537. clock-div = <2>;
  538. };
  539. gfx_fclk_clksel_ck: clock-gfx-fclk-clksel-1@423c {
  540. #clock-cells = <0>;
  541. compatible = "ti,mux-clock";
  542. clock-output-names = "gfx_fclk_clksel_ck";
  543. clocks = <&sysclk_div>, <&dpll_per_m2_ck>;
  544. ti,bit-shift = <1>;
  545. reg = <0x423c>;
  546. };
  547. gfx_fck_div_ck: clock-gfx-fck-div@423c {
  548. #clock-cells = <0>;
  549. compatible = "ti,divider-clock";
  550. clock-output-names = "gfx_fck_div_ck";
  551. clocks = <&gfx_fclk_clksel_ck>;
  552. reg = <0x423c>;
  553. ti,max-div = <2>;
  554. };
  555. disp_clk: clock-disp@4244 {
  556. #clock-cells = <0>;
  557. compatible = "ti,mux-clock";
  558. clock-output-names = "disp_clk";
  559. clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>;
  560. reg = <0x4244>;
  561. ti,set-rate-parent;
  562. };
  563. dpll_extdev_ck: clock@2e60 {
  564. #clock-cells = <0>;
  565. compatible = "ti,am3-dpll-clock";
  566. clock-output-names = "dpll_extdev_ck";
  567. clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
  568. reg = <0x2e60>, <0x2e64>, <0x2e6c>, <0x2e88>, <0x2e8c>;
  569. };
  570. dpll_extdev_m2_ck: clock-dpll-extdev-m2-8@2e70 {
  571. #clock-cells = <0>;
  572. compatible = "ti,divider-clock";
  573. clock-output-names = "dpll_extdev_m2_ck";
  574. clocks = <&dpll_extdev_ck>;
  575. ti,max-div = <127>;
  576. ti,autoidle-shift = <8>;
  577. reg = <0x2e70>;
  578. ti,index-starts-at-one;
  579. ti,invert-autoidle-bit;
  580. };
  581. mux_synctimer32k_ck: clock-mux-synctimer32k@4230 {
  582. #clock-cells = <0>;
  583. compatible = "ti,mux-clock";
  584. clock-output-names = "mux_synctimer32k_ck";
  585. clocks = <&clk_32768_ck>, <&clk_32k_tpm_ck>, <&clkdiv32k_ick>;
  586. reg = <0x4230>;
  587. };
  588. timer8_fck: clock-timer8-fck@421c {
  589. #clock-cells = <0>;
  590. compatible = "ti,mux-clock";
  591. clock-output-names = "timer8_fck";
  592. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
  593. reg = <0x421c>;
  594. };
  595. timer9_fck: clock-timer9-fck@4220 {
  596. #clock-cells = <0>;
  597. compatible = "ti,mux-clock";
  598. clock-output-names = "timer9_fck";
  599. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
  600. reg = <0x4220>;
  601. };
  602. timer10_fck: clock-timer10-fck@4224 {
  603. #clock-cells = <0>;
  604. compatible = "ti,mux-clock";
  605. clock-output-names = "timer10_fck";
  606. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
  607. reg = <0x4224>;
  608. };
  609. timer11_fck: clock-timer11-fck@4228 {
  610. #clock-cells = <0>;
  611. compatible = "ti,mux-clock";
  612. clock-output-names = "timer11_fck";
  613. clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
  614. reg = <0x4228>;
  615. };
  616. cpsw_50m_clkdiv: clock-cpsw-50m-clkdiv {
  617. #clock-cells = <0>;
  618. compatible = "fixed-factor-clock";
  619. clock-output-names = "cpsw_50m_clkdiv";
  620. clocks = <&dpll_core_m5_ck>;
  621. clock-mult = <1>;
  622. clock-div = <1>;
  623. };
  624. cpsw_5m_clkdiv: clock-cpsw-5m-clkdiv {
  625. #clock-cells = <0>;
  626. compatible = "fixed-factor-clock";
  627. clock-output-names = "cpsw_5m_clkdiv";
  628. clocks = <&cpsw_50m_clkdiv>;
  629. clock-mult = <1>;
  630. clock-div = <10>;
  631. };
  632. dpll_ddr_x2_ck: clock-dpll-ddr-x2 {
  633. #clock-cells = <0>;
  634. compatible = "ti,am3-dpll-x2-clock";
  635. clock-output-names = "dpll_ddr_x2_ck";
  636. clocks = <&dpll_ddr_ck>;
  637. };
  638. dpll_ddr_m4_ck: clock-dpll-ddr-m4-8@2db8 {
  639. #clock-cells = <0>;
  640. compatible = "ti,divider-clock";
  641. clock-output-names = "dpll_ddr_m4_ck";
  642. clocks = <&dpll_ddr_x2_ck>;
  643. ti,max-div = <31>;
  644. ti,autoidle-shift = <8>;
  645. reg = <0x2db8>;
  646. ti,index-starts-at-one;
  647. ti,invert-autoidle-bit;
  648. };
  649. dpll_per_clkdcoldo: clock-dpll-per-clkdcoldo-8@2e14 {
  650. #clock-cells = <0>;
  651. compatible = "ti,fixed-factor-clock";
  652. clock-output-names = "dpll_per_clkdcoldo";
  653. clocks = <&dpll_per_ck>;
  654. ti,clock-mult = <1>;
  655. ti,clock-div = <1>;
  656. ti,autoidle-shift = <8>;
  657. reg = <0x2e14>;
  658. ti,invert-autoidle-bit;
  659. };
  660. dll_aging_clk_div: clock-dll-aging-clk-div@4250 {
  661. #clock-cells = <0>;
  662. compatible = "ti,divider-clock";
  663. clock-output-names = "dll_aging_clk_div";
  664. clocks = <&sys_clkin_ck>;
  665. reg = <0x4250>;
  666. ti,dividers = <8>, <16>, <32>;
  667. };
  668. div_core_25m_ck: clock-div-core-25m {
  669. #clock-cells = <0>;
  670. compatible = "fixed-factor-clock";
  671. clock-output-names = "div_core_25m_ck";
  672. clocks = <&sysclk_div>;
  673. clock-mult = <1>;
  674. clock-div = <8>;
  675. };
  676. func_12m_clk: clock-func-12m {
  677. #clock-cells = <0>;
  678. compatible = "fixed-factor-clock";
  679. clock-output-names = "func_12m_clk";
  680. clocks = <&dpll_per_m2_ck>;
  681. clock-mult = <1>;
  682. clock-div = <16>;
  683. };
  684. vtp_clk_div: clock-vtp-clk-div {
  685. #clock-cells = <0>;
  686. compatible = "fixed-factor-clock";
  687. clock-output-names = "vtp_clk_div";
  688. clocks = <&sys_clkin_ck>;
  689. clock-mult = <1>;
  690. clock-div = <2>;
  691. };
  692. usbphy_32khz_clkmux: clock-usbphy-32khz-clkmux@4260 {
  693. #clock-cells = <0>;
  694. compatible = "ti,mux-clock";
  695. clock-output-names = "usbphy_32khz_clkmux";
  696. clocks = <&clk_32768_ck>, <&clk_32k_tpm_ck>;
  697. reg = <0x4260>;
  698. };
  699. usb_phy0_always_on_clk32k: clock-usb-phy0-always-on-clk32k-8@2a40 {
  700. #clock-cells = <0>;
  701. compatible = "ti,gate-clock";
  702. clock-output-names = "usb_phy0_always_on_clk32k";
  703. clocks = <&usbphy_32khz_clkmux>;
  704. ti,bit-shift = <8>;
  705. reg = <0x2a40>;
  706. };
  707. usb_phy1_always_on_clk32k: clock-usb-phy1-always-on-clk32k-8@2a48 {
  708. #clock-cells = <0>;
  709. compatible = "ti,gate-clock";
  710. clock-output-names = "usb_phy1_always_on_clk32k";
  711. clocks = <&usbphy_32khz_clkmux>;
  712. ti,bit-shift = <8>;
  713. reg = <0x2a48>;
  714. };
  715. clkout1_osc_div_ck: clock-clkout1-osc-div-ck {
  716. #clock-cells = <0>;
  717. compatible = "ti,divider-clock";
  718. clock-output-names = "clkout1_osc_div_ck";
  719. clocks = <&sys_clkin_ck>;
  720. ti,bit-shift = <20>;
  721. ti,max-div = <4>;
  722. reg = <0x4100>;
  723. };
  724. clkout1_src2_mux_ck: clock-clkout1-src2-mux-ck {
  725. #clock-cells = <0>;
  726. compatible = "ti,mux-clock";
  727. clock-output-names = "clkout1_src2_mux_ck";
  728. clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
  729. <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
  730. <&dpll_mpu_m2_ck>;
  731. reg = <0x4100>;
  732. };
  733. clkout1_src2_pre_div_ck: clock-clkout1-src2-pre-div-ck {
  734. #clock-cells = <0>;
  735. compatible = "ti,divider-clock";
  736. clock-output-names = "clkout1_src2_pre_div_ck";
  737. clocks = <&clkout1_src2_mux_ck>;
  738. ti,bit-shift = <4>;
  739. ti,max-div = <8>;
  740. reg = <0x4100>;
  741. };
  742. clkout1_src2_post_div_ck: clock-clkout1-src2-post-div-ck {
  743. #clock-cells = <0>;
  744. compatible = "ti,divider-clock";
  745. clock-output-names = "clkout1_src2_post_div_ck";
  746. clocks = <&clkout1_src2_pre_div_ck>;
  747. ti,bit-shift = <8>;
  748. ti,max-div = <32>;
  749. ti,index-power-of-two;
  750. reg = <0x4100>;
  751. };
  752. clkout1_mux_ck: clock-clkout1-mux-ck {
  753. #clock-cells = <0>;
  754. compatible = "ti,mux-clock";
  755. clock-output-names = "clkout1_mux_ck";
  756. clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
  757. <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
  758. ti,bit-shift = <16>;
  759. reg = <0x4100>;
  760. };
  761. clkout1_ck: clock-clkout1-ck {
  762. #clock-cells = <0>;
  763. compatible = "ti,gate-clock";
  764. clock-output-names = "clkout1_ck";
  765. clocks = <&clkout1_mux_ck>;
  766. ti,bit-shift = <23>;
  767. reg = <0x4100>;
  768. };
  769. };
  770. &prcm {
  771. wkup_cm: clock@2800 {
  772. compatible = "ti,omap4-cm";
  773. clock-output-names = "wkup_cm";
  774. reg = <0x2800 0x400>;
  775. #address-cells = <1>;
  776. #size-cells = <1>;
  777. ranges = <0 0x2800 0x400>;
  778. l3s_tsc_clkctrl: clock@120 {
  779. compatible = "ti,clkctrl";
  780. clock-output-names = "l3s_tsc_clkctrl";
  781. reg = <0x120 0x4>;
  782. #clock-cells = <2>;
  783. };
  784. l4_wkup_aon_clkctrl: clock@228 {
  785. compatible = "ti,clkctrl";
  786. clock-output-names = "l4_wkup_aon_clkctrl";
  787. reg = <0x228 0xc>;
  788. #clock-cells = <2>;
  789. };
  790. l4_wkup_clkctrl: clock@220 {
  791. compatible = "ti,clkctrl";
  792. clock-output-names = "l4_wkup_clkctrl";
  793. reg = <0x220 0x4>, <0x328 0x44>;
  794. #clock-cells = <2>;
  795. };
  796. };
  797. mpu_cm: clock@8300 {
  798. compatible = "ti,omap4-cm";
  799. clock-output-names = "mpu_cm";
  800. reg = <0x8300 0x100>;
  801. #address-cells = <1>;
  802. #size-cells = <1>;
  803. ranges = <0 0x8300 0x100>;
  804. mpu_clkctrl: clock@20 {
  805. compatible = "ti,clkctrl";
  806. clock-output-names = "mpu_clkctrl";
  807. reg = <0x20 0x4>;
  808. #clock-cells = <2>;
  809. };
  810. };
  811. gfx_l3_cm: clock@8400 {
  812. compatible = "ti,omap4-cm";
  813. clock-output-names = "gfx_l3_cm";
  814. reg = <0x8400 0x100>;
  815. #address-cells = <1>;
  816. #size-cells = <1>;
  817. ranges = <0 0x8400 0x100>;
  818. gfx_l3_clkctrl: clock@20 {
  819. compatible = "ti,clkctrl";
  820. clock-output-names = "gfx_l3_clkctrl";
  821. reg = <0x20 0x4>;
  822. #clock-cells = <2>;
  823. };
  824. };
  825. l4_rtc_cm: clock@8500 {
  826. compatible = "ti,omap4-cm";
  827. clock-output-names = "l4_rtc_cm";
  828. reg = <0x8500 0x100>;
  829. #address-cells = <1>;
  830. #size-cells = <1>;
  831. ranges = <0 0x8500 0x100>;
  832. l4_rtc_clkctrl: clock@20 {
  833. compatible = "ti,clkctrl";
  834. clock-output-names = "l4_rtc_clkctrl";
  835. reg = <0x20 0x4>;
  836. #clock-cells = <2>;
  837. };
  838. };
  839. per_cm: clock@8800 {
  840. compatible = "ti,omap4-cm";
  841. clock-output-names = "per_cm";
  842. reg = <0x8800 0xc00>;
  843. #address-cells = <1>;
  844. #size-cells = <1>;
  845. ranges = <0 0x8800 0xc00>;
  846. l3_clkctrl: clock@20 {
  847. compatible = "ti,clkctrl";
  848. clock-output-names = "l3_clkctrl";
  849. reg = <0x20 0x3c>, <0x78 0x2c>;
  850. #clock-cells = <2>;
  851. };
  852. l3s_clkctrl: clock@68 {
  853. compatible = "ti,clkctrl";
  854. clock-output-names = "l3s_clkctrl";
  855. reg = <0x68 0xc>, <0x220 0x4c>;
  856. #clock-cells = <2>;
  857. };
  858. pruss_ocp_clkctrl: clock@320 {
  859. compatible = "ti,clkctrl";
  860. clock-output-names = "pruss_ocp_clkctrl";
  861. reg = <0x320 0x4>;
  862. #clock-cells = <2>;
  863. };
  864. l4ls_clkctrl: clock@420 {
  865. compatible = "ti,clkctrl";
  866. clock-output-names = "l4ls_clkctrl";
  867. reg = <0x420 0x1a4>;
  868. #clock-cells = <2>;
  869. };
  870. emif_clkctrl: clock@720 {
  871. compatible = "ti,clkctrl";
  872. clock-output-names = "emif_clkctrl";
  873. reg = <0x720 0x4>;
  874. #clock-cells = <2>;
  875. };
  876. dss_clkctrl: clock@a20 {
  877. compatible = "ti,clkctrl";
  878. clock-output-names = "dss_clkctrl";
  879. reg = <0xa20 0x4>;
  880. #clock-cells = <2>;
  881. };
  882. cpsw_125mhz_clkctrl: clock@b20 {
  883. compatible = "ti,clkctrl";
  884. clock-output-names = "cpsw_125mhz_clkctrl";
  885. reg = <0xb20 0x4>;
  886. #clock-cells = <2>;
  887. };
  888. };
  889. };