stih416-clock.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756
  1. /*
  2. * Copyright (C) 2013 STMicroelectronics R&D Limited
  3. * <stlinux-devel@stlinux.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. */
  9. #include <dt-bindings/clock/stih416-clks.h>
  10. / {
  11. clocks {
  12. #address-cells = <1>;
  13. #size-cells = <1>;
  14. ranges;
  15. /*
  16. * Fixed 30MHz oscillator inputs to SoC
  17. */
  18. clk_sysin: clk-sysin {
  19. #clock-cells = <0>;
  20. compatible = "fixed-clock";
  21. clock-frequency = <30000000>;
  22. };
  23. /*
  24. * ClockGenAs on SASG2
  25. */
  26. clockgen-a@fee62000 {
  27. reg = <0xfee62000 0xb48>;
  28. clk_s_a0_pll: clk-s-a0-pll {
  29. #clock-cells = <1>;
  30. compatible = "st,clkgena-plls-c65";
  31. clocks = <&clk_sysin>;
  32. clock-output-names = "clk-s-a0-pll0-hs",
  33. "clk-s-a0-pll0-ls",
  34. "clk-s-a0-pll1";
  35. };
  36. clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
  37. #clock-cells = <0>;
  38. compatible = "st,clkgena-prediv-c65",
  39. "st,clkgena-prediv";
  40. clocks = <&clk_sysin>;
  41. clock-output-names = "clk-s-a0-osc-prediv";
  42. };
  43. clk_s_a0_hs: clk-s-a0-hs {
  44. #clock-cells = <1>;
  45. compatible = "st,clkgena-divmux-c65-hs",
  46. "st,clkgena-divmux";
  47. clocks = <&clk_s_a0_osc_prediv>,
  48. <&clk_s_a0_pll 0>, /* PLL0 HS */
  49. <&clk_s_a0_pll 2>; /* PLL1 */
  50. clock-output-names = "clk-s-fdma-0",
  51. "clk-s-fdma-1",
  52. ""; /* clk-s-jit-sense */
  53. /* Fourth output unused */
  54. };
  55. clk_s_a0_ls: clk-s-a0-ls {
  56. #clock-cells = <1>;
  57. compatible = "st,clkgena-divmux-c65-ls",
  58. "st,clkgena-divmux";
  59. clocks = <&clk_s_a0_osc_prediv>,
  60. <&clk_s_a0_pll 1>, /* PLL0 LS */
  61. <&clk_s_a0_pll 2>; /* PLL1 */
  62. clock-output-names = "clk-s-icn-reg-0",
  63. "clk-s-icn-if-0",
  64. "clk-s-icn-reg-lp-0",
  65. "clk-s-emiss",
  66. "clk-s-eth1-phy",
  67. "clk-s-mii-ref-out";
  68. /* Remaining outputs unused */
  69. };
  70. };
  71. clockgen-a@fee81000 {
  72. reg = <0xfee81000 0xb48>;
  73. clk_s_a1_pll: clk-s-a1-pll {
  74. #clock-cells = <1>;
  75. compatible = "st,clkgena-plls-c65";
  76. clocks = <&clk_sysin>;
  77. clock-output-names = "clk-s-a1-pll0-hs",
  78. "clk-s-a1-pll0-ls",
  79. "clk-s-a1-pll1";
  80. };
  81. clk_s_a1_osc_prediv: clk-s-a1-osc-prediv {
  82. #clock-cells = <0>;
  83. compatible = "st,clkgena-prediv-c65",
  84. "st,clkgena-prediv";
  85. clocks = <&clk_sysin>;
  86. clock-output-names = "clk-s-a1-osc-prediv";
  87. };
  88. clk_s_a1_hs: clk-s-a1-hs {
  89. #clock-cells = <1>;
  90. compatible = "st,clkgena-divmux-c65-hs",
  91. "st,clkgena-divmux";
  92. clocks = <&clk_s_a1_osc_prediv>,
  93. <&clk_s_a1_pll 0>, /* PLL0 HS */
  94. <&clk_s_a1_pll 2>; /* PLL1 */
  95. clock-output-names = "", /* Reserved */
  96. "", /* Reserved */
  97. "clk-s-stac-phy",
  98. "clk-s-vtac-tx-phy";
  99. };
  100. clk_s_a1_ls: clk-s-a1-ls {
  101. #clock-cells = <1>;
  102. compatible = "st,clkgena-divmux-c65-ls",
  103. "st,clkgena-divmux";
  104. clocks = <&clk_s_a1_osc_prediv>,
  105. <&clk_s_a1_pll 1>, /* PLL0 LS */
  106. <&clk_s_a1_pll 2>; /* PLL1 */
  107. clock-output-names = "clk-s-icn-if-2",
  108. "clk-s-card-mmc-0",
  109. "clk-s-icn-if-1",
  110. "clk-s-gmac0-phy",
  111. "clk-s-nand-ctrl",
  112. "", /* Reserved */
  113. "clk-s-mii0-ref-out",
  114. "clk-s-stac-sys",
  115. "clk-s-card-mmc-1";
  116. /* Remaining outputs unused */
  117. };
  118. };
  119. /*
  120. * ClockGenAs on MPE42
  121. */
  122. clockgen-a@fde12000 {
  123. reg = <0xfde12000 0xb50>;
  124. clk_m_a0_pll0: clk-m-a0-pll0 {
  125. #clock-cells = <1>;
  126. compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
  127. clocks = <&clk_sysin>;
  128. clock-output-names = "clk-m-a0-pll0-phi0",
  129. "clk-m-a0-pll0-phi1",
  130. "clk-m-a0-pll0-phi2",
  131. "clk-m-a0-pll0-phi3";
  132. };
  133. clk_m_a0_pll1: clk-m-a0-pll1 {
  134. #clock-cells = <1>;
  135. compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
  136. clocks = <&clk_sysin>;
  137. clock-output-names = "clk-m-a0-pll1-phi0",
  138. "clk-m-a0-pll1-phi1",
  139. "clk-m-a0-pll1-phi2",
  140. "clk-m-a0-pll1-phi3";
  141. };
  142. clk_m_a0_osc_prediv: clk-m-a0-osc-prediv {
  143. #clock-cells = <0>;
  144. compatible = "st,clkgena-prediv-c32",
  145. "st,clkgena-prediv";
  146. clocks = <&clk_sysin>;
  147. clock-output-names = "clk-m-a0-osc-prediv";
  148. };
  149. clk_m_a0_div0: clk-m-a0-div0 {
  150. #clock-cells = <1>;
  151. compatible = "st,clkgena-divmux-c32-odf0",
  152. "st,clkgena-divmux";
  153. clocks = <&clk_m_a0_osc_prediv>,
  154. <&clk_m_a0_pll0 0>, /* PLL0 PHI0 */
  155. <&clk_m_a0_pll1 0>; /* PLL1 PHI0 */
  156. clock-output-names = "", /* Unused */
  157. "", /* Unused */
  158. "clk-m-fdma-12",
  159. "", /* Unused */
  160. "clk-m-pp-dmu-0",
  161. "clk-m-pp-dmu-1",
  162. "clk-m-icm-lmi",
  163. "clk-m-vid-dmu-0";
  164. };
  165. clk_m_a0_div1: clk-m-a0-div1 {
  166. #clock-cells = <1>;
  167. compatible = "st,clkgena-divmux-c32-odf1",
  168. "st,clkgena-divmux";
  169. clocks = <&clk_m_a0_osc_prediv>,
  170. <&clk_m_a0_pll0 1>, /* PLL0 PHI1 */
  171. <&clk_m_a0_pll1 1>; /* PLL1 PHI1 */
  172. clock-output-names = "clk-m-vid-dmu-1",
  173. "", /* Unused */
  174. "clk-m-a9-ext2f",
  175. "clk-m-st40rt",
  176. "clk-m-st231-dmu-0",
  177. "clk-m-st231-dmu-1",
  178. "clk-m-st231-aud",
  179. "clk-m-st231-gp-0";
  180. };
  181. clk_m_a0_div2: clk-m-a0-div2 {
  182. #clock-cells = <1>;
  183. compatible = "st,clkgena-divmux-c32-odf2",
  184. "st,clkgena-divmux";
  185. clocks = <&clk_m_a0_osc_prediv>,
  186. <&clk_m_a0_pll0 2>, /* PLL0 PHI2 */
  187. <&clk_m_a0_pll1 2>; /* PLL1 PHI2 */
  188. clock-output-names = "clk-m-st231-gp-1",
  189. "clk-m-icn-cpu",
  190. "clk-m-icn-stac",
  191. "clk-m-tx-icn-dmu-0",
  192. "clk-m-tx-icn-dmu-1",
  193. "clk-m-tx-icn-ts",
  194. "clk-m-icn-vdp-0",
  195. "clk-m-icn-vdp-1";
  196. };
  197. clk_m_a0_div3: clk-m-a0-div3 {
  198. #clock-cells = <1>;
  199. compatible = "st,clkgena-divmux-c32-odf3",
  200. "st,clkgena-divmux";
  201. clocks = <&clk_m_a0_osc_prediv>,
  202. <&clk_m_a0_pll0 3>, /* PLL0 PHI3 */
  203. <&clk_m_a0_pll1 3>; /* PLL1 PHI3 */
  204. clock-output-names = "", /* Unused */
  205. "", /* Unused */
  206. "", /* Unused */
  207. "", /* Unused */
  208. "clk-m-icn-vp8",
  209. "", /* Unused */
  210. "clk-m-icn-reg-11",
  211. "clk-m-a9-trace";
  212. };
  213. };
  214. clockgen-a@fd6db000 {
  215. reg = <0xfd6db000 0xb50>;
  216. clk_m_a1_pll0: clk-m-a1-pll0 {
  217. #clock-cells = <1>;
  218. compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
  219. clocks = <&clk_sysin>;
  220. clock-output-names = "clk-m-a1-pll0-phi0",
  221. "clk-m-a1-pll0-phi1",
  222. "clk-m-a1-pll0-phi2",
  223. "clk-m-a1-pll0-phi3";
  224. };
  225. clk_m_a1_pll1: clk-m-a1-pll1 {
  226. #clock-cells = <1>;
  227. compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
  228. clocks = <&clk_sysin>;
  229. clock-output-names = "clk-m-a1-pll1-phi0",
  230. "clk-m-a1-pll1-phi1",
  231. "clk-m-a1-pll1-phi2",
  232. "clk-m-a1-pll1-phi3";
  233. };
  234. clk_m_a1_osc_prediv: clk-m-a1-osc-prediv {
  235. #clock-cells = <0>;
  236. compatible = "st,clkgena-prediv-c32",
  237. "st,clkgena-prediv";
  238. clocks = <&clk_sysin>;
  239. clock-output-names = "clk-m-a1-osc-prediv";
  240. };
  241. clk_m_a1_div0: clk-m-a1-div0 {
  242. #clock-cells = <1>;
  243. compatible = "st,clkgena-divmux-c32-odf0",
  244. "st,clkgena-divmux";
  245. clocks = <&clk_m_a1_osc_prediv>,
  246. <&clk_m_a1_pll0 0>, /* PLL0 PHI0 */
  247. <&clk_m_a1_pll1 0>; /* PLL1 PHI0 */
  248. clock-output-names = "", /* Unused */
  249. "clk-m-fdma-10",
  250. "clk-m-fdma-11",
  251. "clk-m-hva-alt",
  252. "clk-m-proc-sc",
  253. "clk-m-tp",
  254. "clk-m-rx-icn-dmu-0",
  255. "clk-m-rx-icn-dmu-1";
  256. };
  257. clk_m_a1_div1: clk-m-a1-div1 {
  258. #clock-cells = <1>;
  259. compatible = "st,clkgena-divmux-c32-odf1",
  260. "st,clkgena-divmux";
  261. clocks = <&clk_m_a1_osc_prediv>,
  262. <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
  263. <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
  264. clock-output-names = "clk-m-rx-icn-ts",
  265. "clk-m-rx-icn-vdp-0",
  266. "", /* Unused */
  267. "clk-m-prv-t1-bus",
  268. "clk-m-icn-reg-12",
  269. "clk-m-icn-reg-10",
  270. "", /* Unused */
  271. "clk-m-icn-st231";
  272. };
  273. clk_m_a1_div2: clk-m-a1-div2 {
  274. #clock-cells = <1>;
  275. compatible = "st,clkgena-divmux-c32-odf2",
  276. "st,clkgena-divmux";
  277. clocks = <&clk_m_a1_osc_prediv>,
  278. <&clk_m_a1_pll0 2>, /* PLL0 PHI2 */
  279. <&clk_m_a1_pll1 2>; /* PLL1 PHI2 */
  280. clock-output-names = "clk-m-fvdp-proc-alt",
  281. "clk-m-icn-reg-13",
  282. "clk-m-tx-icn-gpu",
  283. "clk-m-rx-icn-gpu",
  284. "", /* Unused */
  285. "", /* Unused */
  286. "", /* clk-m-apb-pm-12 */
  287. ""; /* Unused */
  288. };
  289. clk_m_a1_div3: clk-m-a1-div3 {
  290. #clock-cells = <1>;
  291. compatible = "st,clkgena-divmux-c32-odf3",
  292. "st,clkgena-divmux";
  293. clocks = <&clk_m_a1_osc_prediv>,
  294. <&clk_m_a1_pll0 3>, /* PLL0 PHI3 */
  295. <&clk_m_a1_pll1 3>; /* PLL1 PHI3 */
  296. clock-output-names = "", /* Unused */
  297. "", /* Unused */
  298. "", /* Unused */
  299. "", /* Unused */
  300. "", /* Unused */
  301. "", /* Unused */
  302. "", /* Unused */
  303. ""; /* clk-m-gpu-alt */
  304. };
  305. };
  306. clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2 {
  307. #clock-cells = <0>;
  308. compatible = "fixed-factor-clock";
  309. clocks = <&clk_m_a0_div1 2>;
  310. clock-div = <2>;
  311. clock-mult = <1>;
  312. };
  313. clockgen-a@fd345000 {
  314. reg = <0xfd345000 0xb50>;
  315. clk_m_a2_pll0: clk-m-a2-pll0 {
  316. #clock-cells = <1>;
  317. compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
  318. clocks = <&clk_sysin>;
  319. clock-output-names = "clk-m-a2-pll0-phi0",
  320. "clk-m-a2-pll0-phi1",
  321. "clk-m-a2-pll0-phi2",
  322. "clk-m-a2-pll0-phi3";
  323. };
  324. clk_m_a2_pll1: clk-m-a2-pll1 {
  325. #clock-cells = <1>;
  326. compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
  327. clocks = <&clk_sysin>;
  328. clock-output-names = "clk-m-a2-pll1-phi0",
  329. "clk-m-a2-pll1-phi1",
  330. "clk-m-a2-pll1-phi2",
  331. "clk-m-a2-pll1-phi3";
  332. };
  333. clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
  334. #clock-cells = <0>;
  335. compatible = "st,clkgena-prediv-c32",
  336. "st,clkgena-prediv";
  337. clocks = <&clk_sysin>;
  338. clock-output-names = "clk-m-a2-osc-prediv";
  339. };
  340. clk_m_a2_div0: clk-m-a2-div0 {
  341. #clock-cells = <1>;
  342. compatible = "st,clkgena-divmux-c32-odf0",
  343. "st,clkgena-divmux";
  344. clocks = <&clk_m_a2_osc_prediv>,
  345. <&clk_m_a2_pll0 0>, /* PLL0 PHI0 */
  346. <&clk_m_a2_pll1 0>; /* PLL1 PHI0 */
  347. clock-output-names = "clk-m-vtac-main-phy",
  348. "clk-m-vtac-aux-phy",
  349. "clk-m-stac-phy",
  350. "clk-m-stac-sys",
  351. "", /* clk-m-mpestac-pg */
  352. "", /* clk-m-mpestac-wc */
  353. "", /* clk-m-mpevtacaux-pg*/
  354. ""; /* clk-m-mpevtacmain-pg*/
  355. };
  356. clk_m_a2_div1: clk-m-a2-div1 {
  357. #clock-cells = <1>;
  358. compatible = "st,clkgena-divmux-c32-odf1",
  359. "st,clkgena-divmux";
  360. clocks = <&clk_m_a2_osc_prediv>,
  361. <&clk_m_a2_pll0 1>, /* PLL0 PHI1 */
  362. <&clk_m_a2_pll1 1>; /* PLL1 PHI1 */
  363. clock-output-names = "", /* clk-m-mpevtacrx0-wc */
  364. "", /* clk-m-mpevtacrx1-wc */
  365. "clk-m-compo-main",
  366. "clk-m-compo-aux",
  367. "clk-m-bdisp-0",
  368. "clk-m-bdisp-1",
  369. "clk-m-icn-bdisp",
  370. "clk-m-icn-compo";
  371. };
  372. clk_m_a2_div2: clk-m-a2-div2 {
  373. #clock-cells = <1>;
  374. compatible = "st,clkgena-divmux-c32-odf2",
  375. "st,clkgena-divmux";
  376. clocks = <&clk_m_a2_osc_prediv>,
  377. <&clk_m_a2_pll0 2>, /* PLL0 PHI2 */
  378. <&clk_m_a2_pll1 2>; /* PLL1 PHI2 */
  379. clock-output-names = "clk-m-icn-vdp-2",
  380. "", /* Unused */
  381. "clk-m-icn-reg-14",
  382. "clk-m-mdtp",
  383. "clk-m-jpegdec",
  384. "", /* Unused */
  385. "clk-m-dcephy-impctrl",
  386. ""; /* Unused */
  387. };
  388. clk_m_a2_div3: clk-m-a2-div3 {
  389. #clock-cells = <1>;
  390. compatible = "st,clkgena-divmux-c32-odf3",
  391. "st,clkgena-divmux";
  392. clocks = <&clk_m_a2_osc_prediv>,
  393. <&clk_m_a2_pll0 3>, /* PLL0 PHI3 */
  394. <&clk_m_a2_pll1 3>; /* PLL1 PHI3 */
  395. clock-output-names = "", /* Unused */
  396. ""; /* clk-m-apb-pm-11 */
  397. /* Remaining outputs unused */
  398. };
  399. };
  400. /*
  401. * A9 PLL
  402. */
  403. clockgen-a9@fdde08b0 {
  404. reg = <0xfdde08b0 0x70>;
  405. clockgen_a9_pll: clockgen-a9-pll {
  406. #clock-cells = <1>;
  407. compatible = "st,stih416-plls-c32-a9", "st,clkgen-plls-c32";
  408. clocks = <&clk_sysin>;
  409. clock-output-names = "clockgen-a9-pll-odf";
  410. };
  411. };
  412. /*
  413. * ARM CPU related clocks
  414. */
  415. clk_m_a9: clk-m-a9@fdde08ac {
  416. #clock-cells = <0>;
  417. compatible = "st,stih416-clkgen-a9-mux", "st,clkgen-mux";
  418. reg = <0xfdde08ac 0x4>;
  419. clocks = <&clockgen_a9_pll 0>,
  420. <&clockgen_a9_pll 0>,
  421. <&clk_m_a0_div1 2>,
  422. <&clk_m_a9_ext2f_div2>;
  423. };
  424. /*
  425. * ARM Peripheral clock for timers
  426. */
  427. arm_periph_clk: clk-m-a9-periphs {
  428. #clock-cells = <0>;
  429. compatible = "fixed-factor-clock";
  430. clocks = <&clk_m_a9>;
  431. clock-div = <2>;
  432. clock-mult = <1>;
  433. };
  434. /*
  435. * Frequency synthesizers on the SASG2
  436. */
  437. clockgen_b0: clockgen-b0@fee108b4 {
  438. #clock-cells = <1>;
  439. compatible = "st,stih416-quadfs216", "st,quadfs";
  440. reg = <0xfee108b4 0x44>;
  441. clocks = <&clk_sysin>;
  442. clock-output-names = "clk-s-usb48",
  443. "clk-s-dss",
  444. "clk-s-stfe-frc-2",
  445. "clk-s-thsens-scard";
  446. };
  447. clockgen_b1: clockgen-b1@fe8308c4 {
  448. #clock-cells = <1>;
  449. compatible = "st,stih416-quadfs216", "st,quadfs";
  450. reg = <0xfe8308c4 0x44>;
  451. clocks = <&clk_sysin>;
  452. clock-output-names = "clk-s-pcm-0",
  453. "clk-s-pcm-1",
  454. "clk-s-pcm-2",
  455. "clk-s-pcm-3";
  456. };
  457. clockgen_c: clockgen-c@fe8307d0 {
  458. #clock-cells = <1>;
  459. compatible = "st,stih416-quadfs432", "st,quadfs";
  460. reg = <0xfe8307d0 0x44>;
  461. clocks = <&clk_sysin>;
  462. clock-output-names = "clk-s-c-fs0-ch0",
  463. "clk-s-c-vcc-sd",
  464. "clk-s-c-fs0-ch2";
  465. };
  466. clk_s_vcc_hd: clk-s-vcc-hd@fe8308b8 {
  467. #clock-cells = <0>;
  468. compatible = "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux";
  469. reg = <0xfe8308b8 0x4>; /* SYSCFG2558 */
  470. clocks = <&clk_sysin>,
  471. <&clockgen_c 0>;
  472. };
  473. /*
  474. * Add a dummy clock for the HDMI PHY for the VCC input mux
  475. */
  476. clk_s_tmds_fromphy: clk-s-tmds-fromphy {
  477. #clock-cells = <0>;
  478. compatible = "fixed-clock";
  479. clock-frequency = <0>;
  480. };
  481. clockgen_c_vcc: clockgen-c-vcc@fe8308ac {
  482. #clock-cells = <1>;
  483. compatible = "st,stih416-clkgenc", "st,clkgen-vcc";
  484. reg = <0xfe8308ac 0xc>; /* SYSCFG2555,2556,2557 */
  485. clocks = <&clk_s_vcc_hd>,
  486. <&clockgen_c 1>,
  487. <&clk_s_tmds_fromphy>,
  488. <&clockgen_c 2>;
  489. clock-output-names = "clk-s-pix-hdmi",
  490. "clk-s-pix-dvo",
  491. "clk-s-out-dvo",
  492. "clk-s-pix-hd",
  493. "clk-s-hddac",
  494. "clk-s-denc",
  495. "clk-s-sddac",
  496. "clk-s-pix-main",
  497. "clk-s-pix-aux",
  498. "clk-s-stfe-frc-0",
  499. "clk-s-ref-mcru",
  500. "clk-s-slave-mcru",
  501. "clk-s-tmds-hdmi",
  502. "clk-s-hdmi-reject-pll",
  503. "clk-s-thsens";
  504. };
  505. clockgen_d: clockgen-d@fee107e0 {
  506. #clock-cells = <1>;
  507. compatible = "st,stih416-quadfs216", "st,quadfs";
  508. reg = <0xfee107e0 0x44>;
  509. clocks = <&clk_sysin>;
  510. clock-output-names = "clk-s-ccsc",
  511. "clk-s-stfe-frc-1",
  512. "clk-s-tsout-1",
  513. "clk-s-mchi";
  514. };
  515. /*
  516. * Frequency synthesizers on the MPE42
  517. */
  518. clockgen_e: clockgen-e@fd3208bc {
  519. #clock-cells = <1>;
  520. compatible = "st,stih416-quadfs660-E", "st,quadfs";
  521. reg = <0xfd3208bc 0xb0>;
  522. clocks = <&clk_sysin>;
  523. clock-output-names = "clk-m-pix-mdtp-0",
  524. "clk-m-pix-mdtp-1",
  525. "clk-m-pix-mdtp-2",
  526. "clk-m-mpelpc";
  527. };
  528. clockgen_f: clockgen-f@fd320878 {
  529. #clock-cells = <1>;
  530. compatible = "st,stih416-quadfs660-F", "st,quadfs";
  531. reg = <0xfd320878 0xf0>;
  532. clocks = <&clk_sysin>;
  533. clock-output-names = "clk-m-main-vidfs",
  534. "clk-m-hva-fs",
  535. "clk-m-fvdp-vcpu",
  536. "clk-m-fvdp-proc-fs";
  537. };
  538. clk_m_fvdp_proc: clk-m-fvdp-proc@fd320910 {
  539. #clock-cells = <0>;
  540. compatible = "st,stih416-clkgenf-vcc-fvdp", "st,clkgen-mux";
  541. reg = <0xfd320910 0x4>; /* SYSCFG8580 */
  542. clocks = <&clk_m_a1_div2 0>,
  543. <&clockgen_f 3>;
  544. };
  545. clk_m_hva: clk-m-hva@fd690868 {
  546. #clock-cells = <0>;
  547. compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";
  548. reg = <0xfd690868 0x4>; /* SYSCFG9538 */
  549. clocks = <&clockgen_f 1>,
  550. <&clk_m_a1_div0 3>;
  551. };
  552. clk_m_f_vcc_hd: clk-m-f-vcc-hd@fd32086c {
  553. #clock-cells = <0>;
  554. compatible = "st,stih416-clkgenf-vcc-hd", "st,clkgen-mux";
  555. reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
  556. clocks = <&clockgen_c_vcc 7>,
  557. <&clockgen_f 0>;
  558. };
  559. clk_m_f_vcc_sd: clk-m-f-vcc-sd@fd32086c {
  560. #clock-cells = <0>;
  561. compatible = "st,stih416-clkgenf-vcc-sd", "st,clkgen-mux";
  562. reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
  563. clocks = <&clockgen_c_vcc 8>,
  564. <&clockgen_f 1>;
  565. };
  566. /*
  567. * Add a dummy clock for the HDMIRx external signal clock
  568. */
  569. clk_m_pix_hdmirx_sas: clk-m-pix-hdmirx-sas {
  570. #clock-cells = <0>;
  571. compatible = "fixed-clock";
  572. clock-frequency = <0>;
  573. };
  574. clockgen_f_vcc: clockgen-f-vcc@fd32086c {
  575. #clock-cells = <1>;
  576. compatible = "st,stih416-clkgenf", "st,clkgen-vcc";
  577. reg = <0xfd32086c 0xc>; /* SYSCFG8539,8540,8541 */
  578. clocks = <&clk_m_f_vcc_hd>,
  579. <&clk_m_f_vcc_sd>,
  580. <&clockgen_f 0>,
  581. <&clk_m_pix_hdmirx_sas>;
  582. clock-output-names = "clk-m-pix-main-pipe",
  583. "clk-m-pix-aux-pipe",
  584. "clk-m-pix-main-cru",
  585. "clk-m-pix-aux-cru",
  586. "clk-m-xfer-be-compo",
  587. "clk-m-xfer-pip-compo",
  588. "clk-m-xfer-aux-compo",
  589. "clk-m-vsens",
  590. "clk-m-pix-hdmirx-0",
  591. "clk-m-pix-hdmirx-1";
  592. };
  593. /*
  594. * DDR PLL
  595. */
  596. clockgen-ddr@0xfdde07d8 {
  597. reg = <0xfdde07d8 0x110>;
  598. clockgen_ddr_pll: clockgen-ddr-pll {
  599. #clock-cells = <1>;
  600. compatible = "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32";
  601. clocks = <&clk_sysin>;
  602. clock-output-names = "clockgen-ddr0",
  603. "clockgen-ddr1";
  604. };
  605. };
  606. /*
  607. * GPU PLL
  608. */
  609. clockgen-gpu@fd68ff00 {
  610. reg = <0xfd68ff00 0x910>;
  611. clockgen_gpu_pll: clockgen-gpu-pll {
  612. #clock-cells = <1>;
  613. compatible = "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32";
  614. clocks = <&clk_sysin>;
  615. clock-output-names = "clockgen-gpu-pll";
  616. };
  617. };
  618. };
  619. };