keystone-clocks.dtsi 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Device Tree Source for Keystone 2 clock tree
  4. *
  5. * Copyright (C) 2013-2017 Texas Instruments Incorporated - http://www.ti.com/
  6. */
  7. clocks {
  8. #address-cells = <1>;
  9. #size-cells = <1>;
  10. ranges;
  11. mainmuxclk: mainmuxclk@2310108 {
  12. #clock-cells = <0>;
  13. compatible = "ti,keystone,pll-mux-clock";
  14. clocks = <&mainpllclk>, <&refclksys>;
  15. reg = <0x02310108 4>;
  16. bit-shift = <23>;
  17. bit-mask = <1>;
  18. clock-output-names = "mainmuxclk";
  19. };
  20. chipclk1: chipclk1 {
  21. #clock-cells = <0>;
  22. compatible = "fixed-factor-clock";
  23. clocks = <&mainmuxclk>;
  24. clock-div = <1>;
  25. clock-mult = <1>;
  26. clock-output-names = "chipclk1";
  27. };
  28. chipclk1rstiso: chipclk1rstiso {
  29. #clock-cells = <0>;
  30. compatible = "fixed-factor-clock";
  31. clocks = <&mainmuxclk>;
  32. clock-div = <1>;
  33. clock-mult = <1>;
  34. clock-output-names = "chipclk1rstiso";
  35. };
  36. gemtraceclk: gemtraceclk@2310120 {
  37. #clock-cells = <0>;
  38. compatible = "ti,keystone,pll-divider-clock";
  39. clocks = <&mainmuxclk>;
  40. reg = <0x02310120 4>;
  41. bit-shift = <0>;
  42. bit-mask = <8>;
  43. clock-output-names = "gemtraceclk";
  44. };
  45. chipstmxptclk: chipstmxptclk@2310164 {
  46. #clock-cells = <0>;
  47. compatible = "ti,keystone,pll-divider-clock";
  48. clocks = <&mainmuxclk>;
  49. reg = <0x02310164 4>;
  50. bit-shift = <0>;
  51. bit-mask = <8>;
  52. clock-output-names = "chipstmxptclk";
  53. };
  54. chipclk12: chipclk12 {
  55. #clock-cells = <0>;
  56. compatible = "fixed-factor-clock";
  57. clocks = <&chipclk1>;
  58. clock-div = <2>;
  59. clock-mult = <1>;
  60. clock-output-names = "chipclk12";
  61. };
  62. chipclk13: chipclk13 {
  63. #clock-cells = <0>;
  64. compatible = "fixed-factor-clock";
  65. clocks = <&chipclk1>;
  66. clock-div = <3>;
  67. clock-mult = <1>;
  68. clock-output-names = "chipclk13";
  69. };
  70. paclk13: paclk13 {
  71. #clock-cells = <0>;
  72. compatible = "fixed-factor-clock";
  73. clocks = <&papllclk>;
  74. clock-div = <3>;
  75. clock-mult = <1>;
  76. clock-output-names = "paclk13";
  77. };
  78. chipclk14: chipclk14 {
  79. #clock-cells = <0>;
  80. compatible = "fixed-factor-clock";
  81. clocks = <&chipclk1>;
  82. clock-div = <4>;
  83. clock-mult = <1>;
  84. clock-output-names = "chipclk14";
  85. };
  86. chipclk16: chipclk16 {
  87. #clock-cells = <0>;
  88. compatible = "fixed-factor-clock";
  89. clocks = <&chipclk1>;
  90. clock-div = <6>;
  91. clock-mult = <1>;
  92. clock-output-names = "chipclk16";
  93. };
  94. chipclk112: chipclk112 {
  95. #clock-cells = <0>;
  96. compatible = "fixed-factor-clock";
  97. clocks = <&chipclk1>;
  98. clock-div = <12>;
  99. clock-mult = <1>;
  100. clock-output-names = "chipclk112";
  101. };
  102. chipclk124: chipclk124 {
  103. #clock-cells = <0>;
  104. compatible = "fixed-factor-clock";
  105. clocks = <&chipclk1>;
  106. clock-div = <24>;
  107. clock-mult = <1>;
  108. clock-output-names = "chipclk114";
  109. };
  110. chipclk1rstiso13: chipclk1rstiso13 {
  111. #clock-cells = <0>;
  112. compatible = "fixed-factor-clock";
  113. clocks = <&chipclk1rstiso>;
  114. clock-div = <3>;
  115. clock-mult = <1>;
  116. clock-output-names = "chipclk1rstiso13";
  117. };
  118. chipclk1rstiso14: chipclk1rstiso14 {
  119. #clock-cells = <0>;
  120. compatible = "fixed-factor-clock";
  121. clocks = <&chipclk1rstiso>;
  122. clock-div = <4>;
  123. clock-mult = <1>;
  124. clock-output-names = "chipclk1rstiso14";
  125. };
  126. chipclk1rstiso16: chipclk1rstiso16 {
  127. #clock-cells = <0>;
  128. compatible = "fixed-factor-clock";
  129. clocks = <&chipclk1rstiso>;
  130. clock-div = <6>;
  131. clock-mult = <1>;
  132. clock-output-names = "chipclk1rstiso16";
  133. };
  134. chipclk1rstiso112: chipclk1rstiso112 {
  135. #clock-cells = <0>;
  136. compatible = "fixed-factor-clock";
  137. clocks = <&chipclk1rstiso>;
  138. clock-div = <12>;
  139. clock-mult = <1>;
  140. clock-output-names = "chipclk1rstiso112";
  141. };
  142. clkmodrst0: clkmodrst0@2350000 {
  143. #clock-cells = <0>;
  144. compatible = "ti,keystone,psc-clock";
  145. clocks = <&chipclk16>;
  146. clock-output-names = "modrst0";
  147. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  148. reg-names = "control", "domain";
  149. domain-id = <0>;
  150. };
  151. clkusb: clkusb@2350008 {
  152. #clock-cells = <0>;
  153. compatible = "ti,keystone,psc-clock";
  154. clocks = <&chipclk16>;
  155. clock-output-names = "usb";
  156. reg = <0x02350008 0xb00>, <0x02350000 0x400>;
  157. reg-names = "control", "domain";
  158. domain-id = <0>;
  159. };
  160. clkaemifspi: clkaemifspi@235000c {
  161. #clock-cells = <0>;
  162. compatible = "ti,keystone,psc-clock";
  163. clocks = <&chipclk16>;
  164. clock-output-names = "aemif-spi";
  165. reg = <0x0235000c 0xb00>, <0x02350000 0x400>;
  166. reg-names = "control", "domain";
  167. domain-id = <0>;
  168. };
  169. clkdebugsstrc: clkdebugsstrc@2350014 {
  170. #clock-cells = <0>;
  171. compatible = "ti,keystone,psc-clock";
  172. clocks = <&chipclk13>;
  173. clock-output-names = "debugss-trc";
  174. reg = <0x02350014 0xb00>, <0x02350000 0x400>;
  175. reg-names = "control", "domain";
  176. domain-id = <1>;
  177. };
  178. clktetbtrc: clktetbtrc@2350018 {
  179. #clock-cells = <0>;
  180. compatible = "ti,keystone,psc-clock";
  181. clocks = <&chipclk13>;
  182. clock-output-names = "tetb-trc";
  183. reg = <0x02350018 0xb00>, <0x02350004 0x400>;
  184. reg-names = "control", "domain";
  185. domain-id = <1>;
  186. };
  187. clkpa: clkpa@235001c {
  188. #clock-cells = <0>;
  189. compatible = "ti,keystone,psc-clock";
  190. clocks = <&paclk13>;
  191. clock-output-names = "pa";
  192. reg = <0x0235001c 0xb00>, <0x02350008 0x400>;
  193. reg-names = "control", "domain";
  194. domain-id = <2>;
  195. };
  196. clkcpgmac: clkcpgmac@2350020 {
  197. #clock-cells = <0>;
  198. compatible = "ti,keystone,psc-clock";
  199. clocks = <&clkpa>;
  200. clock-output-names = "cpgmac";
  201. reg = <0x02350020 0xb00>, <0x02350008 0x400>;
  202. reg-names = "control", "domain";
  203. domain-id = <2>;
  204. };
  205. clksa: clksa@2350024 {
  206. #clock-cells = <0>;
  207. compatible = "ti,keystone,psc-clock";
  208. clocks = <&clkpa>;
  209. clock-output-names = "sa";
  210. reg = <0x02350024 0xb00>, <0x02350008 0x400>;
  211. reg-names = "control", "domain";
  212. domain-id = <2>;
  213. };
  214. clkpcie: clkpcie@2350028 {
  215. #clock-cells = <0>;
  216. compatible = "ti,keystone,psc-clock";
  217. clocks = <&chipclk12>;
  218. clock-output-names = "pcie";
  219. reg = <0x02350028 0xb00>, <0x0235000c 0x400>;
  220. reg-names = "control", "domain";
  221. domain-id = <3>;
  222. };
  223. clksr: clksr@2350034 {
  224. #clock-cells = <0>;
  225. compatible = "ti,keystone,psc-clock";
  226. clocks = <&chipclk1rstiso112>;
  227. clock-output-names = "sr";
  228. reg = <0x02350034 0xb00>, <0x02350018 0x400>;
  229. reg-names = "control", "domain";
  230. domain-id = <6>;
  231. };
  232. clkgem0: clkgem0@235003c {
  233. #clock-cells = <0>;
  234. compatible = "ti,keystone,psc-clock";
  235. clocks = <&chipclk1>;
  236. clock-output-names = "gem0";
  237. reg = <0x0235003c 0xb00>, <0x02350020 0x400>;
  238. reg-names = "control", "domain";
  239. domain-id = <8>;
  240. };
  241. clkddr30: clkddr30@235005c {
  242. #clock-cells = <0>;
  243. compatible = "ti,keystone,psc-clock";
  244. clocks = <&chipclk12>;
  245. clock-output-names = "ddr3-0";
  246. reg = <0x0235005c 0xb00>, <0x02350040 0x400>;
  247. reg-names = "control", "domain";
  248. domain-id = <16>;
  249. };
  250. clkwdtimer0: clkwdtimer0@2350000 {
  251. #clock-cells = <0>;
  252. compatible = "ti,keystone,psc-clock";
  253. clocks = <&clkmodrst0>;
  254. clock-output-names = "timer0";
  255. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  256. reg-names = "control", "domain";
  257. domain-id = <0>;
  258. };
  259. clkwdtimer1: clkwdtimer1@2350000 {
  260. #clock-cells = <0>;
  261. compatible = "ti,keystone,psc-clock";
  262. clocks = <&clkmodrst0>;
  263. clock-output-names = "timer1";
  264. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  265. reg-names = "control", "domain";
  266. domain-id = <0>;
  267. };
  268. clkwdtimer2: clkwdtimer2@2350000 {
  269. #clock-cells = <0>;
  270. compatible = "ti,keystone,psc-clock";
  271. clocks = <&clkmodrst0>;
  272. clock-output-names = "timer2";
  273. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  274. reg-names = "control", "domain";
  275. domain-id = <0>;
  276. };
  277. clkwdtimer3: clkwdtimer3@2350000 {
  278. #clock-cells = <0>;
  279. compatible = "ti,keystone,psc-clock";
  280. clocks = <&clkmodrst0>;
  281. clock-output-names = "timer3";
  282. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  283. reg-names = "control", "domain";
  284. domain-id = <0>;
  285. };
  286. clktimer15: clktimer15@2350000 {
  287. #clock-cells = <0>;
  288. compatible = "ti,keystone,psc-clock";
  289. clocks = <&clkmodrst0>;
  290. clock-output-names = "timer15";
  291. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  292. reg-names = "control", "domain";
  293. domain-id = <0>;
  294. };
  295. clkuart0: clkuart0@2350000 {
  296. #clock-cells = <0>;
  297. compatible = "ti,keystone,psc-clock";
  298. clocks = <&clkmodrst0>;
  299. clock-output-names = "uart0";
  300. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  301. reg-names = "control", "domain";
  302. domain-id = <0>;
  303. };
  304. clkuart1: clkuart1@2350000 {
  305. #clock-cells = <0>;
  306. compatible = "ti,keystone,psc-clock";
  307. clocks = <&clkmodrst0>;
  308. clock-output-names = "uart1";
  309. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  310. reg-names = "control", "domain";
  311. domain-id = <0>;
  312. };
  313. clkaemif: clkaemif@2350000 {
  314. #clock-cells = <0>;
  315. compatible = "ti,keystone,psc-clock";
  316. clocks = <&clkaemifspi>;
  317. clock-output-names = "aemif";
  318. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  319. reg-names = "control", "domain";
  320. domain-id = <0>;
  321. };
  322. clkusim: clkusim@2350000 {
  323. #clock-cells = <0>;
  324. compatible = "ti,keystone,psc-clock";
  325. clocks = <&clkmodrst0>;
  326. clock-output-names = "usim";
  327. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  328. reg-names = "control", "domain";
  329. domain-id = <0>;
  330. };
  331. clki2c: clki2c@2350000 {
  332. #clock-cells = <0>;
  333. compatible = "ti,keystone,psc-clock";
  334. clocks = <&clkmodrst0>;
  335. clock-output-names = "i2c";
  336. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  337. reg-names = "control", "domain";
  338. domain-id = <0>;
  339. };
  340. clkspi: clkspi@2350000 {
  341. #clock-cells = <0>;
  342. compatible = "ti,keystone,psc-clock";
  343. clocks = <&clkaemifspi>;
  344. clock-output-names = "spi";
  345. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  346. reg-names = "control", "domain";
  347. domain-id = <0>;
  348. };
  349. clkgpio: clkgpio@2350000 {
  350. #clock-cells = <0>;
  351. compatible = "ti,keystone,psc-clock";
  352. clocks = <&clkmodrst0>;
  353. clock-output-names = "gpio";
  354. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  355. reg-names = "control", "domain";
  356. domain-id = <0>;
  357. };
  358. clkkeymgr: clkkeymgr@2350000 {
  359. #clock-cells = <0>;
  360. compatible = "ti,keystone,psc-clock";
  361. clocks = <&clkmodrst0>;
  362. clock-output-names = "keymgr";
  363. reg = <0x02350000 0xb00>, <0x02350000 0x400>;
  364. reg-names = "control", "domain";
  365. domain-id = <0>;
  366. };
  367. /*
  368. * Below are set of fixed, input clocks definitions,
  369. * for which real frequencies have to be defined in board files.
  370. * Those clocks can be used as reference clocks for some HW modules
  371. * (as cpts, for example) by configuring corresponding clock muxes.
  372. */
  373. timi0: timi0 {
  374. #clock-cells = <0>;
  375. compatible = "fixed-clock";
  376. clock-frequency = <0>;
  377. clock-output-names = "timi0";
  378. };
  379. timi1: timi1 {
  380. #clock-cells = <0>;
  381. compatible = "fixed-clock";
  382. clock-frequency = <0>;
  383. clock-output-names = "timi1";
  384. };
  385. tsrefclk: tsrefclk {
  386. #clock-cells = <0>;
  387. compatible = "fixed-clock";
  388. clock-frequency = <0>;
  389. clock-output-names = "tsrefclk";
  390. };
  391. };