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