clk-7xx-compat.c 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823
  1. /*
  2. * DRA7 Clock init
  3. *
  4. * Copyright (C) 2013 Texas Instruments, Inc.
  5. *
  6. * Tero Kristo (t-kristo@ti.com)
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. */
  12. #include <linux/kernel.h>
  13. #include <linux/list.h>
  14. #include <linux/clk.h>
  15. #include <linux/clkdev.h>
  16. #include <linux/clk/ti.h>
  17. #include <dt-bindings/clock/dra7.h>
  18. #include "clock.h"
  19. #define DRA7_DPLL_GMAC_DEFFREQ 1000000000
  20. #define DRA7_DPLL_USB_DEFFREQ 960000000
  21. static const struct omap_clkctrl_reg_data dra7_mpu_clkctrl_regs[] __initconst = {
  22. { DRA7_MPU_CLKCTRL, NULL, 0, "dpll_mpu_m2_ck" },
  23. { 0 },
  24. };
  25. static const char * const dra7_mcasp1_aux_gfclk_mux_parents[] __initconst = {
  26. "per_abe_x1_gfclk2_div",
  27. "video1_clk2_div",
  28. "video2_clk2_div",
  29. "hdmi_clk2_div",
  30. NULL,
  31. };
  32. static const char * const dra7_mcasp1_ahclkx_mux_parents[] __initconst = {
  33. "abe_24m_fclk",
  34. "abe_sys_clk_div",
  35. "func_24m_clk",
  36. "atl_clkin3_ck",
  37. "atl_clkin2_ck",
  38. "atl_clkin1_ck",
  39. "atl_clkin0_ck",
  40. "sys_clkin2",
  41. "ref_clkin0_ck",
  42. "ref_clkin1_ck",
  43. "ref_clkin2_ck",
  44. "ref_clkin3_ck",
  45. "mlb_clk",
  46. "mlbp_clk",
  47. NULL,
  48. };
  49. static const struct omap_clkctrl_bit_data dra7_mcasp1_bit_data[] __initconst = {
  50. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  51. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  52. { 28, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  53. { 0 },
  54. };
  55. static const char * const dra7_timer5_gfclk_mux_parents[] __initconst = {
  56. "timer_sys_clk_div",
  57. "sys_32k_ck",
  58. "sys_clkin2",
  59. "ref_clkin0_ck",
  60. "ref_clkin1_ck",
  61. "ref_clkin2_ck",
  62. "ref_clkin3_ck",
  63. "abe_giclk_div",
  64. "video1_div_clk",
  65. "video2_div_clk",
  66. "hdmi_div_clk",
  67. "clkoutmux0_clk_mux",
  68. NULL,
  69. };
  70. static const struct omap_clkctrl_bit_data dra7_timer5_bit_data[] __initconst = {
  71. { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL },
  72. { 0 },
  73. };
  74. static const struct omap_clkctrl_bit_data dra7_timer6_bit_data[] __initconst = {
  75. { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL },
  76. { 0 },
  77. };
  78. static const struct omap_clkctrl_bit_data dra7_timer7_bit_data[] __initconst = {
  79. { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL },
  80. { 0 },
  81. };
  82. static const struct omap_clkctrl_bit_data dra7_timer8_bit_data[] __initconst = {
  83. { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL },
  84. { 0 },
  85. };
  86. static const char * const dra7_uart6_gfclk_mux_parents[] __initconst = {
  87. "func_48m_fclk",
  88. "dpll_per_m2x2_ck",
  89. NULL,
  90. };
  91. static const struct omap_clkctrl_bit_data dra7_uart6_bit_data[] __initconst = {
  92. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  93. { 0 },
  94. };
  95. static const struct omap_clkctrl_reg_data dra7_ipu_clkctrl_regs[] __initconst = {
  96. { DRA7_MCASP1_CLKCTRL, dra7_mcasp1_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0010:22" },
  97. { DRA7_TIMER5_CLKCTRL, dra7_timer5_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0018:24" },
  98. { DRA7_TIMER6_CLKCTRL, dra7_timer6_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0020:24" },
  99. { DRA7_TIMER7_CLKCTRL, dra7_timer7_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0028:24" },
  100. { DRA7_TIMER8_CLKCTRL, dra7_timer8_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0030:24" },
  101. { DRA7_I2C5_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" },
  102. { DRA7_UART6_CLKCTRL, dra7_uart6_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0040:24" },
  103. { 0 },
  104. };
  105. static const struct omap_clkctrl_reg_data dra7_rtc_clkctrl_regs[] __initconst = {
  106. { DRA7_RTCSS_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" },
  107. { 0 },
  108. };
  109. static const struct omap_clkctrl_reg_data dra7_coreaon_clkctrl_regs[] __initconst = {
  110. { DRA7_SMARTREFLEX_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "wkupaon_iclk_mux" },
  111. { DRA7_SMARTREFLEX_CORE_CLKCTRL, NULL, CLKF_SW_SUP, "wkupaon_iclk_mux" },
  112. { 0 },
  113. };
  114. static const struct omap_clkctrl_reg_data dra7_l3main1_clkctrl_regs[] __initconst = {
  115. { DRA7_L3_MAIN_1_CLKCTRL, NULL, 0, "l3_iclk_div" },
  116. { DRA7_GPMC_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" },
  117. { DRA7_TPCC_CLKCTRL, NULL, 0, "l3_iclk_div" },
  118. { DRA7_TPTC0_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" },
  119. { DRA7_TPTC1_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" },
  120. { DRA7_VCP1_CLKCTRL, NULL, 0, "l3_iclk_div" },
  121. { DRA7_VCP2_CLKCTRL, NULL, 0, "l3_iclk_div" },
  122. { 0 },
  123. };
  124. static const struct omap_clkctrl_reg_data dra7_dma_clkctrl_regs[] __initconst = {
  125. { DRA7_DMA_SYSTEM_CLKCTRL, NULL, 0, "l3_iclk_div" },
  126. { 0 },
  127. };
  128. static const struct omap_clkctrl_reg_data dra7_emif_clkctrl_regs[] __initconst = {
  129. { DRA7_DMM_CLKCTRL, NULL, 0, "l3_iclk_div" },
  130. { 0 },
  131. };
  132. static const char * const dra7_atl_dpll_clk_mux_parents[] __initconst = {
  133. "sys_32k_ck",
  134. "video1_clkin_ck",
  135. "video2_clkin_ck",
  136. "hdmi_clkin_ck",
  137. NULL,
  138. };
  139. static const char * const dra7_atl_gfclk_mux_parents[] __initconst = {
  140. "l3_iclk_div",
  141. "dpll_abe_m2_ck",
  142. "atl_cm:clk:0000:24",
  143. NULL,
  144. };
  145. static const struct omap_clkctrl_bit_data dra7_atl_bit_data[] __initconst = {
  146. { 24, TI_CLK_MUX, dra7_atl_dpll_clk_mux_parents, NULL },
  147. { 26, TI_CLK_MUX, dra7_atl_gfclk_mux_parents, NULL },
  148. { 0 },
  149. };
  150. static const struct omap_clkctrl_reg_data dra7_atl_clkctrl_regs[] __initconst = {
  151. { DRA7_ATL_CLKCTRL, dra7_atl_bit_data, CLKF_SW_SUP, "atl_cm:clk:0000:26" },
  152. { 0 },
  153. };
  154. static const struct omap_clkctrl_reg_data dra7_l4cfg_clkctrl_regs[] __initconst = {
  155. { DRA7_L4_CFG_CLKCTRL, NULL, 0, "l3_iclk_div" },
  156. { DRA7_SPINLOCK_CLKCTRL, NULL, 0, "l3_iclk_div" },
  157. { DRA7_MAILBOX1_CLKCTRL, NULL, 0, "l3_iclk_div" },
  158. { DRA7_MAILBOX2_CLKCTRL, NULL, 0, "l3_iclk_div" },
  159. { DRA7_MAILBOX3_CLKCTRL, NULL, 0, "l3_iclk_div" },
  160. { DRA7_MAILBOX4_CLKCTRL, NULL, 0, "l3_iclk_div" },
  161. { DRA7_MAILBOX5_CLKCTRL, NULL, 0, "l3_iclk_div" },
  162. { DRA7_MAILBOX6_CLKCTRL, NULL, 0, "l3_iclk_div" },
  163. { DRA7_MAILBOX7_CLKCTRL, NULL, 0, "l3_iclk_div" },
  164. { DRA7_MAILBOX8_CLKCTRL, NULL, 0, "l3_iclk_div" },
  165. { DRA7_MAILBOX9_CLKCTRL, NULL, 0, "l3_iclk_div" },
  166. { DRA7_MAILBOX10_CLKCTRL, NULL, 0, "l3_iclk_div" },
  167. { DRA7_MAILBOX11_CLKCTRL, NULL, 0, "l3_iclk_div" },
  168. { DRA7_MAILBOX12_CLKCTRL, NULL, 0, "l3_iclk_div" },
  169. { DRA7_MAILBOX13_CLKCTRL, NULL, 0, "l3_iclk_div" },
  170. { 0 },
  171. };
  172. static const struct omap_clkctrl_reg_data dra7_l3instr_clkctrl_regs[] __initconst = {
  173. { DRA7_L3_MAIN_2_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" },
  174. { DRA7_L3_INSTR_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" },
  175. { 0 },
  176. };
  177. static const char * const dra7_dss_dss_clk_parents[] __initconst = {
  178. "dpll_per_h12x2_ck",
  179. NULL,
  180. };
  181. static const char * const dra7_dss_48mhz_clk_parents[] __initconst = {
  182. "func_48m_fclk",
  183. NULL,
  184. };
  185. static const char * const dra7_dss_hdmi_clk_parents[] __initconst = {
  186. "hdmi_dpll_clk_mux",
  187. NULL,
  188. };
  189. static const char * const dra7_dss_32khz_clk_parents[] __initconst = {
  190. "sys_32k_ck",
  191. NULL,
  192. };
  193. static const char * const dra7_dss_video1_clk_parents[] __initconst = {
  194. "video1_dpll_clk_mux",
  195. NULL,
  196. };
  197. static const char * const dra7_dss_video2_clk_parents[] __initconst = {
  198. "video2_dpll_clk_mux",
  199. NULL,
  200. };
  201. static const struct omap_clkctrl_bit_data dra7_dss_core_bit_data[] __initconst = {
  202. { 8, TI_CLK_GATE, dra7_dss_dss_clk_parents, NULL },
  203. { 9, TI_CLK_GATE, dra7_dss_48mhz_clk_parents, NULL },
  204. { 10, TI_CLK_GATE, dra7_dss_hdmi_clk_parents, NULL },
  205. { 11, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  206. { 12, TI_CLK_GATE, dra7_dss_video1_clk_parents, NULL },
  207. { 13, TI_CLK_GATE, dra7_dss_video2_clk_parents, NULL },
  208. { 0 },
  209. };
  210. static const struct omap_clkctrl_reg_data dra7_dss_clkctrl_regs[] __initconst = {
  211. { DRA7_DSS_CORE_CLKCTRL, dra7_dss_core_bit_data, CLKF_SW_SUP, "dss_cm:clk:0000:8" },
  212. { DRA7_BB2D_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_core_h24x2_ck" },
  213. { 0 },
  214. };
  215. static const char * const dra7_mmc1_fclk_mux_parents[] __initconst = {
  216. "func_128m_clk",
  217. "dpll_per_m2x2_ck",
  218. NULL,
  219. };
  220. static const char * const dra7_mmc1_fclk_div_parents[] __initconst = {
  221. "l3init_cm:clk:0008:24",
  222. NULL,
  223. };
  224. static const struct omap_clkctrl_div_data dra7_mmc1_fclk_div_data __initconst = {
  225. .max_div = 4,
  226. .flags = CLK_DIVIDER_POWER_OF_TWO,
  227. };
  228. static const struct omap_clkctrl_bit_data dra7_mmc1_bit_data[] __initconst = {
  229. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  230. { 24, TI_CLK_MUX, dra7_mmc1_fclk_mux_parents, NULL },
  231. { 25, TI_CLK_DIVIDER, dra7_mmc1_fclk_div_parents, &dra7_mmc1_fclk_div_data },
  232. { 0 },
  233. };
  234. static const char * const dra7_mmc2_fclk_div_parents[] __initconst = {
  235. "l3init_cm:clk:0010:24",
  236. NULL,
  237. };
  238. static const struct omap_clkctrl_div_data dra7_mmc2_fclk_div_data __initconst = {
  239. .max_div = 4,
  240. .flags = CLK_DIVIDER_POWER_OF_TWO,
  241. };
  242. static const struct omap_clkctrl_bit_data dra7_mmc2_bit_data[] __initconst = {
  243. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  244. { 24, TI_CLK_MUX, dra7_mmc1_fclk_mux_parents, NULL },
  245. { 25, TI_CLK_DIVIDER, dra7_mmc2_fclk_div_parents, &dra7_mmc2_fclk_div_data },
  246. { 0 },
  247. };
  248. static const char * const dra7_usb_otg_ss2_refclk960m_parents[] __initconst = {
  249. "l3init_960m_gfclk",
  250. NULL,
  251. };
  252. static const struct omap_clkctrl_bit_data dra7_usb_otg_ss2_bit_data[] __initconst = {
  253. { 8, TI_CLK_GATE, dra7_usb_otg_ss2_refclk960m_parents, NULL },
  254. { 0 },
  255. };
  256. static const char * const dra7_sata_ref_clk_parents[] __initconst = {
  257. "sys_clkin1",
  258. NULL,
  259. };
  260. static const struct omap_clkctrl_bit_data dra7_sata_bit_data[] __initconst = {
  261. { 8, TI_CLK_GATE, dra7_sata_ref_clk_parents, NULL },
  262. { 0 },
  263. };
  264. static const char * const dra7_optfclk_pciephy1_clk_parents[] __initconst = {
  265. "apll_pcie_ck",
  266. NULL,
  267. };
  268. static const char * const dra7_optfclk_pciephy1_div_clk_parents[] __initconst = {
  269. "optfclk_pciephy_div",
  270. NULL,
  271. };
  272. static const struct omap_clkctrl_bit_data dra7_pcie1_bit_data[] __initconst = {
  273. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  274. { 9, TI_CLK_GATE, dra7_optfclk_pciephy1_clk_parents, NULL },
  275. { 10, TI_CLK_GATE, dra7_optfclk_pciephy1_div_clk_parents, NULL },
  276. { 0 },
  277. };
  278. static const struct omap_clkctrl_bit_data dra7_pcie2_bit_data[] __initconst = {
  279. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  280. { 9, TI_CLK_GATE, dra7_optfclk_pciephy1_clk_parents, NULL },
  281. { 10, TI_CLK_GATE, dra7_optfclk_pciephy1_div_clk_parents, NULL },
  282. { 0 },
  283. };
  284. static const char * const dra7_rmii_50mhz_clk_mux_parents[] __initconst = {
  285. "dpll_gmac_h11x2_ck",
  286. "rmii_clk_ck",
  287. NULL,
  288. };
  289. static const char * const dra7_gmac_rft_clk_mux_parents[] __initconst = {
  290. "video1_clkin_ck",
  291. "video2_clkin_ck",
  292. "dpll_abe_m2_ck",
  293. "hdmi_clkin_ck",
  294. "l3_iclk_div",
  295. NULL,
  296. };
  297. static const struct omap_clkctrl_bit_data dra7_gmac_bit_data[] __initconst = {
  298. { 24, TI_CLK_MUX, dra7_rmii_50mhz_clk_mux_parents, NULL },
  299. { 25, TI_CLK_MUX, dra7_gmac_rft_clk_mux_parents, NULL },
  300. { 0 },
  301. };
  302. static const struct omap_clkctrl_bit_data dra7_usb_otg_ss1_bit_data[] __initconst = {
  303. { 8, TI_CLK_GATE, dra7_usb_otg_ss2_refclk960m_parents, NULL },
  304. { 0 },
  305. };
  306. static const struct omap_clkctrl_reg_data dra7_l3init_clkctrl_regs[] __initconst = {
  307. { DRA7_MMC1_CLKCTRL, dra7_mmc1_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0008:25" },
  308. { DRA7_MMC2_CLKCTRL, dra7_mmc2_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0010:25" },
  309. { DRA7_USB_OTG_SS2_CLKCTRL, dra7_usb_otg_ss2_bit_data, CLKF_HW_SUP, "dpll_core_h13x2_ck" },
  310. { DRA7_USB_OTG_SS3_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h13x2_ck" },
  311. { DRA7_USB_OTG_SS4_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h13x2_ck" },
  312. { DRA7_SATA_CLKCTRL, dra7_sata_bit_data, CLKF_SW_SUP, "func_48m_fclk" },
  313. { DRA7_PCIE1_CLKCTRL, dra7_pcie1_bit_data, CLKF_SW_SUP, "l4_root_clk_div", "pcie_clkdm" },
  314. { DRA7_PCIE2_CLKCTRL, dra7_pcie2_bit_data, CLKF_SW_SUP, "l4_root_clk_div", "pcie_clkdm" },
  315. { DRA7_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "dpll_gmac_ck", "gmac_clkdm" },
  316. { DRA7_OCP2SCP1_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" },
  317. { DRA7_OCP2SCP3_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" },
  318. { DRA7_USB_OTG_SS1_CLKCTRL, dra7_usb_otg_ss1_bit_data, CLKF_HW_SUP, "dpll_core_h13x2_ck" },
  319. { 0 },
  320. };
  321. static const char * const dra7_timer10_gfclk_mux_parents[] __initconst = {
  322. "timer_sys_clk_div",
  323. "sys_32k_ck",
  324. "sys_clkin2",
  325. "ref_clkin0_ck",
  326. "ref_clkin1_ck",
  327. "ref_clkin2_ck",
  328. "ref_clkin3_ck",
  329. "abe_giclk_div",
  330. "video1_div_clk",
  331. "video2_div_clk",
  332. "hdmi_div_clk",
  333. NULL,
  334. };
  335. static const struct omap_clkctrl_bit_data dra7_timer10_bit_data[] __initconst = {
  336. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  337. { 0 },
  338. };
  339. static const struct omap_clkctrl_bit_data dra7_timer11_bit_data[] __initconst = {
  340. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  341. { 0 },
  342. };
  343. static const struct omap_clkctrl_bit_data dra7_timer2_bit_data[] __initconst = {
  344. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  345. { 0 },
  346. };
  347. static const struct omap_clkctrl_bit_data dra7_timer3_bit_data[] __initconst = {
  348. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  349. { 0 },
  350. };
  351. static const struct omap_clkctrl_bit_data dra7_timer4_bit_data[] __initconst = {
  352. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  353. { 0 },
  354. };
  355. static const struct omap_clkctrl_bit_data dra7_timer9_bit_data[] __initconst = {
  356. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  357. { 0 },
  358. };
  359. static const struct omap_clkctrl_bit_data dra7_gpio2_bit_data[] __initconst = {
  360. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  361. { 0 },
  362. };
  363. static const struct omap_clkctrl_bit_data dra7_gpio3_bit_data[] __initconst = {
  364. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  365. { 0 },
  366. };
  367. static const struct omap_clkctrl_bit_data dra7_gpio4_bit_data[] __initconst = {
  368. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  369. { 0 },
  370. };
  371. static const struct omap_clkctrl_bit_data dra7_gpio5_bit_data[] __initconst = {
  372. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  373. { 0 },
  374. };
  375. static const struct omap_clkctrl_bit_data dra7_gpio6_bit_data[] __initconst = {
  376. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  377. { 0 },
  378. };
  379. static const struct omap_clkctrl_bit_data dra7_timer13_bit_data[] __initconst = {
  380. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  381. { 0 },
  382. };
  383. static const struct omap_clkctrl_bit_data dra7_timer14_bit_data[] __initconst = {
  384. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  385. { 0 },
  386. };
  387. static const struct omap_clkctrl_bit_data dra7_timer15_bit_data[] __initconst = {
  388. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  389. { 0 },
  390. };
  391. static const struct omap_clkctrl_bit_data dra7_gpio7_bit_data[] __initconst = {
  392. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  393. { 0 },
  394. };
  395. static const struct omap_clkctrl_bit_data dra7_gpio8_bit_data[] __initconst = {
  396. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  397. { 0 },
  398. };
  399. static const char * const dra7_mmc3_gfclk_div_parents[] __initconst = {
  400. "l4per_cm:clk:0120:24",
  401. NULL,
  402. };
  403. static const struct omap_clkctrl_div_data dra7_mmc3_gfclk_div_data __initconst = {
  404. .max_div = 4,
  405. .flags = CLK_DIVIDER_POWER_OF_TWO,
  406. };
  407. static const struct omap_clkctrl_bit_data dra7_mmc3_bit_data[] __initconst = {
  408. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  409. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  410. { 25, TI_CLK_DIVIDER, dra7_mmc3_gfclk_div_parents, &dra7_mmc3_gfclk_div_data },
  411. { 0 },
  412. };
  413. static const char * const dra7_mmc4_gfclk_div_parents[] __initconst = {
  414. "l4per_cm:clk:0128:24",
  415. NULL,
  416. };
  417. static const struct omap_clkctrl_div_data dra7_mmc4_gfclk_div_data __initconst = {
  418. .max_div = 4,
  419. .flags = CLK_DIVIDER_POWER_OF_TWO,
  420. };
  421. static const struct omap_clkctrl_bit_data dra7_mmc4_bit_data[] __initconst = {
  422. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  423. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  424. { 25, TI_CLK_DIVIDER, dra7_mmc4_gfclk_div_parents, &dra7_mmc4_gfclk_div_data },
  425. { 0 },
  426. };
  427. static const struct omap_clkctrl_bit_data dra7_timer16_bit_data[] __initconst = {
  428. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  429. { 0 },
  430. };
  431. static const char * const dra7_qspi_gfclk_mux_parents[] __initconst = {
  432. "func_128m_clk",
  433. "dpll_per_h13x2_ck",
  434. NULL,
  435. };
  436. static const char * const dra7_qspi_gfclk_div_parents[] __initconst = {
  437. "l4per_cm:clk:0138:24",
  438. NULL,
  439. };
  440. static const struct omap_clkctrl_div_data dra7_qspi_gfclk_div_data __initconst = {
  441. .max_div = 4,
  442. .flags = CLK_DIVIDER_POWER_OF_TWO,
  443. };
  444. static const struct omap_clkctrl_bit_data dra7_qspi_bit_data[] __initconst = {
  445. { 24, TI_CLK_MUX, dra7_qspi_gfclk_mux_parents, NULL },
  446. { 25, TI_CLK_DIVIDER, dra7_qspi_gfclk_div_parents, &dra7_qspi_gfclk_div_data },
  447. { 0 },
  448. };
  449. static const struct omap_clkctrl_bit_data dra7_uart1_bit_data[] __initconst = {
  450. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  451. { 0 },
  452. };
  453. static const struct omap_clkctrl_bit_data dra7_uart2_bit_data[] __initconst = {
  454. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  455. { 0 },
  456. };
  457. static const struct omap_clkctrl_bit_data dra7_uart3_bit_data[] __initconst = {
  458. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  459. { 0 },
  460. };
  461. static const struct omap_clkctrl_bit_data dra7_uart4_bit_data[] __initconst = {
  462. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  463. { 0 },
  464. };
  465. static const struct omap_clkctrl_bit_data dra7_mcasp2_bit_data[] __initconst = {
  466. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  467. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  468. { 28, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  469. { 0 },
  470. };
  471. static const struct omap_clkctrl_bit_data dra7_mcasp3_bit_data[] __initconst = {
  472. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  473. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  474. { 0 },
  475. };
  476. static const struct omap_clkctrl_bit_data dra7_uart5_bit_data[] __initconst = {
  477. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  478. { 0 },
  479. };
  480. static const struct omap_clkctrl_bit_data dra7_mcasp5_bit_data[] __initconst = {
  481. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  482. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  483. { 0 },
  484. };
  485. static const struct omap_clkctrl_bit_data dra7_mcasp8_bit_data[] __initconst = {
  486. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  487. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  488. { 0 },
  489. };
  490. static const struct omap_clkctrl_bit_data dra7_mcasp4_bit_data[] __initconst = {
  491. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  492. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  493. { 0 },
  494. };
  495. static const struct omap_clkctrl_bit_data dra7_uart7_bit_data[] __initconst = {
  496. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  497. { 0 },
  498. };
  499. static const struct omap_clkctrl_bit_data dra7_uart8_bit_data[] __initconst = {
  500. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  501. { 0 },
  502. };
  503. static const struct omap_clkctrl_bit_data dra7_uart9_bit_data[] __initconst = {
  504. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  505. { 0 },
  506. };
  507. static const struct omap_clkctrl_bit_data dra7_mcasp6_bit_data[] __initconst = {
  508. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  509. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  510. { 0 },
  511. };
  512. static const struct omap_clkctrl_bit_data dra7_mcasp7_bit_data[] __initconst = {
  513. { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL },
  514. { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL },
  515. { 0 },
  516. };
  517. static const struct omap_clkctrl_reg_data dra7_l4per_clkctrl_regs[] __initconst = {
  518. { DRA7_L4_PER2_CLKCTRL, NULL, 0, "l3_iclk_div", "l4per2_clkdm" },
  519. { DRA7_L4_PER3_CLKCTRL, NULL, 0, "l3_iclk_div", "l4per3_clkdm" },
  520. { DRA7_TIMER10_CLKCTRL, dra7_timer10_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0028:24" },
  521. { DRA7_TIMER11_CLKCTRL, dra7_timer11_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0030:24" },
  522. { DRA7_TIMER2_CLKCTRL, dra7_timer2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0038:24" },
  523. { DRA7_TIMER3_CLKCTRL, dra7_timer3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0040:24" },
  524. { DRA7_TIMER4_CLKCTRL, dra7_timer4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0048:24" },
  525. { DRA7_TIMER9_CLKCTRL, dra7_timer9_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0050:24" },
  526. { DRA7_ELM_CLKCTRL, NULL, 0, "l3_iclk_div" },
  527. { DRA7_GPIO2_CLKCTRL, dra7_gpio2_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  528. { DRA7_GPIO3_CLKCTRL, dra7_gpio3_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  529. { DRA7_GPIO4_CLKCTRL, dra7_gpio4_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  530. { DRA7_GPIO5_CLKCTRL, dra7_gpio5_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  531. { DRA7_GPIO6_CLKCTRL, dra7_gpio6_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  532. { DRA7_HDQ1W_CLKCTRL, NULL, CLKF_SW_SUP, "func_12m_fclk" },
  533. { DRA7_EPWMSS1_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" },
  534. { DRA7_EPWMSS2_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" },
  535. { DRA7_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" },
  536. { DRA7_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" },
  537. { DRA7_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" },
  538. { DRA7_I2C4_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" },
  539. { DRA7_L4_PER1_CLKCTRL, NULL, 0, "l3_iclk_div" },
  540. { DRA7_EPWMSS0_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" },
  541. { DRA7_TIMER13_CLKCTRL, dra7_timer13_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00c8:24", "l4per3_clkdm" },
  542. { DRA7_TIMER14_CLKCTRL, dra7_timer14_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00d0:24", "l4per3_clkdm" },
  543. { DRA7_TIMER15_CLKCTRL, dra7_timer15_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00d8:24", "l4per3_clkdm" },
  544. { DRA7_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" },
  545. { DRA7_MCSPI2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" },
  546. { DRA7_MCSPI3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" },
  547. { DRA7_MCSPI4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" },
  548. { DRA7_GPIO7_CLKCTRL, dra7_gpio7_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  549. { DRA7_GPIO8_CLKCTRL, dra7_gpio8_bit_data, CLKF_HW_SUP, "l3_iclk_div" },
  550. { DRA7_MMC3_CLKCTRL, dra7_mmc3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0120:25" },
  551. { DRA7_MMC4_CLKCTRL, dra7_mmc4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0128:25" },
  552. { DRA7_TIMER16_CLKCTRL, dra7_timer16_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0130:24", "l4per3_clkdm" },
  553. { DRA7_QSPI_CLKCTRL, dra7_qspi_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0138:25", "l4per2_clkdm" },
  554. { DRA7_UART1_CLKCTRL, dra7_uart1_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0140:24" },
  555. { DRA7_UART2_CLKCTRL, dra7_uart2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0148:24" },
  556. { DRA7_UART3_CLKCTRL, dra7_uart3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0150:24" },
  557. { DRA7_UART4_CLKCTRL, dra7_uart4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0158:24" },
  558. { DRA7_MCASP2_CLKCTRL, dra7_mcasp2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0160:22", "l4per2_clkdm" },
  559. { DRA7_MCASP3_CLKCTRL, dra7_mcasp3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0168:22", "l4per2_clkdm" },
  560. { DRA7_UART5_CLKCTRL, dra7_uart5_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0170:24" },
  561. { DRA7_MCASP5_CLKCTRL, dra7_mcasp5_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0178:22", "l4per2_clkdm" },
  562. { DRA7_MCASP8_CLKCTRL, dra7_mcasp8_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0190:24", "l4per2_clkdm" },
  563. { DRA7_MCASP4_CLKCTRL, dra7_mcasp4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0198:22", "l4per2_clkdm" },
  564. { DRA7_AES1_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" },
  565. { DRA7_AES2_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" },
  566. { DRA7_DES_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" },
  567. { DRA7_RNG_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" },
  568. { DRA7_SHAM_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" },
  569. { DRA7_UART7_CLKCTRL, dra7_uart7_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01d0:24", "l4per2_clkdm" },
  570. { DRA7_UART8_CLKCTRL, dra7_uart8_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01e0:24", "l4per2_clkdm" },
  571. { DRA7_UART9_CLKCTRL, dra7_uart9_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01e8:24", "l4per2_clkdm" },
  572. { DRA7_DCAN2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_clkin1", "l4per2_clkdm" },
  573. { DRA7_MCASP6_CLKCTRL, dra7_mcasp6_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0204:22", "l4per2_clkdm" },
  574. { DRA7_MCASP7_CLKCTRL, dra7_mcasp7_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0208:22", "l4per2_clkdm" },
  575. { 0 },
  576. };
  577. static const struct omap_clkctrl_bit_data dra7_gpio1_bit_data[] __initconst = {
  578. { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL },
  579. { 0 },
  580. };
  581. static const struct omap_clkctrl_bit_data dra7_timer1_bit_data[] __initconst = {
  582. { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL },
  583. { 0 },
  584. };
  585. static const struct omap_clkctrl_bit_data dra7_uart10_bit_data[] __initconst = {
  586. { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL },
  587. { 0 },
  588. };
  589. static const char * const dra7_dcan1_sys_clk_mux_parents[] __initconst = {
  590. "sys_clkin1",
  591. "sys_clkin2",
  592. NULL,
  593. };
  594. static const struct omap_clkctrl_bit_data dra7_dcan1_bit_data[] __initconst = {
  595. { 24, TI_CLK_MUX, dra7_dcan1_sys_clk_mux_parents, NULL },
  596. { 0 },
  597. };
  598. static const struct omap_clkctrl_reg_data dra7_wkupaon_clkctrl_regs[] __initconst = {
  599. { DRA7_L4_WKUP_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" },
  600. { DRA7_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" },
  601. { DRA7_GPIO1_CLKCTRL, dra7_gpio1_bit_data, CLKF_HW_SUP, "wkupaon_iclk_mux" },
  602. { DRA7_TIMER1_CLKCTRL, dra7_timer1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0020:24" },
  603. { DRA7_TIMER12_CLKCTRL, NULL, 0, "secure_32k_clk_src_ck" },
  604. { DRA7_COUNTER_32K_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" },
  605. { DRA7_UART10_CLKCTRL, dra7_uart10_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0060:24" },
  606. { DRA7_DCAN1_CLKCTRL, dra7_dcan1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0068:24" },
  607. { DRA7_ADC_CLKCTRL, NULL, CLKF_SW_SUP, "mcan_clk"},
  608. { 0 },
  609. };
  610. const struct omap_clkctrl_data dra7_clkctrl_compat_data[] __initconst = {
  611. { 0x4a005320, dra7_mpu_clkctrl_regs },
  612. { 0x4a005540, dra7_ipu_clkctrl_regs },
  613. { 0x4a005740, dra7_rtc_clkctrl_regs },
  614. { 0x4a008620, dra7_coreaon_clkctrl_regs },
  615. { 0x4a008720, dra7_l3main1_clkctrl_regs },
  616. { 0x4a008a20, dra7_dma_clkctrl_regs },
  617. { 0x4a008b20, dra7_emif_clkctrl_regs },
  618. { 0x4a008c00, dra7_atl_clkctrl_regs },
  619. { 0x4a008d20, dra7_l4cfg_clkctrl_regs },
  620. { 0x4a008e20, dra7_l3instr_clkctrl_regs },
  621. { 0x4a009120, dra7_dss_clkctrl_regs },
  622. { 0x4a009320, dra7_l3init_clkctrl_regs },
  623. { 0x4a009700, dra7_l4per_clkctrl_regs },
  624. { 0x4ae07820, dra7_wkupaon_clkctrl_regs },
  625. { 0 },
  626. };
  627. struct ti_dt_clk dra7xx_compat_clks[] = {
  628. DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"),
  629. DT_CLK(NULL, "sys_clkin_ck", "timer_sys_clk_div"),
  630. DT_CLK(NULL, "sys_clkin", "sys_clkin1"),
  631. DT_CLK(NULL, "atl_dpll_clk_mux", "atl_cm:0000:24"),
  632. DT_CLK(NULL, "atl_gfclk_mux", "atl_cm:0000:26"),
  633. DT_CLK(NULL, "dcan1_sys_clk_mux", "wkupaon_cm:0068:24"),
  634. DT_CLK(NULL, "dss_32khz_clk", "dss_cm:0000:11"),
  635. DT_CLK(NULL, "dss_48mhz_clk", "dss_cm:0000:9"),
  636. DT_CLK(NULL, "dss_dss_clk", "dss_cm:0000:8"),
  637. DT_CLK(NULL, "dss_hdmi_clk", "dss_cm:0000:10"),
  638. DT_CLK(NULL, "dss_video1_clk", "dss_cm:0000:12"),
  639. DT_CLK(NULL, "dss_video2_clk", "dss_cm:0000:13"),
  640. DT_CLK(NULL, "gmac_rft_clk_mux", "l3init_cm:00b0:25"),
  641. DT_CLK(NULL, "gpio1_dbclk", "wkupaon_cm:0018:8"),
  642. DT_CLK(NULL, "gpio2_dbclk", "l4per_cm:0060:8"),
  643. DT_CLK(NULL, "gpio3_dbclk", "l4per_cm:0068:8"),
  644. DT_CLK(NULL, "gpio4_dbclk", "l4per_cm:0070:8"),
  645. DT_CLK(NULL, "gpio5_dbclk", "l4per_cm:0078:8"),
  646. DT_CLK(NULL, "gpio6_dbclk", "l4per_cm:0080:8"),
  647. DT_CLK(NULL, "gpio7_dbclk", "l4per_cm:0110:8"),
  648. DT_CLK(NULL, "gpio8_dbclk", "l4per_cm:0118:8"),
  649. DT_CLK(NULL, "mcasp1_ahclkr_mux", "ipu_cm:0010:28"),
  650. DT_CLK(NULL, "mcasp1_ahclkx_mux", "ipu_cm:0010:24"),
  651. DT_CLK(NULL, "mcasp1_aux_gfclk_mux", "ipu_cm:0010:22"),
  652. DT_CLK(NULL, "mcasp2_ahclkr_mux", "l4per_cm:0160:28"),
  653. DT_CLK(NULL, "mcasp2_ahclkx_mux", "l4per_cm:0160:24"),
  654. DT_CLK(NULL, "mcasp2_aux_gfclk_mux", "l4per_cm:0160:22"),
  655. DT_CLK(NULL, "mcasp3_ahclkx_mux", "l4per_cm:0168:24"),
  656. DT_CLK(NULL, "mcasp3_aux_gfclk_mux", "l4per_cm:0168:22"),
  657. DT_CLK(NULL, "mcasp4_ahclkx_mux", "l4per_cm:0198:24"),
  658. DT_CLK(NULL, "mcasp4_aux_gfclk_mux", "l4per_cm:0198:22"),
  659. DT_CLK(NULL, "mcasp5_ahclkx_mux", "l4per_cm:0178:24"),
  660. DT_CLK(NULL, "mcasp5_aux_gfclk_mux", "l4per_cm:0178:22"),
  661. DT_CLK(NULL, "mcasp6_ahclkx_mux", "l4per_cm:0204:24"),
  662. DT_CLK(NULL, "mcasp6_aux_gfclk_mux", "l4per_cm:0204:22"),
  663. DT_CLK(NULL, "mcasp7_ahclkx_mux", "l4per_cm:0208:24"),
  664. DT_CLK(NULL, "mcasp7_aux_gfclk_mux", "l4per_cm:0208:22"),
  665. DT_CLK(NULL, "mcasp8_ahclkx_mux", "l4per_cm:0190:22"),
  666. DT_CLK(NULL, "mcasp8_aux_gfclk_mux", "l4per_cm:0190:24"),
  667. DT_CLK(NULL, "mmc1_clk32k", "l3init_cm:0008:8"),
  668. DT_CLK(NULL, "mmc1_fclk_div", "l3init_cm:0008:25"),
  669. DT_CLK(NULL, "mmc1_fclk_mux", "l3init_cm:0008:24"),
  670. DT_CLK(NULL, "mmc2_clk32k", "l3init_cm:0010:8"),
  671. DT_CLK(NULL, "mmc2_fclk_div", "l3init_cm:0010:25"),
  672. DT_CLK(NULL, "mmc2_fclk_mux", "l3init_cm:0010:24"),
  673. DT_CLK(NULL, "mmc3_clk32k", "l4per_cm:0120:8"),
  674. DT_CLK(NULL, "mmc3_gfclk_div", "l4per_cm:0120:25"),
  675. DT_CLK(NULL, "mmc3_gfclk_mux", "l4per_cm:0120:24"),
  676. DT_CLK(NULL, "mmc4_clk32k", "l4per_cm:0128:8"),
  677. DT_CLK(NULL, "mmc4_gfclk_div", "l4per_cm:0128:25"),
  678. DT_CLK(NULL, "mmc4_gfclk_mux", "l4per_cm:0128:24"),
  679. DT_CLK(NULL, "optfclk_pciephy1_32khz", "l3init_cm:0090:8"),
  680. DT_CLK(NULL, "optfclk_pciephy1_clk", "l3init_cm:0090:9"),
  681. DT_CLK(NULL, "optfclk_pciephy1_div_clk", "l3init_cm:0090:10"),
  682. DT_CLK(NULL, "optfclk_pciephy2_32khz", "l3init_cm:0098:8"),
  683. DT_CLK(NULL, "optfclk_pciephy2_clk", "l3init_cm:0098:9"),
  684. DT_CLK(NULL, "optfclk_pciephy2_div_clk", "l3init_cm:0098:10"),
  685. DT_CLK(NULL, "qspi_gfclk_div", "l4per_cm:0138:25"),
  686. DT_CLK(NULL, "qspi_gfclk_mux", "l4per_cm:0138:24"),
  687. DT_CLK(NULL, "rmii_50mhz_clk_mux", "l3init_cm:00b0:24"),
  688. DT_CLK(NULL, "sata_ref_clk", "l3init_cm:0068:8"),
  689. DT_CLK(NULL, "timer10_gfclk_mux", "l4per_cm:0028:24"),
  690. DT_CLK(NULL, "timer11_gfclk_mux", "l4per_cm:0030:24"),
  691. DT_CLK(NULL, "timer13_gfclk_mux", "l4per_cm:00c8:24"),
  692. DT_CLK(NULL, "timer14_gfclk_mux", "l4per_cm:00d0:24"),
  693. DT_CLK(NULL, "timer15_gfclk_mux", "l4per_cm:00d8:24"),
  694. DT_CLK(NULL, "timer16_gfclk_mux", "l4per_cm:0130:24"),
  695. DT_CLK(NULL, "timer1_gfclk_mux", "wkupaon_cm:0020:24"),
  696. DT_CLK(NULL, "timer2_gfclk_mux", "l4per_cm:0038:24"),
  697. DT_CLK(NULL, "timer3_gfclk_mux", "l4per_cm:0040:24"),
  698. DT_CLK(NULL, "timer4_gfclk_mux", "l4per_cm:0048:24"),
  699. DT_CLK(NULL, "timer5_gfclk_mux", "ipu_cm:0018:24"),
  700. DT_CLK(NULL, "timer6_gfclk_mux", "ipu_cm:0020:24"),
  701. DT_CLK(NULL, "timer7_gfclk_mux", "ipu_cm:0028:24"),
  702. DT_CLK(NULL, "timer8_gfclk_mux", "ipu_cm:0030:24"),
  703. DT_CLK(NULL, "timer9_gfclk_mux", "l4per_cm:0050:24"),
  704. DT_CLK(NULL, "uart10_gfclk_mux", "wkupaon_cm:0060:24"),
  705. DT_CLK(NULL, "uart1_gfclk_mux", "l4per_cm:0140:24"),
  706. DT_CLK(NULL, "uart2_gfclk_mux", "l4per_cm:0148:24"),
  707. DT_CLK(NULL, "uart3_gfclk_mux", "l4per_cm:0150:24"),
  708. DT_CLK(NULL, "uart4_gfclk_mux", "l4per_cm:0158:24"),
  709. DT_CLK(NULL, "uart5_gfclk_mux", "l4per_cm:0170:24"),
  710. DT_CLK(NULL, "uart6_gfclk_mux", "ipu_cm:0040:24"),
  711. DT_CLK(NULL, "uart7_gfclk_mux", "l4per_cm:01d0:24"),
  712. DT_CLK(NULL, "uart8_gfclk_mux", "l4per_cm:01e0:24"),
  713. DT_CLK(NULL, "uart9_gfclk_mux", "l4per_cm:01e8:24"),
  714. DT_CLK(NULL, "usb_otg_ss1_refclk960m", "l3init_cm:00d0:8"),
  715. DT_CLK(NULL, "usb_otg_ss2_refclk960m", "l3init_cm:0020:8"),
  716. { .node_name = NULL },
  717. };