Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch '4.15-rc1-clkctrl-driver' of https://github.com/t-kristo/linux-pm into clk-next

* '4.15-rc1-clkctrl-driver' of https://github.com/t-kristo/linux-pm: (28 commits)
clk: ti: omap4: clkctrl data fixes for opt-clocks
clk: ti: dm816: add clkctrl clock data
dt-bindings: clk: add dm816 clkctrl definitions
clk: ti: dm814: add clkctrl clock data
dt-bindings: clk: add dm814 clkctrl definitions
clk: ti: am43xx: add clkctrl clock data
dt-bindings: clk: add am43xx clkctrl definitions
clk: ti: am33xx: add clkctrl clock data
dt-bindings: clk: add am33xx clkctrl definitions
clk: ti: dra7: add clkctrl clock data
dt-bindings: clk: add dra7 clkctrl definitions
clk: ti: omap5: add clkctrl clock data
dt-bindings: clk: add omap5 clkctrl definitions
clk: ti: omap3: cleanup unnecessary clock aliases
clk: ti: am43xx: cleanup unnecessary clock aliases
clk: ti: am33xx: cleanup unnecessary clock aliases
clk: ti: dm816x: cleanup unnecessary clock aliases
clk: ti: dm814x: cleanup unnecessary clock aliases
clk: ti: omap5: cleanup unnecessary clock aliases
clk: ti: dra7: drop unnecessary clock aliases
...

+2662 -1052
+2 -1
drivers/clk/ti/apll.c
··· 133 133 .get_parent = &dra7_init_apll_parent, 134 134 }; 135 135 136 - static void __init omap_clk_register_apll(struct clk_hw *hw, 136 + static void __init omap_clk_register_apll(void *user, 137 137 struct device_node *node) 138 138 { 139 + struct clk_hw *hw = user; 139 140 struct clk_hw_omap *clk_hw = to_clk_hw_omap(hw); 140 141 struct dpll_data *ad = clk_hw->dpll_data; 141 142 struct clk *clk;
+192 -87
drivers/clk/ti/clk-33xx.c
··· 19 19 #include <linux/clk.h> 20 20 #include <linux/clk-provider.h> 21 21 #include <linux/clk/ti.h> 22 + #include <dt-bindings/clock/am3.h> 22 23 23 24 #include "clock.h" 24 25 26 + static const char * const am3_gpio1_dbclk_parents[] __initconst = { 27 + "l4_per_cm:clk:0138:0", 28 + NULL, 29 + }; 30 + 31 + static const struct omap_clkctrl_bit_data am3_gpio2_bit_data[] __initconst = { 32 + { 18, TI_CLK_GATE, am3_gpio1_dbclk_parents, NULL }, 33 + { 0 }, 34 + }; 35 + 36 + static const struct omap_clkctrl_bit_data am3_gpio3_bit_data[] __initconst = { 37 + { 18, TI_CLK_GATE, am3_gpio1_dbclk_parents, NULL }, 38 + { 0 }, 39 + }; 40 + 41 + static const struct omap_clkctrl_bit_data am3_gpio4_bit_data[] __initconst = { 42 + { 18, TI_CLK_GATE, am3_gpio1_dbclk_parents, NULL }, 43 + { 0 }, 44 + }; 45 + 46 + static const struct omap_clkctrl_reg_data am3_l4_per_clkctrl_regs[] __initconst = { 47 + { AM3_CPGMAC0_CLKCTRL, NULL, CLKF_SW_SUP, "cpsw_125mhz_gclk", "cpsw_125mhz_clkdm" }, 48 + { AM3_LCDC_CLKCTRL, NULL, CLKF_SW_SUP, "lcd_gclk", "lcdc_clkdm" }, 49 + { AM3_USB_OTG_HS_CLKCTRL, NULL, CLKF_SW_SUP, "usbotg_fck", "l3s_clkdm" }, 50 + { AM3_TPTC0_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 51 + { AM3_EMIF_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_ddr_m2_div2_ck", "l3_clkdm" }, 52 + { AM3_OCMCRAM_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 53 + { AM3_GPMC_CLKCTRL, NULL, CLKF_SW_SUP, "l3s_gclk", "l3s_clkdm" }, 54 + { AM3_MCASP0_CLKCTRL, NULL, CLKF_SW_SUP, "mcasp0_fck", "l3s_clkdm" }, 55 + { AM3_UART6_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 56 + { AM3_MMC1_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk" }, 57 + { AM3_ELM_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 58 + { AM3_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 59 + { AM3_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 60 + { AM3_SPI0_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 61 + { AM3_SPI1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 62 + { AM3_L4_LS_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 63 + { AM3_MCASP1_CLKCTRL, NULL, CLKF_SW_SUP, "mcasp1_fck", "l3s_clkdm" }, 64 + { AM3_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 65 + { AM3_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 66 + { AM3_UART4_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 67 + { AM3_UART5_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 68 + { AM3_TIMER7_CLKCTRL, NULL, CLKF_SW_SUP, "timer7_fck" }, 69 + { AM3_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "timer2_fck" }, 70 + { AM3_TIMER3_CLKCTRL, NULL, CLKF_SW_SUP, "timer3_fck" }, 71 + { AM3_TIMER4_CLKCTRL, NULL, CLKF_SW_SUP, "timer4_fck" }, 72 + { AM3_RNG_CLKCTRL, NULL, CLKF_SW_SUP, "rng_fck" }, 73 + { AM3_AES_CLKCTRL, NULL, CLKF_SW_SUP, "aes0_fck", "l3_clkdm" }, 74 + { AM3_SHAM_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 75 + { AM3_GPIO2_CLKCTRL, am3_gpio2_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 76 + { AM3_GPIO3_CLKCTRL, am3_gpio3_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 77 + { AM3_GPIO4_CLKCTRL, am3_gpio4_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 78 + { AM3_TPCC_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 79 + { AM3_D_CAN0_CLKCTRL, NULL, CLKF_SW_SUP, "dcan0_fck" }, 80 + { AM3_D_CAN1_CLKCTRL, NULL, CLKF_SW_SUP, "dcan1_fck" }, 81 + { AM3_EPWMSS1_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 82 + { AM3_EPWMSS0_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 83 + { AM3_EPWMSS2_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 84 + { AM3_L3_INSTR_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 85 + { AM3_L3_MAIN_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 86 + { AM3_PRUSS_CLKCTRL, NULL, CLKF_SW_SUP, "pruss_ocp_gclk", "pruss_ocp_clkdm" }, 87 + { AM3_TIMER5_CLKCTRL, NULL, CLKF_SW_SUP, "timer5_fck" }, 88 + { AM3_TIMER6_CLKCTRL, NULL, CLKF_SW_SUP, "timer6_fck" }, 89 + { AM3_MMC2_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk" }, 90 + { AM3_MMC3_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk", "l3s_clkdm" }, 91 + { AM3_TPTC1_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 92 + { AM3_TPTC2_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 93 + { AM3_SPINLOCK_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 94 + { AM3_MAILBOX_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 95 + { AM3_L4_HS_CLKCTRL, NULL, CLKF_SW_SUP, "l4hs_gclk", "l4hs_clkdm" }, 96 + { AM3_OCPWP_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 97 + { AM3_CLKDIV32K_CLKCTRL, NULL, CLKF_SW_SUP, "clkdiv32k_ck", "clk_24mhz_clkdm" }, 98 + { 0 }, 99 + }; 100 + 101 + static const char * const am3_gpio0_dbclk_parents[] __initconst = { 102 + "gpio0_dbclk_mux_ck", 103 + NULL, 104 + }; 105 + 106 + static const struct omap_clkctrl_bit_data am3_gpio1_bit_data[] __initconst = { 107 + { 18, TI_CLK_GATE, am3_gpio0_dbclk_parents, NULL }, 108 + { 0 }, 109 + }; 110 + 111 + static const char * const am3_dbg_sysclk_ck_parents[] __initconst = { 112 + "sys_clkin_ck", 113 + NULL, 114 + }; 115 + 116 + static const char * const am3_trace_pmd_clk_mux_ck_parents[] __initconst = { 117 + "l4_wkup_cm:clk:0010:19", 118 + "l4_wkup_cm:clk:0010:30", 119 + NULL, 120 + }; 121 + 122 + static const char * const am3_trace_clk_div_ck_parents[] __initconst = { 123 + "l4_wkup_cm:clk:0010:20", 124 + NULL, 125 + }; 126 + 127 + static const struct omap_clkctrl_div_data am3_trace_clk_div_ck_data __initconst = { 128 + .max_div = 64, 129 + .flags = CLK_DIVIDER_POWER_OF_TWO, 130 + }; 131 + 132 + static const char * const am3_stm_clk_div_ck_parents[] __initconst = { 133 + "l4_wkup_cm:clk:0010:22", 134 + NULL, 135 + }; 136 + 137 + static const struct omap_clkctrl_div_data am3_stm_clk_div_ck_data __initconst = { 138 + .max_div = 64, 139 + .flags = CLK_DIVIDER_POWER_OF_TWO, 140 + }; 141 + 142 + static const char * const am3_dbg_clka_ck_parents[] __initconst = { 143 + "dpll_core_m4_ck", 144 + NULL, 145 + }; 146 + 147 + static const struct omap_clkctrl_bit_data am3_debugss_bit_data[] __initconst = { 148 + { 19, TI_CLK_GATE, am3_dbg_sysclk_ck_parents, NULL }, 149 + { 20, TI_CLK_MUX, am3_trace_pmd_clk_mux_ck_parents, NULL }, 150 + { 22, TI_CLK_MUX, am3_trace_pmd_clk_mux_ck_parents, NULL }, 151 + { 24, TI_CLK_DIVIDER, am3_trace_clk_div_ck_parents, &am3_trace_clk_div_ck_data }, 152 + { 27, TI_CLK_DIVIDER, am3_stm_clk_div_ck_parents, &am3_stm_clk_div_ck_data }, 153 + { 30, TI_CLK_GATE, am3_dbg_clka_ck_parents, NULL }, 154 + { 0 }, 155 + }; 156 + 157 + static const struct omap_clkctrl_reg_data am3_l4_wkup_clkctrl_regs[] __initconst = { 158 + { AM3_CONTROL_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_core_m4_div2_ck" }, 159 + { AM3_GPIO1_CLKCTRL, am3_gpio1_bit_data, CLKF_SW_SUP, "dpll_core_m4_div2_ck" }, 160 + { AM3_L4_WKUP_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_core_m4_div2_ck" }, 161 + { AM3_DEBUGSS_CLKCTRL, am3_debugss_bit_data, CLKF_SW_SUP, "l4_wkup_cm:clk:0010:24", "l3_aon_clkdm" }, 162 + { AM3_WKUP_M3_CLKCTRL, NULL, CLKF_NO_IDLEST, "dpll_core_m4_div2_ck", "l4_wkup_aon_clkdm" }, 163 + { AM3_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_wkupdm_ck" }, 164 + { AM3_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_wkupdm_ck" }, 165 + { AM3_ADC_TSC_CLKCTRL, NULL, CLKF_SW_SUP, "adc_tsc_fck" }, 166 + { AM3_SMARTREFLEX0_CLKCTRL, NULL, CLKF_SW_SUP, "smartreflex0_fck" }, 167 + { AM3_TIMER1_CLKCTRL, NULL, CLKF_SW_SUP, "timer1_fck" }, 168 + { AM3_SMARTREFLEX1_CLKCTRL, NULL, CLKF_SW_SUP, "smartreflex1_fck" }, 169 + { AM3_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "wdt1_fck" }, 170 + { 0 }, 171 + }; 172 + 173 + static const struct omap_clkctrl_reg_data am3_mpu_clkctrl_regs[] __initconst = { 174 + { AM3_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_mpu_m2_ck" }, 175 + { 0 }, 176 + }; 177 + 178 + static const struct omap_clkctrl_reg_data am3_l4_rtc_clkctrl_regs[] __initconst = { 179 + { AM3_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" }, 180 + { 0 }, 181 + }; 182 + 183 + static const struct omap_clkctrl_reg_data am3_gfx_l3_clkctrl_regs[] __initconst = { 184 + { AM3_GFX_CLKCTRL, NULL, CLKF_SW_SUP, "gfx_fck_div_ck" }, 185 + { 0 }, 186 + }; 187 + 188 + static const struct omap_clkctrl_reg_data am3_l4_cefuse_clkctrl_regs[] __initconst = { 189 + { AM3_CEFUSE_CLKCTRL, NULL, CLKF_SW_SUP, "sys_clkin_ck" }, 190 + { 0 }, 191 + }; 192 + 193 + const struct omap_clkctrl_data am3_clkctrl_data[] __initconst = { 194 + { 0x44e00014, am3_l4_per_clkctrl_regs }, 195 + { 0x44e00404, am3_l4_wkup_clkctrl_regs }, 196 + { 0x44e00604, am3_mpu_clkctrl_regs }, 197 + { 0x44e00800, am3_l4_rtc_clkctrl_regs }, 198 + { 0x44e00904, am3_gfx_l3_clkctrl_regs }, 199 + { 0x44e00a20, am3_l4_cefuse_clkctrl_regs }, 200 + { 0 }, 201 + }; 202 + 25 203 static struct ti_dt_clk am33xx_clks[] = { 26 - DT_CLK(NULL, "clk_32768_ck", "clk_32768_ck"), 27 - DT_CLK(NULL, "clk_rc32k_ck", "clk_rc32k_ck"), 28 - DT_CLK(NULL, "virt_19200000_ck", "virt_19200000_ck"), 29 - DT_CLK(NULL, "virt_24000000_ck", "virt_24000000_ck"), 30 - DT_CLK(NULL, "virt_25000000_ck", "virt_25000000_ck"), 31 - DT_CLK(NULL, "virt_26000000_ck", "virt_26000000_ck"), 32 - DT_CLK(NULL, "sys_clkin_ck", "sys_clkin_ck"), 33 - DT_CLK(NULL, "tclkin_ck", "tclkin_ck"), 34 - DT_CLK(NULL, "dpll_core_ck", "dpll_core_ck"), 35 - DT_CLK(NULL, "dpll_core_x2_ck", "dpll_core_x2_ck"), 36 - DT_CLK(NULL, "dpll_core_m4_ck", "dpll_core_m4_ck"), 37 - DT_CLK(NULL, "dpll_core_m5_ck", "dpll_core_m5_ck"), 38 - DT_CLK(NULL, "dpll_core_m6_ck", "dpll_core_m6_ck"), 39 - DT_CLK(NULL, "dpll_mpu_ck", "dpll_mpu_ck"), 40 - DT_CLK(NULL, "dpll_mpu_m2_ck", "dpll_mpu_m2_ck"), 41 - DT_CLK(NULL, "dpll_ddr_ck", "dpll_ddr_ck"), 42 - DT_CLK(NULL, "dpll_ddr_m2_ck", "dpll_ddr_m2_ck"), 43 - DT_CLK(NULL, "dpll_ddr_m2_div2_ck", "dpll_ddr_m2_div2_ck"), 44 - DT_CLK(NULL, "dpll_disp_ck", "dpll_disp_ck"), 45 - DT_CLK(NULL, "dpll_disp_m2_ck", "dpll_disp_m2_ck"), 46 - DT_CLK(NULL, "dpll_per_ck", "dpll_per_ck"), 47 - DT_CLK(NULL, "dpll_per_m2_ck", "dpll_per_m2_ck"), 48 - DT_CLK(NULL, "dpll_per_m2_div4_wkupdm_ck", "dpll_per_m2_div4_wkupdm_ck"), 49 - DT_CLK(NULL, "dpll_per_m2_div4_ck", "dpll_per_m2_div4_ck"), 50 - DT_CLK(NULL, "adc_tsc_fck", "adc_tsc_fck"), 51 - DT_CLK(NULL, "cefuse_fck", "cefuse_fck"), 52 - DT_CLK(NULL, "clkdiv32k_ck", "clkdiv32k_ck"), 53 - DT_CLK(NULL, "clkdiv32k_ick", "clkdiv32k_ick"), 54 - DT_CLK(NULL, "dcan0_fck", "dcan0_fck"), 55 - DT_CLK("481cc000.d_can", NULL, "dcan0_fck"), 56 - DT_CLK(NULL, "dcan1_fck", "dcan1_fck"), 57 - DT_CLK("481d0000.d_can", NULL, "dcan1_fck"), 58 - DT_CLK(NULL, "pruss_ocp_gclk", "pruss_ocp_gclk"), 59 - DT_CLK(NULL, "mcasp0_fck", "mcasp0_fck"), 60 - DT_CLK(NULL, "mcasp1_fck", "mcasp1_fck"), 61 - DT_CLK(NULL, "mmu_fck", "mmu_fck"), 62 - DT_CLK(NULL, "smartreflex0_fck", "smartreflex0_fck"), 63 - DT_CLK(NULL, "smartreflex1_fck", "smartreflex1_fck"), 64 - DT_CLK(NULL, "sha0_fck", "sha0_fck"), 65 - DT_CLK(NULL, "aes0_fck", "aes0_fck"), 66 - DT_CLK(NULL, "rng_fck", "rng_fck"), 67 - DT_CLK(NULL, "timer1_fck", "timer1_fck"), 68 - DT_CLK(NULL, "timer2_fck", "timer2_fck"), 69 - DT_CLK(NULL, "timer3_fck", "timer3_fck"), 70 - DT_CLK(NULL, "timer4_fck", "timer4_fck"), 71 - DT_CLK(NULL, "timer5_fck", "timer5_fck"), 72 - DT_CLK(NULL, "timer6_fck", "timer6_fck"), 73 - DT_CLK(NULL, "timer7_fck", "timer7_fck"), 74 - DT_CLK(NULL, "usbotg_fck", "usbotg_fck"), 75 - DT_CLK(NULL, "ieee5000_fck", "ieee5000_fck"), 76 - DT_CLK(NULL, "wdt1_fck", "wdt1_fck"), 77 - DT_CLK(NULL, "l4_rtc_gclk", "l4_rtc_gclk"), 78 - DT_CLK(NULL, "l3_gclk", "l3_gclk"), 79 - DT_CLK(NULL, "dpll_core_m4_div2_ck", "dpll_core_m4_div2_ck"), 80 - DT_CLK(NULL, "l4hs_gclk", "l4hs_gclk"), 81 - DT_CLK(NULL, "l3s_gclk", "l3s_gclk"), 82 - DT_CLK(NULL, "l4fw_gclk", "l4fw_gclk"), 83 - DT_CLK(NULL, "l4ls_gclk", "l4ls_gclk"), 84 - DT_CLK(NULL, "clk_24mhz", "clk_24mhz"), 85 - DT_CLK(NULL, "sysclk_div_ck", "sysclk_div_ck"), 86 - DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"), 87 - DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"), 88 - DT_CLK(NULL, "gpio0_dbclk_mux_ck", "gpio0_dbclk_mux_ck"), 89 - DT_CLK(NULL, "gpio0_dbclk", "gpio0_dbclk"), 90 - DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"), 91 - DT_CLK(NULL, "gpio2_dbclk", "gpio2_dbclk"), 92 - DT_CLK(NULL, "gpio3_dbclk", "gpio3_dbclk"), 93 - DT_CLK(NULL, "lcd_gclk", "lcd_gclk"), 94 - DT_CLK(NULL, "mmc_clk", "mmc_clk"), 95 - DT_CLK(NULL, "gfx_fclk_clksel_ck", "gfx_fclk_clksel_ck"), 96 - DT_CLK(NULL, "gfx_fck_div_ck", "gfx_fck_div_ck"), 97 - DT_CLK(NULL, "sysclkout_pre_ck", "sysclkout_pre_ck"), 98 - DT_CLK(NULL, "clkout2_div_ck", "clkout2_div_ck"), 99 - DT_CLK(NULL, "timer_32k_ck", "clkdiv32k_ick"), 204 + DT_CLK(NULL, "timer_32k_ck", "l4_per_cm:0138:0"), 100 205 DT_CLK(NULL, "timer_sys_ck", "sys_clkin_ck"), 101 - DT_CLK(NULL, "dbg_sysclk_ck", "dbg_sysclk_ck"), 102 - DT_CLK(NULL, "dbg_clka_ck", "dbg_clka_ck"), 103 - DT_CLK(NULL, "stm_pmd_clock_mux_ck", "stm_pmd_clock_mux_ck"), 104 - DT_CLK(NULL, "trace_pmd_clk_mux_ck", "trace_pmd_clk_mux_ck"), 105 - DT_CLK(NULL, "stm_clk_div_ck", "stm_clk_div_ck"), 106 - DT_CLK(NULL, "trace_clk_div_ck", "trace_clk_div_ck"), 107 - DT_CLK(NULL, "clkout2_ck", "clkout2_ck"), 108 - DT_CLK("48300200.ehrpwm", "tbclk", "ehrpwm0_tbclk"), 109 - DT_CLK("48302200.ehrpwm", "tbclk", "ehrpwm1_tbclk"), 110 - DT_CLK("48304200.ehrpwm", "tbclk", "ehrpwm2_tbclk"), 111 - DT_CLK("48300200.pwm", "tbclk", "ehrpwm0_tbclk"), 112 - DT_CLK("48302200.pwm", "tbclk", "ehrpwm1_tbclk"), 113 - DT_CLK("48304200.pwm", "tbclk", "ehrpwm2_tbclk"), 206 + DT_CLK(NULL, "clkdiv32k_ick", "l4_per_cm:0138:0"), 207 + DT_CLK(NULL, "dbg_clka_ck", "l4_wkup_cm:0010:30"), 208 + DT_CLK(NULL, "dbg_sysclk_ck", "l4_wkup_cm:0010:19"), 209 + DT_CLK(NULL, "gpio0_dbclk", "l4_wkup_cm:0004:18"), 210 + DT_CLK(NULL, "gpio1_dbclk", "l4_per_cm:0098:18"), 211 + DT_CLK(NULL, "gpio2_dbclk", "l4_per_cm:009c:18"), 212 + DT_CLK(NULL, "gpio3_dbclk", "l4_per_cm:00a0:18"), 213 + DT_CLK(NULL, "stm_clk_div_ck", "l4_wkup_cm:0010:27"), 214 + DT_CLK(NULL, "stm_pmd_clock_mux_ck", "l4_wkup_cm:0010:22"), 215 + DT_CLK(NULL, "trace_clk_div_ck", "l4_wkup_cm:0010:24"), 216 + DT_CLK(NULL, "trace_pmd_clk_mux_ck", "l4_wkup_cm:0010:20"), 114 217 { .node_name = NULL }, 115 218 }; 116 219 ··· 235 132 ti_dt_clocks_register(am33xx_clks); 236 133 237 134 omap2_clk_disable_autoidle_all(); 135 + 136 + ti_clk_add_aliases(); 238 137 239 138 omap2_clk_enable_init_clocks(enable_init_clks, 240 139 ARRAY_SIZE(enable_init_clks));
+2 -261
drivers/clk/ti/clk-3xxx.c
··· 224 224 }; 225 225 226 226 static struct ti_dt_clk omap3xxx_clks[] = { 227 - DT_CLK(NULL, "apb_pclk", "dummy_apb_pclk"), 228 - DT_CLK(NULL, "omap_32k_fck", "omap_32k_fck"), 229 - DT_CLK(NULL, "virt_12m_ck", "virt_12m_ck"), 230 - DT_CLK(NULL, "virt_13m_ck", "virt_13m_ck"), 231 - DT_CLK(NULL, "virt_19200000_ck", "virt_19200000_ck"), 232 - DT_CLK(NULL, "virt_26000000_ck", "virt_26000000_ck"), 233 - DT_CLK(NULL, "virt_38_4m_ck", "virt_38_4m_ck"), 234 - DT_CLK(NULL, "osc_sys_ck", "osc_sys_ck"), 235 - DT_CLK("twl", "fck", "osc_sys_ck"), 236 - DT_CLK(NULL, "sys_ck", "sys_ck"), 237 - DT_CLK(NULL, "omap_96m_alwon_fck", "omap_96m_alwon_fck"), 238 - DT_CLK("etb", "emu_core_alwon_ck", "emu_core_alwon_ck"), 239 - DT_CLK(NULL, "sys_altclk", "sys_altclk"), 240 - DT_CLK(NULL, "sys_clkout1", "sys_clkout1"), 241 - DT_CLK(NULL, "dpll1_ck", "dpll1_ck"), 242 - DT_CLK(NULL, "dpll1_x2_ck", "dpll1_x2_ck"), 243 - DT_CLK(NULL, "dpll1_x2m2_ck", "dpll1_x2m2_ck"), 244 - DT_CLK(NULL, "dpll3_ck", "dpll3_ck"), 245 - DT_CLK(NULL, "core_ck", "core_ck"), 246 - DT_CLK(NULL, "dpll3_x2_ck", "dpll3_x2_ck"), 247 - DT_CLK(NULL, "dpll3_m2_ck", "dpll3_m2_ck"), 248 - DT_CLK(NULL, "dpll3_m2x2_ck", "dpll3_m2x2_ck"), 249 - DT_CLK(NULL, "dpll3_m3_ck", "dpll3_m3_ck"), 250 - DT_CLK(NULL, "dpll3_m3x2_ck", "dpll3_m3x2_ck"), 251 - DT_CLK(NULL, "dpll4_ck", "dpll4_ck"), 252 - DT_CLK(NULL, "dpll4_x2_ck", "dpll4_x2_ck"), 253 - DT_CLK(NULL, "omap_96m_fck", "omap_96m_fck"), 254 - DT_CLK(NULL, "cm_96m_fck", "cm_96m_fck"), 255 - DT_CLK(NULL, "omap_54m_fck", "omap_54m_fck"), 256 - DT_CLK(NULL, "omap_48m_fck", "omap_48m_fck"), 257 - DT_CLK(NULL, "omap_12m_fck", "omap_12m_fck"), 258 - DT_CLK(NULL, "dpll4_m2_ck", "dpll4_m2_ck"), 259 - DT_CLK(NULL, "dpll4_m2x2_ck", "dpll4_m2x2_ck"), 260 - DT_CLK(NULL, "dpll4_m3_ck", "dpll4_m3_ck"), 261 - DT_CLK(NULL, "dpll4_m3x2_ck", "dpll4_m3x2_ck"), 262 - DT_CLK(NULL, "dpll4_m4_ck", "dpll4_m4_ck"), 263 - DT_CLK(NULL, "dpll4_m4x2_ck", "dpll4_m4x2_ck"), 264 - DT_CLK(NULL, "dpll4_m5_ck", "dpll4_m5_ck"), 265 - DT_CLK(NULL, "dpll4_m5x2_ck", "dpll4_m5x2_ck"), 266 - DT_CLK(NULL, "dpll4_m6_ck", "dpll4_m6_ck"), 267 - DT_CLK(NULL, "dpll4_m6x2_ck", "dpll4_m6x2_ck"), 268 - DT_CLK("etb", "emu_per_alwon_ck", "emu_per_alwon_ck"), 269 - DT_CLK(NULL, "clkout2_src_ck", "clkout2_src_ck"), 270 - DT_CLK(NULL, "sys_clkout2", "sys_clkout2"), 271 - DT_CLK(NULL, "corex2_fck", "corex2_fck"), 272 - DT_CLK(NULL, "dpll1_fck", "dpll1_fck"), 273 - DT_CLK(NULL, "mpu_ck", "mpu_ck"), 274 - DT_CLK(NULL, "arm_fck", "arm_fck"), 275 - DT_CLK("etb", "emu_mpu_alwon_ck", "emu_mpu_alwon_ck"), 276 - DT_CLK(NULL, "l3_ick", "l3_ick"), 277 - DT_CLK(NULL, "l4_ick", "l4_ick"), 278 - DT_CLK(NULL, "rm_ick", "rm_ick"), 279 - DT_CLK(NULL, "gpt10_fck", "gpt10_fck"), 280 - DT_CLK(NULL, "gpt11_fck", "gpt11_fck"), 281 - DT_CLK(NULL, "core_96m_fck", "core_96m_fck"), 282 - DT_CLK(NULL, "mmchs2_fck", "mmchs2_fck"), 283 - DT_CLK(NULL, "mmchs1_fck", "mmchs1_fck"), 284 - DT_CLK(NULL, "i2c3_fck", "i2c3_fck"), 285 - DT_CLK(NULL, "i2c2_fck", "i2c2_fck"), 286 - DT_CLK(NULL, "i2c1_fck", "i2c1_fck"), 287 - DT_CLK(NULL, "core_48m_fck", "core_48m_fck"), 288 - DT_CLK(NULL, "mcspi4_fck", "mcspi4_fck"), 289 - DT_CLK(NULL, "mcspi3_fck", "mcspi3_fck"), 290 - DT_CLK(NULL, "mcspi2_fck", "mcspi2_fck"), 291 - DT_CLK(NULL, "mcspi1_fck", "mcspi1_fck"), 292 - DT_CLK(NULL, "uart2_fck", "uart2_fck"), 293 - DT_CLK(NULL, "uart1_fck", "uart1_fck"), 294 - DT_CLK(NULL, "core_12m_fck", "core_12m_fck"), 295 - DT_CLK("omap_hdq.0", "fck", "hdq_fck"), 296 - DT_CLK(NULL, "hdq_fck", "hdq_fck"), 297 - DT_CLK(NULL, "core_l3_ick", "core_l3_ick"), 298 - DT_CLK(NULL, "sdrc_ick", "sdrc_ick"), 299 - DT_CLK(NULL, "gpmc_fck", "gpmc_fck"), 300 - DT_CLK(NULL, "core_l4_ick", "core_l4_ick"), 301 - DT_CLK("omap_hsmmc.1", "ick", "mmchs2_ick"), 302 - DT_CLK("omap_hsmmc.0", "ick", "mmchs1_ick"), 303 - DT_CLK(NULL, "mmchs2_ick", "mmchs2_ick"), 304 - DT_CLK(NULL, "mmchs1_ick", "mmchs1_ick"), 305 - DT_CLK("omap_hdq.0", "ick", "hdq_ick"), 306 - DT_CLK(NULL, "hdq_ick", "hdq_ick"), 307 - DT_CLK("omap2_mcspi.4", "ick", "mcspi4_ick"), 308 - DT_CLK("omap2_mcspi.3", "ick", "mcspi3_ick"), 309 - DT_CLK("omap2_mcspi.2", "ick", "mcspi2_ick"), 310 - DT_CLK("omap2_mcspi.1", "ick", "mcspi1_ick"), 311 - DT_CLK(NULL, "mcspi4_ick", "mcspi4_ick"), 312 - DT_CLK(NULL, "mcspi3_ick", "mcspi3_ick"), 313 - DT_CLK(NULL, "mcspi2_ick", "mcspi2_ick"), 314 - DT_CLK(NULL, "mcspi1_ick", "mcspi1_ick"), 315 - DT_CLK("omap_i2c.3", "ick", "i2c3_ick"), 316 - DT_CLK("omap_i2c.2", "ick", "i2c2_ick"), 317 - DT_CLK("omap_i2c.1", "ick", "i2c1_ick"), 318 - DT_CLK(NULL, "i2c3_ick", "i2c3_ick"), 319 - DT_CLK(NULL, "i2c2_ick", "i2c2_ick"), 320 - DT_CLK(NULL, "i2c1_ick", "i2c1_ick"), 321 - DT_CLK(NULL, "uart2_ick", "uart2_ick"), 322 - DT_CLK(NULL, "uart1_ick", "uart1_ick"), 323 - DT_CLK(NULL, "gpt11_ick", "gpt11_ick"), 324 - DT_CLK(NULL, "gpt10_ick", "gpt10_ick"), 325 - DT_CLK(NULL, "omapctrl_ick", "omapctrl_ick"), 326 - DT_CLK(NULL, "dss_tv_fck", "dss_tv_fck"), 327 - DT_CLK(NULL, "dss_96m_fck", "dss_96m_fck"), 328 - DT_CLK(NULL, "dss2_alwon_fck", "dss2_alwon_fck"), 329 - DT_CLK(NULL, "init_60m_fclk", "dummy_ck"), 330 - DT_CLK(NULL, "gpt1_fck", "gpt1_fck"), 331 - DT_CLK(NULL, "aes2_ick", "aes2_ick"), 332 - DT_CLK(NULL, "wkup_32k_fck", "wkup_32k_fck"), 333 - DT_CLK(NULL, "gpio1_dbck", "gpio1_dbck"), 334 - DT_CLK(NULL, "sha12_ick", "sha12_ick"), 335 - DT_CLK(NULL, "wdt2_fck", "wdt2_fck"), 336 - DT_CLK("omap_wdt", "ick", "wdt2_ick"), 337 - DT_CLK(NULL, "wdt2_ick", "wdt2_ick"), 338 - DT_CLK(NULL, "wdt1_ick", "wdt1_ick"), 339 - DT_CLK(NULL, "gpio1_ick", "gpio1_ick"), 340 - DT_CLK(NULL, "omap_32ksync_ick", "omap_32ksync_ick"), 341 - DT_CLK(NULL, "gpt12_ick", "gpt12_ick"), 342 - DT_CLK(NULL, "gpt1_ick", "gpt1_ick"), 343 - DT_CLK(NULL, "per_96m_fck", "per_96m_fck"), 344 - DT_CLK(NULL, "per_48m_fck", "per_48m_fck"), 345 - DT_CLK(NULL, "uart3_fck", "uart3_fck"), 346 - DT_CLK(NULL, "gpt2_fck", "gpt2_fck"), 347 - DT_CLK(NULL, "gpt3_fck", "gpt3_fck"), 348 - DT_CLK(NULL, "gpt4_fck", "gpt4_fck"), 349 - DT_CLK(NULL, "gpt5_fck", "gpt5_fck"), 350 - DT_CLK(NULL, "gpt6_fck", "gpt6_fck"), 351 - DT_CLK(NULL, "gpt7_fck", "gpt7_fck"), 352 - DT_CLK(NULL, "gpt8_fck", "gpt8_fck"), 353 - DT_CLK(NULL, "gpt9_fck", "gpt9_fck"), 354 - DT_CLK(NULL, "per_32k_alwon_fck", "per_32k_alwon_fck"), 355 - DT_CLK(NULL, "gpio6_dbck", "gpio6_dbck"), 356 - DT_CLK(NULL, "gpio5_dbck", "gpio5_dbck"), 357 - DT_CLK(NULL, "gpio4_dbck", "gpio4_dbck"), 358 - DT_CLK(NULL, "gpio3_dbck", "gpio3_dbck"), 359 - DT_CLK(NULL, "gpio2_dbck", "gpio2_dbck"), 360 - DT_CLK(NULL, "wdt3_fck", "wdt3_fck"), 361 - DT_CLK(NULL, "per_l4_ick", "per_l4_ick"), 362 - DT_CLK(NULL, "gpio6_ick", "gpio6_ick"), 363 - DT_CLK(NULL, "gpio5_ick", "gpio5_ick"), 364 - DT_CLK(NULL, "gpio4_ick", "gpio4_ick"), 365 - DT_CLK(NULL, "gpio3_ick", "gpio3_ick"), 366 - DT_CLK(NULL, "gpio2_ick", "gpio2_ick"), 367 - DT_CLK(NULL, "wdt3_ick", "wdt3_ick"), 368 - DT_CLK(NULL, "uart3_ick", "uart3_ick"), 369 - DT_CLK(NULL, "gpt9_ick", "gpt9_ick"), 370 - DT_CLK(NULL, "gpt8_ick", "gpt8_ick"), 371 - DT_CLK(NULL, "gpt7_ick", "gpt7_ick"), 372 - DT_CLK(NULL, "gpt6_ick", "gpt6_ick"), 373 - DT_CLK(NULL, "gpt5_ick", "gpt5_ick"), 374 - DT_CLK(NULL, "gpt4_ick", "gpt4_ick"), 375 - DT_CLK(NULL, "gpt3_ick", "gpt3_ick"), 376 - DT_CLK(NULL, "gpt2_ick", "gpt2_ick"), 377 - DT_CLK(NULL, "mcbsp_clks", "mcbsp_clks"), 378 - DT_CLK(NULL, "mcbsp1_ick", "mcbsp1_ick"), 379 - DT_CLK(NULL, "mcbsp2_ick", "mcbsp2_ick"), 380 - DT_CLK(NULL, "mcbsp3_ick", "mcbsp3_ick"), 381 - DT_CLK(NULL, "mcbsp4_ick", "mcbsp4_ick"), 382 - DT_CLK(NULL, "mcbsp5_ick", "mcbsp5_ick"), 383 - DT_CLK(NULL, "mcbsp1_fck", "mcbsp1_fck"), 384 - DT_CLK(NULL, "mcbsp2_fck", "mcbsp2_fck"), 385 - DT_CLK(NULL, "mcbsp3_fck", "mcbsp3_fck"), 386 - DT_CLK(NULL, "mcbsp4_fck", "mcbsp4_fck"), 387 - DT_CLK(NULL, "mcbsp5_fck", "mcbsp5_fck"), 388 - DT_CLK("etb", "emu_src_ck", "emu_src_ck"), 389 - DT_CLK(NULL, "emu_src_ck", "emu_src_ck"), 390 - DT_CLK(NULL, "pclk_fck", "pclk_fck"), 391 - DT_CLK(NULL, "pclkx2_fck", "pclkx2_fck"), 392 - DT_CLK(NULL, "atclk_fck", "atclk_fck"), 393 - DT_CLK(NULL, "traceclk_src_fck", "traceclk_src_fck"), 394 - DT_CLK(NULL, "traceclk_fck", "traceclk_fck"), 395 - DT_CLK(NULL, "secure_32k_fck", "secure_32k_fck"), 396 - DT_CLK(NULL, "gpt12_fck", "gpt12_fck"), 397 - DT_CLK(NULL, "wdt1_fck", "wdt1_fck"), 398 227 DT_CLK(NULL, "timer_32k_ck", "omap_32k_fck"), 399 228 DT_CLK(NULL, "timer_sys_ck", "sys_ck"), 400 - DT_CLK(NULL, "cpufreq_ck", "dpll1_ck"), 401 - { .node_name = NULL }, 402 - }; 403 - 404 - static struct ti_dt_clk omap34xx_omap36xx_clks[] = { 405 - DT_CLK(NULL, "aes1_ick", "aes1_ick"), 406 - DT_CLK("omap_rng", "ick", "rng_ick"), 407 - DT_CLK("omap3-rom-rng", "ick", "rng_ick"), 408 - DT_CLK(NULL, "sha11_ick", "sha11_ick"), 409 - DT_CLK(NULL, "des1_ick", "des1_ick"), 410 - DT_CLK(NULL, "cam_mclk", "cam_mclk"), 411 - DT_CLK(NULL, "cam_ick", "cam_ick"), 412 - DT_CLK(NULL, "csi2_96m_fck", "csi2_96m_fck"), 413 - DT_CLK(NULL, "security_l3_ick", "security_l3_ick"), 414 - DT_CLK(NULL, "pka_ick", "pka_ick"), 415 - DT_CLK(NULL, "icr_ick", "icr_ick"), 416 - DT_CLK("omap-aes", "ick", "aes2_ick"), 417 - DT_CLK("omap-sham", "ick", "sha12_ick"), 418 - DT_CLK(NULL, "des2_ick", "des2_ick"), 419 - DT_CLK(NULL, "mspro_ick", "mspro_ick"), 420 - DT_CLK(NULL, "mailboxes_ick", "mailboxes_ick"), 421 - DT_CLK(NULL, "ssi_l4_ick", "ssi_l4_ick"), 422 - DT_CLK(NULL, "sr1_fck", "sr1_fck"), 423 - DT_CLK(NULL, "sr2_fck", "sr2_fck"), 424 - DT_CLK(NULL, "sr_l4_ick", "sr_l4_ick"), 425 - DT_CLK(NULL, "security_l4_ick2", "security_l4_ick2"), 426 - DT_CLK(NULL, "wkup_l4_ick", "wkup_l4_ick"), 427 - DT_CLK(NULL, "dpll2_fck", "dpll2_fck"), 428 - DT_CLK(NULL, "iva2_ck", "iva2_ck"), 429 - DT_CLK(NULL, "modem_fck", "modem_fck"), 430 - DT_CLK(NULL, "sad2d_ick", "sad2d_ick"), 431 - DT_CLK(NULL, "mad2d_ick", "mad2d_ick"), 432 - DT_CLK(NULL, "mspro_fck", "mspro_fck"), 433 - DT_CLK(NULL, "dpll2_ck", "dpll2_ck"), 434 - DT_CLK(NULL, "dpll2_m2_ck", "dpll2_m2_ck"), 435 229 { .node_name = NULL }, 436 230 }; 437 231 438 232 static struct ti_dt_clk omap36xx_omap3430es2plus_clks[] = { 439 233 DT_CLK(NULL, "ssi_ssr_fck", "ssi_ssr_fck_3430es2"), 440 234 DT_CLK(NULL, "ssi_sst_fck", "ssi_sst_fck_3430es2"), 441 - DT_CLK("musb-omap2430", "ick", "hsotgusb_ick_3430es2"), 442 235 DT_CLK(NULL, "hsotgusb_ick", "hsotgusb_ick_3430es2"), 443 236 DT_CLK(NULL, "ssi_ick", "ssi_ick_3430es2"), 444 - DT_CLK(NULL, "usim_fck", "usim_fck"), 445 - DT_CLK(NULL, "usim_ick", "usim_ick"), 446 237 { .node_name = NULL }, 447 238 }; 448 239 449 240 static struct ti_dt_clk omap3430es1_clks[] = { 450 - DT_CLK(NULL, "gfx_l3_ck", "gfx_l3_ck"), 451 - DT_CLK(NULL, "gfx_l3_fck", "gfx_l3_fck"), 452 - DT_CLK(NULL, "gfx_l3_ick", "gfx_l3_ick"), 453 - DT_CLK(NULL, "gfx_cg1_ck", "gfx_cg1_ck"), 454 - DT_CLK(NULL, "gfx_cg2_ck", "gfx_cg2_ck"), 455 - DT_CLK(NULL, "d2d_26m_fck", "d2d_26m_fck"), 456 - DT_CLK(NULL, "fshostusb_fck", "fshostusb_fck"), 457 241 DT_CLK(NULL, "ssi_ssr_fck", "ssi_ssr_fck_3430es1"), 458 242 DT_CLK(NULL, "ssi_sst_fck", "ssi_sst_fck_3430es1"), 459 - DT_CLK("musb-omap2430", "ick", "hsotgusb_ick_3430es1"), 460 243 DT_CLK(NULL, "hsotgusb_ick", "hsotgusb_ick_3430es1"), 461 - DT_CLK(NULL, "fac_ick", "fac_ick"), 462 244 DT_CLK(NULL, "ssi_ick", "ssi_ick_3430es1"), 463 - DT_CLK(NULL, "usb_l4_ick", "usb_l4_ick"), 464 245 DT_CLK(NULL, "dss1_alwon_fck", "dss1_alwon_fck_3430es1"), 465 - DT_CLK("omapdss_dss", "ick", "dss_ick_3430es1"), 466 246 DT_CLK(NULL, "dss_ick", "dss_ick_3430es1"), 467 247 { .node_name = NULL }, 468 248 }; 469 249 470 250 static struct ti_dt_clk omap36xx_am35xx_omap3430es2plus_clks[] = { 471 - DT_CLK(NULL, "virt_16_8m_ck", "virt_16_8m_ck"), 472 - DT_CLK(NULL, "dpll5_ck", "dpll5_ck"), 473 - DT_CLK(NULL, "dpll5_m2_ck", "dpll5_m2_ck"), 474 - DT_CLK(NULL, "sgx_fck", "sgx_fck"), 475 - DT_CLK(NULL, "sgx_ick", "sgx_ick"), 476 - DT_CLK(NULL, "cpefuse_fck", "cpefuse_fck"), 477 - DT_CLK(NULL, "ts_fck", "ts_fck"), 478 - DT_CLK(NULL, "usbtll_fck", "usbtll_fck"), 479 - DT_CLK(NULL, "usbtll_ick", "usbtll_ick"), 480 - DT_CLK("omap_hsmmc.2", "ick", "mmchs3_ick"), 481 - DT_CLK(NULL, "mmchs3_ick", "mmchs3_ick"), 482 - DT_CLK(NULL, "mmchs3_fck", "mmchs3_fck"), 483 251 DT_CLK(NULL, "dss1_alwon_fck", "dss1_alwon_fck_3430es2"), 484 - DT_CLK("omapdss_dss", "ick", "dss_ick_3430es2"), 485 252 DT_CLK(NULL, "dss_ick", "dss_ick_3430es2"), 486 - DT_CLK(NULL, "usbhost_120m_fck", "usbhost_120m_fck"), 487 - DT_CLK(NULL, "usbhost_48m_fck", "usbhost_48m_fck"), 488 - DT_CLK(NULL, "usbhost_ick", "usbhost_ick"), 489 253 { .node_name = NULL }, 490 254 }; 491 255 492 256 static struct ti_dt_clk am35xx_clks[] = { 493 - DT_CLK(NULL, "ipss_ick", "ipss_ick"), 494 - DT_CLK(NULL, "rmii_ck", "rmii_ck"), 495 - DT_CLK(NULL, "pclk_ck", "pclk_ck"), 496 - DT_CLK(NULL, "emac_ick", "emac_ick"), 497 - DT_CLK(NULL, "emac_fck", "emac_fck"), 498 - DT_CLK("davinci_emac.0", NULL, "emac_ick"), 499 - DT_CLK("davinci_mdio.0", NULL, "emac_fck"), 500 - DT_CLK("vpfe-capture", "master", "vpfe_ick"), 501 - DT_CLK("vpfe-capture", "slave", "vpfe_fck"), 502 257 DT_CLK(NULL, "hsotgusb_ick", "hsotgusb_ick_am35xx"), 503 258 DT_CLK(NULL, "hsotgusb_fck", "hsotgusb_fck_am35xx"), 504 - DT_CLK(NULL, "hecc_ck", "hecc_ck"), 505 259 DT_CLK(NULL, "uart4_ick", "uart4_ick_am35xx"), 506 260 DT_CLK(NULL, "uart4_fck", "uart4_fck_am35xx"), 507 - { .node_name = NULL }, 508 - }; 509 - 510 - static struct ti_dt_clk omap36xx_clks[] = { 511 - DT_CLK(NULL, "omap_192m_alwon_fck", "omap_192m_alwon_fck"), 512 - DT_CLK(NULL, "uart4_fck", "uart4_fck"), 513 - DT_CLK(NULL, "uart4_ick", "uart4_ick"), 514 261 { .node_name = NULL }, 515 262 }; 516 263 ··· 326 579 soc_type == OMAP3_SOC_OMAP3630) 327 580 ti_dt_clocks_register(omap36xx_omap3430es2plus_clks); 328 581 329 - if (soc_type == OMAP3_SOC_OMAP3430_ES1 || 330 - soc_type == OMAP3_SOC_OMAP3430_ES2_PLUS || 331 - soc_type == OMAP3_SOC_OMAP3630) 332 - ti_dt_clocks_register(omap34xx_omap36xx_clks); 333 - 334 - if (soc_type == OMAP3_SOC_OMAP3630) 335 - ti_dt_clocks_register(omap36xx_clks); 336 - 337 582 omap2_clk_disable_autoidle_all(); 583 + 584 + ti_clk_add_aliases(); 338 585 339 586 omap2_clk_enable_init_clocks(enable_init_clks, 340 587 ARRAY_SIZE(enable_init_clks));
+198 -97
drivers/clk/ti/clk-43xx.c
··· 19 19 #include <linux/clk.h> 20 20 #include <linux/clk-provider.h> 21 21 #include <linux/clk/ti.h> 22 + #include <dt-bindings/clock/am4.h> 22 23 23 24 #include "clock.h" 24 25 26 + static const char * const am4_synctimer_32kclk_parents[] __initconst = { 27 + "mux_synctimer32k_ck", 28 + NULL, 29 + }; 30 + 31 + static const struct omap_clkctrl_bit_data am4_counter_32k_bit_data[] __initconst = { 32 + { 8, TI_CLK_GATE, am4_synctimer_32kclk_parents, NULL }, 33 + { 0 }, 34 + }; 35 + 36 + static const char * const am4_gpio0_dbclk_parents[] __initconst = { 37 + "gpio0_dbclk_mux_ck", 38 + NULL, 39 + }; 40 + 41 + static const struct omap_clkctrl_bit_data am4_gpio1_bit_data[] __initconst = { 42 + { 8, TI_CLK_GATE, am4_gpio0_dbclk_parents, NULL }, 43 + { 0 }, 44 + }; 45 + 46 + static const struct omap_clkctrl_reg_data am4_l4_wkup_clkctrl_regs[] __initconst = { 47 + { AM4_ADC_TSC_CLKCTRL, NULL, CLKF_SW_SUP, "adc_tsc_fck", "l3s_tsc_clkdm" }, 48 + { AM4_L4_WKUP_CLKCTRL, NULL, CLKF_SW_SUP, "sys_clkin_ck", "l4_wkup_clkdm" }, 49 + { AM4_WKUP_M3_CLKCTRL, NULL, CLKF_NO_IDLEST, "sys_clkin_ck" }, 50 + { AM4_COUNTER_32K_CLKCTRL, am4_counter_32k_bit_data, CLKF_SW_SUP, "l4_wkup_cm:clk:0210:8" }, 51 + { AM4_TIMER1_CLKCTRL, NULL, CLKF_SW_SUP, "timer1_fck", "l4_wkup_clkdm" }, 52 + { AM4_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "wdt1_fck", "l4_wkup_clkdm" }, 53 + { AM4_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_wkupdm_ck", "l4_wkup_clkdm" }, 54 + { AM4_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_wkupdm_ck", "l4_wkup_clkdm" }, 55 + { AM4_SMARTREFLEX0_CLKCTRL, NULL, CLKF_SW_SUP, "smartreflex0_fck", "l4_wkup_clkdm" }, 56 + { AM4_SMARTREFLEX1_CLKCTRL, NULL, CLKF_SW_SUP, "smartreflex1_fck", "l4_wkup_clkdm" }, 57 + { AM4_CONTROL_CLKCTRL, NULL, CLKF_SW_SUP, "sys_clkin_ck", "l4_wkup_clkdm" }, 58 + { AM4_GPIO1_CLKCTRL, am4_gpio1_bit_data, CLKF_SW_SUP, "sys_clkin_ck", "l4_wkup_clkdm" }, 59 + { 0 }, 60 + }; 61 + 62 + static const struct omap_clkctrl_reg_data am4_mpu_clkctrl_regs[] __initconst = { 63 + { AM4_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_mpu_m2_ck" }, 64 + { 0 }, 65 + }; 66 + 67 + static const struct omap_clkctrl_reg_data am4_gfx_l3_clkctrl_regs[] __initconst = { 68 + { AM4_GFX_CLKCTRL, NULL, CLKF_SW_SUP, "gfx_fck_div_ck" }, 69 + { 0 }, 70 + }; 71 + 72 + static const struct omap_clkctrl_reg_data am4_l4_rtc_clkctrl_regs[] __initconst = { 73 + { AM4_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" }, 74 + { 0 }, 75 + }; 76 + 77 + static const char * const am4_usb_otg_ss0_refclk960m_parents[] __initconst = { 78 + "dpll_per_clkdcoldo", 79 + NULL, 80 + }; 81 + 82 + static const struct omap_clkctrl_bit_data am4_usb_otg_ss0_bit_data[] __initconst = { 83 + { 8, TI_CLK_GATE, am4_usb_otg_ss0_refclk960m_parents, NULL }, 84 + { 0 }, 85 + }; 86 + 87 + static const struct omap_clkctrl_bit_data am4_usb_otg_ss1_bit_data[] __initconst = { 88 + { 8, TI_CLK_GATE, am4_usb_otg_ss0_refclk960m_parents, NULL }, 89 + { 0 }, 90 + }; 91 + 92 + static const char * const am4_gpio1_dbclk_parents[] __initconst = { 93 + "clkdiv32k_ick", 94 + NULL, 95 + }; 96 + 97 + static const struct omap_clkctrl_bit_data am4_gpio2_bit_data[] __initconst = { 98 + { 8, TI_CLK_GATE, am4_gpio1_dbclk_parents, NULL }, 99 + { 0 }, 100 + }; 101 + 102 + static const struct omap_clkctrl_bit_data am4_gpio3_bit_data[] __initconst = { 103 + { 8, TI_CLK_GATE, am4_gpio1_dbclk_parents, NULL }, 104 + { 0 }, 105 + }; 106 + 107 + static const struct omap_clkctrl_bit_data am4_gpio4_bit_data[] __initconst = { 108 + { 8, TI_CLK_GATE, am4_gpio1_dbclk_parents, NULL }, 109 + { 0 }, 110 + }; 111 + 112 + static const struct omap_clkctrl_bit_data am4_gpio5_bit_data[] __initconst = { 113 + { 8, TI_CLK_GATE, am4_gpio1_dbclk_parents, NULL }, 114 + { 0 }, 115 + }; 116 + 117 + static const struct omap_clkctrl_bit_data am4_gpio6_bit_data[] __initconst = { 118 + { 8, TI_CLK_GATE, am4_gpio1_dbclk_parents, NULL }, 119 + { 0 }, 120 + }; 121 + 122 + static const struct omap_clkctrl_reg_data am4_l4_per_clkctrl_regs[] __initconst = { 123 + { AM4_L3_MAIN_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 124 + { AM4_AES_CLKCTRL, NULL, CLKF_SW_SUP, "aes0_fck", "l3_clkdm" }, 125 + { AM4_DES_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 126 + { AM4_L3_INSTR_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 127 + { AM4_OCMCRAM_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 128 + { AM4_SHAM_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 129 + { AM4_VPFE0_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3s_clkdm" }, 130 + { AM4_VPFE1_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3s_clkdm" }, 131 + { AM4_TPCC_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 132 + { AM4_TPTC0_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 133 + { AM4_TPTC1_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 134 + { AM4_TPTC2_CLKCTRL, NULL, CLKF_SW_SUP, "l3_gclk", "l3_clkdm" }, 135 + { AM4_L4_HS_CLKCTRL, NULL, CLKF_SW_SUP, "l4hs_gclk", "l3_clkdm" }, 136 + { AM4_GPMC_CLKCTRL, NULL, CLKF_SW_SUP, "l3s_gclk", "l3s_clkdm" }, 137 + { AM4_MCASP0_CLKCTRL, NULL, CLKF_SW_SUP, "mcasp0_fck", "l3s_clkdm" }, 138 + { AM4_MCASP1_CLKCTRL, NULL, CLKF_SW_SUP, "mcasp1_fck", "l3s_clkdm" }, 139 + { AM4_MMC3_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk", "l3s_clkdm" }, 140 + { AM4_QSPI_CLKCTRL, NULL, CLKF_SW_SUP, "l3s_gclk", "l3s_clkdm" }, 141 + { AM4_USB_OTG_SS0_CLKCTRL, am4_usb_otg_ss0_bit_data, CLKF_SW_SUP, "l3s_gclk", "l3s_clkdm" }, 142 + { AM4_USB_OTG_SS1_CLKCTRL, am4_usb_otg_ss1_bit_data, CLKF_SW_SUP, "l3s_gclk", "l3s_clkdm" }, 143 + { AM4_PRUSS_CLKCTRL, NULL, CLKF_SW_SUP, "pruss_ocp_gclk", "pruss_ocp_clkdm" }, 144 + { AM4_L4_LS_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 145 + { AM4_D_CAN0_CLKCTRL, NULL, CLKF_SW_SUP, "dcan0_fck" }, 146 + { AM4_D_CAN1_CLKCTRL, NULL, CLKF_SW_SUP, "dcan1_fck" }, 147 + { AM4_EPWMSS0_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 148 + { AM4_EPWMSS1_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 149 + { AM4_EPWMSS2_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 150 + { AM4_EPWMSS3_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 151 + { AM4_EPWMSS4_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 152 + { AM4_EPWMSS5_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 153 + { AM4_ELM_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 154 + { AM4_GPIO2_CLKCTRL, am4_gpio2_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 155 + { AM4_GPIO3_CLKCTRL, am4_gpio3_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 156 + { AM4_GPIO4_CLKCTRL, am4_gpio4_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 157 + { AM4_GPIO5_CLKCTRL, am4_gpio5_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 158 + { AM4_GPIO6_CLKCTRL, am4_gpio6_bit_data, CLKF_SW_SUP, "l4ls_gclk" }, 159 + { AM4_HDQ1W_CLKCTRL, NULL, CLKF_SW_SUP, "func_12m_clk" }, 160 + { AM4_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 161 + { AM4_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 162 + { AM4_MAILBOX_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 163 + { AM4_MMC1_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk" }, 164 + { AM4_MMC2_CLKCTRL, NULL, CLKF_SW_SUP, "mmc_clk" }, 165 + { AM4_RNG_CLKCTRL, NULL, CLKF_SW_SUP, "rng_fck" }, 166 + { AM4_SPI0_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 167 + { AM4_SPI1_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 168 + { AM4_SPI2_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 169 + { AM4_SPI3_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 170 + { AM4_SPI4_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 171 + { AM4_SPINLOCK_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 172 + { AM4_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "timer2_fck" }, 173 + { AM4_TIMER3_CLKCTRL, NULL, CLKF_SW_SUP, "timer3_fck" }, 174 + { AM4_TIMER4_CLKCTRL, NULL, CLKF_SW_SUP, "timer4_fck" }, 175 + { AM4_TIMER5_CLKCTRL, NULL, CLKF_SW_SUP, "timer5_fck" }, 176 + { AM4_TIMER6_CLKCTRL, NULL, CLKF_SW_SUP, "timer6_fck" }, 177 + { AM4_TIMER7_CLKCTRL, NULL, CLKF_SW_SUP, "timer7_fck" }, 178 + { AM4_TIMER8_CLKCTRL, NULL, CLKF_SW_SUP, "timer8_fck" }, 179 + { AM4_TIMER9_CLKCTRL, NULL, CLKF_SW_SUP, "timer9_fck" }, 180 + { AM4_TIMER10_CLKCTRL, NULL, CLKF_SW_SUP, "timer10_fck" }, 181 + { AM4_TIMER11_CLKCTRL, NULL, CLKF_SW_SUP, "timer11_fck" }, 182 + { AM4_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 183 + { AM4_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 184 + { AM4_UART4_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 185 + { AM4_UART5_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 186 + { AM4_UART6_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_per_m2_div4_ck" }, 187 + { AM4_OCP2SCP0_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 188 + { AM4_OCP2SCP1_CLKCTRL, NULL, CLKF_SW_SUP, "l4ls_gclk" }, 189 + { AM4_EMIF_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_ddr_m2_ck", "emif_clkdm" }, 190 + { AM4_DSS_CORE_CLKCTRL, NULL, CLKF_SW_SUP, "disp_clk", "dss_clkdm" }, 191 + { AM4_CPGMAC0_CLKCTRL, NULL, CLKF_SW_SUP, "cpsw_125mhz_gclk", "cpsw_125mhz_clkdm" }, 192 + { 0 }, 193 + }; 194 + 195 + const struct omap_clkctrl_data am4_clkctrl_data[] __initconst = { 196 + { 0x44df2820, am4_l4_wkup_clkctrl_regs }, 197 + { 0x44df8320, am4_mpu_clkctrl_regs }, 198 + { 0x44df8420, am4_gfx_l3_clkctrl_regs }, 199 + { 0x44df8520, am4_l4_rtc_clkctrl_regs }, 200 + { 0x44df8820, am4_l4_per_clkctrl_regs }, 201 + { 0 }, 202 + }; 203 + 204 + const struct omap_clkctrl_data am438x_clkctrl_data[] __initconst = { 205 + { 0x44df2820, am4_l4_wkup_clkctrl_regs }, 206 + { 0x44df8320, am4_mpu_clkctrl_regs }, 207 + { 0x44df8420, am4_gfx_l3_clkctrl_regs }, 208 + { 0x44df8820, am4_l4_per_clkctrl_regs }, 209 + { 0 }, 210 + }; 211 + 25 212 static struct ti_dt_clk am43xx_clks[] = { 26 - DT_CLK(NULL, "clk_32768_ck", "clk_32768_ck"), 27 - DT_CLK(NULL, "clk_rc32k_ck", "clk_rc32k_ck"), 28 - DT_CLK(NULL, "virt_19200000_ck", "virt_19200000_ck"), 29 - DT_CLK(NULL, "virt_24000000_ck", "virt_24000000_ck"), 30 - DT_CLK(NULL, "virt_25000000_ck", "virt_25000000_ck"), 31 - DT_CLK(NULL, "virt_26000000_ck", "virt_26000000_ck"), 32 - DT_CLK(NULL, "sys_clkin_ck", "sys_clkin_ck"), 33 - DT_CLK(NULL, "tclkin_ck", "tclkin_ck"), 34 - DT_CLK(NULL, "dpll_core_ck", "dpll_core_ck"), 35 - DT_CLK(NULL, "dpll_core_x2_ck", "dpll_core_x2_ck"), 36 - DT_CLK(NULL, "dpll_core_m4_ck", "dpll_core_m4_ck"), 37 - DT_CLK(NULL, "dpll_core_m5_ck", "dpll_core_m5_ck"), 38 - DT_CLK(NULL, "dpll_core_m6_ck", "dpll_core_m6_ck"), 39 - DT_CLK(NULL, "dpll_mpu_ck", "dpll_mpu_ck"), 40 - DT_CLK(NULL, "dpll_mpu_m2_ck", "dpll_mpu_m2_ck"), 41 - DT_CLK(NULL, "dpll_ddr_ck", "dpll_ddr_ck"), 42 - DT_CLK(NULL, "dpll_ddr_m2_ck", "dpll_ddr_m2_ck"), 43 - DT_CLK(NULL, "dpll_disp_ck", "dpll_disp_ck"), 44 - DT_CLK(NULL, "dpll_disp_m2_ck", "dpll_disp_m2_ck"), 45 - DT_CLK(NULL, "dpll_per_ck", "dpll_per_ck"), 46 - DT_CLK(NULL, "dpll_per_m2_ck", "dpll_per_m2_ck"), 47 - DT_CLK(NULL, "dpll_per_m2_div4_wkupdm_ck", "dpll_per_m2_div4_wkupdm_ck"), 48 - DT_CLK(NULL, "dpll_per_m2_div4_ck", "dpll_per_m2_div4_ck"), 49 - DT_CLK(NULL, "adc_tsc_fck", "adc_tsc_fck"), 50 - DT_CLK(NULL, "clkdiv32k_ck", "clkdiv32k_ck"), 51 - DT_CLK(NULL, "clkdiv32k_ick", "clkdiv32k_ick"), 52 - DT_CLK(NULL, "dcan0_fck", "dcan0_fck"), 53 - DT_CLK(NULL, "dcan1_fck", "dcan1_fck"), 54 - DT_CLK(NULL, "pruss_ocp_gclk", "pruss_ocp_gclk"), 55 - DT_CLK(NULL, "mcasp0_fck", "mcasp0_fck"), 56 - DT_CLK(NULL, "mcasp1_fck", "mcasp1_fck"), 57 - DT_CLK(NULL, "smartreflex0_fck", "smartreflex0_fck"), 58 - DT_CLK(NULL, "smartreflex1_fck", "smartreflex1_fck"), 59 - DT_CLK(NULL, "sha0_fck", "sha0_fck"), 60 - DT_CLK(NULL, "aes0_fck", "aes0_fck"), 61 - DT_CLK(NULL, "rng_fck", "rng_fck"), 62 - DT_CLK(NULL, "timer1_fck", "timer1_fck"), 63 - DT_CLK(NULL, "timer2_fck", "timer2_fck"), 64 - DT_CLK(NULL, "timer3_fck", "timer3_fck"), 65 - DT_CLK(NULL, "timer4_fck", "timer4_fck"), 66 - DT_CLK(NULL, "timer5_fck", "timer5_fck"), 67 - DT_CLK(NULL, "timer6_fck", "timer6_fck"), 68 - DT_CLK(NULL, "timer7_fck", "timer7_fck"), 69 - DT_CLK(NULL, "wdt1_fck", "wdt1_fck"), 70 - DT_CLK(NULL, "l3_gclk", "l3_gclk"), 71 - DT_CLK(NULL, "dpll_core_m4_div2_ck", "dpll_core_m4_div2_ck"), 72 - DT_CLK(NULL, "l4hs_gclk", "l4hs_gclk"), 73 - DT_CLK(NULL, "l3s_gclk", "l3s_gclk"), 74 - DT_CLK(NULL, "l4ls_gclk", "l4ls_gclk"), 75 - DT_CLK(NULL, "clk_24mhz", "clk_24mhz"), 76 - DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"), 77 - DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"), 78 - DT_CLK(NULL, "dpll_clksel_mac_clk", "dpll_clksel_mac_clk"), 79 - DT_CLK(NULL, "gpio0_dbclk_mux_ck", "gpio0_dbclk_mux_ck"), 80 - DT_CLK(NULL, "gpio0_dbclk", "gpio0_dbclk"), 81 - DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"), 82 - DT_CLK(NULL, "gpio2_dbclk", "gpio2_dbclk"), 83 - DT_CLK(NULL, "gpio3_dbclk", "gpio3_dbclk"), 84 - DT_CLK(NULL, "gpio4_dbclk", "gpio4_dbclk"), 85 - DT_CLK(NULL, "gpio5_dbclk", "gpio5_dbclk"), 86 - DT_CLK(NULL, "mmc_clk", "mmc_clk"), 87 - DT_CLK(NULL, "gfx_fclk_clksel_ck", "gfx_fclk_clksel_ck"), 88 - DT_CLK(NULL, "gfx_fck_div_ck", "gfx_fck_div_ck"), 89 213 DT_CLK(NULL, "timer_32k_ck", "clkdiv32k_ick"), 90 214 DT_CLK(NULL, "timer_sys_ck", "sys_clkin_ck"), 91 - DT_CLK(NULL, "sysclk_div", "sysclk_div"), 92 - DT_CLK(NULL, "disp_clk", "disp_clk"), 93 - DT_CLK(NULL, "clk_32k_mosc_ck", "clk_32k_mosc_ck"), 94 - DT_CLK(NULL, "clk_32k_tpm_ck", "clk_32k_tpm_ck"), 95 - DT_CLK(NULL, "dpll_extdev_ck", "dpll_extdev_ck"), 96 - DT_CLK(NULL, "dpll_extdev_m2_ck", "dpll_extdev_m2_ck"), 97 - DT_CLK(NULL, "mux_synctimer32k_ck", "mux_synctimer32k_ck"), 98 - DT_CLK(NULL, "synctimer_32kclk", "synctimer_32kclk"), 99 - DT_CLK(NULL, "timer8_fck", "timer8_fck"), 100 - DT_CLK(NULL, "timer9_fck", "timer9_fck"), 101 - DT_CLK(NULL, "timer10_fck", "timer10_fck"), 102 - DT_CLK(NULL, "timer11_fck", "timer11_fck"), 103 - DT_CLK(NULL, "cpsw_50m_clkdiv", "cpsw_50m_clkdiv"), 104 - DT_CLK(NULL, "cpsw_5m_clkdiv", "cpsw_5m_clkdiv"), 105 - DT_CLK(NULL, "dpll_ddr_x2_ck", "dpll_ddr_x2_ck"), 106 - DT_CLK(NULL, "dpll_ddr_m4_ck", "dpll_ddr_m4_ck"), 107 - DT_CLK(NULL, "dpll_per_clkdcoldo", "dpll_per_clkdcoldo"), 108 - DT_CLK(NULL, "dll_aging_clk_div", "dll_aging_clk_div"), 109 - DT_CLK(NULL, "div_core_25m_ck", "div_core_25m_ck"), 110 - DT_CLK(NULL, "func_12m_clk", "func_12m_clk"), 111 - DT_CLK(NULL, "vtp_clk_div", "vtp_clk_div"), 112 - DT_CLK(NULL, "usbphy_32khz_clkmux", "usbphy_32khz_clkmux"), 113 - DT_CLK("48300200.ehrpwm", "tbclk", "ehrpwm0_tbclk"), 114 - DT_CLK("48302200.ehrpwm", "tbclk", "ehrpwm1_tbclk"), 115 - DT_CLK("48304200.ehrpwm", "tbclk", "ehrpwm2_tbclk"), 116 - DT_CLK("48306200.ehrpwm", "tbclk", "ehrpwm3_tbclk"), 117 - DT_CLK("48308200.ehrpwm", "tbclk", "ehrpwm4_tbclk"), 118 - DT_CLK("4830a200.ehrpwm", "tbclk", "ehrpwm5_tbclk"), 119 - DT_CLK("48300200.pwm", "tbclk", "ehrpwm0_tbclk"), 120 - DT_CLK("48302200.pwm", "tbclk", "ehrpwm1_tbclk"), 121 - DT_CLK("48304200.pwm", "tbclk", "ehrpwm2_tbclk"), 122 - DT_CLK("48306200.pwm", "tbclk", "ehrpwm3_tbclk"), 123 - DT_CLK("48308200.pwm", "tbclk", "ehrpwm4_tbclk"), 124 - DT_CLK("4830a200.pwm", "tbclk", "ehrpwm5_tbclk"), 215 + DT_CLK(NULL, "gpio0_dbclk", "l4_wkup_cm:0348:8"), 216 + DT_CLK(NULL, "gpio1_dbclk", "l4_per_cm:0458:8"), 217 + DT_CLK(NULL, "gpio2_dbclk", "l4_per_cm:0460:8"), 218 + DT_CLK(NULL, "gpio3_dbclk", "l4_per_cm:0468:8"), 219 + DT_CLK(NULL, "gpio4_dbclk", "l4_per_cm:0470:8"), 220 + DT_CLK(NULL, "gpio5_dbclk", "l4_per_cm:0478:8"), 221 + DT_CLK(NULL, "synctimer_32kclk", "l4_wkup_cm:0210:8"), 222 + DT_CLK(NULL, "usb_otg_ss0_refclk960m", "l4_per_cm:0240:8"), 223 + DT_CLK(NULL, "usb_otg_ss1_refclk960m", "l4_per_cm:0248:8"), 125 224 { .node_name = NULL }, 126 225 }; 127 226 ··· 231 132 ti_dt_clocks_register(am43xx_clks); 232 133 233 134 omap2_clk_disable_autoidle_all(); 135 + 136 + ti_clk_add_aliases(); 234 137 235 138 /* 236 139 * cpsw_cpts_rft_clk has got the choice of 3 clocksources
+115 -85
drivers/clk/ti/clk-44xx.c
··· 35 35 #define OMAP4_DPLL_USB_DEFFREQ 960000000 36 36 37 37 static const struct omap_clkctrl_reg_data omap4_mpuss_clkctrl_regs[] __initconst = { 38 - { OMAP4_MPU_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_mpu_m2_ck" }, 38 + { OMAP4_MPU_CLKCTRL, NULL, 0, "dpll_mpu_m2_ck" }, 39 39 { 0 }, 40 40 }; 41 41 ··· 59 59 }; 60 60 61 61 static const char * const omap4_func_dmic_abe_gfclk_parents[] __initconst = { 62 - "dmic_sync_mux_ck", 62 + "abe_cm:clk:0018:26", 63 63 "pad_clks_ck", 64 64 "slimbus_clk", 65 65 NULL, ··· 79 79 }; 80 80 81 81 static const char * const omap4_func_mcasp_abe_gfclk_parents[] __initconst = { 82 - "mcasp_sync_mux_ck", 82 + "abe_cm:clk:0020:26", 83 83 "pad_clks_ck", 84 84 "slimbus_clk", 85 85 NULL, ··· 92 92 }; 93 93 94 94 static const char * const omap4_func_mcbsp1_gfclk_parents[] __initconst = { 95 - "mcbsp1_sync_mux_ck", 95 + "abe_cm:clk:0028:26", 96 96 "pad_clks_ck", 97 97 "slimbus_clk", 98 98 NULL, ··· 105 105 }; 106 106 107 107 static const char * const omap4_func_mcbsp2_gfclk_parents[] __initconst = { 108 - "mcbsp2_sync_mux_ck", 108 + "abe_cm:clk:0030:26", 109 109 "pad_clks_ck", 110 110 "slimbus_clk", 111 111 NULL, ··· 118 118 }; 119 119 120 120 static const char * const omap4_func_mcbsp3_gfclk_parents[] __initconst = { 121 - "mcbsp3_sync_mux_ck", 121 + "abe_cm:clk:0038:26", 122 122 "pad_clks_ck", 123 123 "slimbus_clk", 124 124 NULL, ··· 186 186 187 187 static const struct omap_clkctrl_reg_data omap4_abe_clkctrl_regs[] __initconst = { 188 188 { OMAP4_L4_ABE_CLKCTRL, NULL, 0, "ocp_abe_iclk" }, 189 - { OMAP4_AESS_CLKCTRL, omap4_aess_bit_data, CLKF_SW_SUP, "aess_fclk" }, 189 + { OMAP4_AESS_CLKCTRL, omap4_aess_bit_data, CLKF_SW_SUP, "abe_cm:clk:0008:24" }, 190 190 { OMAP4_MCPDM_CLKCTRL, NULL, CLKF_SW_SUP, "pad_clks_ck" }, 191 - { OMAP4_DMIC_CLKCTRL, omap4_dmic_bit_data, CLKF_SW_SUP, "func_dmic_abe_gfclk" }, 192 - { OMAP4_MCASP_CLKCTRL, omap4_mcasp_bit_data, CLKF_SW_SUP, "func_mcasp_abe_gfclk" }, 193 - { OMAP4_MCBSP1_CLKCTRL, omap4_mcbsp1_bit_data, CLKF_SW_SUP, "func_mcbsp1_gfclk" }, 194 - { OMAP4_MCBSP2_CLKCTRL, omap4_mcbsp2_bit_data, CLKF_SW_SUP, "func_mcbsp2_gfclk" }, 195 - { OMAP4_MCBSP3_CLKCTRL, omap4_mcbsp3_bit_data, CLKF_SW_SUP, "func_mcbsp3_gfclk" }, 196 - { OMAP4_SLIMBUS1_CLKCTRL, omap4_slimbus1_bit_data, CLKF_SW_SUP, "slimbus1_fclk_0" }, 197 - { OMAP4_TIMER5_CLKCTRL, omap4_timer5_bit_data, CLKF_SW_SUP, "timer5_sync_mux" }, 198 - { OMAP4_TIMER6_CLKCTRL, omap4_timer6_bit_data, CLKF_SW_SUP, "timer6_sync_mux" }, 199 - { OMAP4_TIMER7_CLKCTRL, omap4_timer7_bit_data, CLKF_SW_SUP, "timer7_sync_mux" }, 200 - { OMAP4_TIMER8_CLKCTRL, omap4_timer8_bit_data, CLKF_SW_SUP, "timer8_sync_mux" }, 191 + { OMAP4_DMIC_CLKCTRL, omap4_dmic_bit_data, CLKF_SW_SUP, "abe_cm:clk:0018:24" }, 192 + { OMAP4_MCASP_CLKCTRL, omap4_mcasp_bit_data, CLKF_SW_SUP, "abe_cm:clk:0020:24" }, 193 + { OMAP4_MCBSP1_CLKCTRL, omap4_mcbsp1_bit_data, CLKF_SW_SUP, "abe_cm:clk:0028:24" }, 194 + { OMAP4_MCBSP2_CLKCTRL, omap4_mcbsp2_bit_data, CLKF_SW_SUP, "abe_cm:clk:0030:24" }, 195 + { OMAP4_MCBSP3_CLKCTRL, omap4_mcbsp3_bit_data, CLKF_SW_SUP, "abe_cm:clk:0038:24" }, 196 + { OMAP4_SLIMBUS1_CLKCTRL, omap4_slimbus1_bit_data, CLKF_SW_SUP, "abe_cm:clk:0040:8" }, 197 + { OMAP4_TIMER5_CLKCTRL, omap4_timer5_bit_data, CLKF_SW_SUP, "abe_cm:clk:0048:24" }, 198 + { OMAP4_TIMER6_CLKCTRL, omap4_timer6_bit_data, CLKF_SW_SUP, "abe_cm:clk:0050:24" }, 199 + { OMAP4_TIMER7_CLKCTRL, omap4_timer7_bit_data, CLKF_SW_SUP, "abe_cm:clk:0058:24" }, 200 + { OMAP4_TIMER8_CLKCTRL, omap4_timer8_bit_data, CLKF_SW_SUP, "abe_cm:clk:0060:24" }, 201 201 { OMAP4_WD_TIMER3_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 202 202 { 0 }, 203 203 }; ··· 280 280 281 281 static const struct omap_clkctrl_div_data omap4_fdif_fck_data __initconst = { 282 282 .max_div = 4, 283 + .flags = CLK_DIVIDER_POWER_OF_TWO, 283 284 }; 284 285 285 286 static const struct omap_clkctrl_bit_data omap4_fdif_bit_data[] __initconst = { ··· 290 289 291 290 static const struct omap_clkctrl_reg_data omap4_iss_clkctrl_regs[] __initconst = { 292 291 { OMAP4_ISS_CLKCTRL, omap4_iss_bit_data, CLKF_SW_SUP, "ducati_clk_mux_ck" }, 293 - { OMAP4_FDIF_CLKCTRL, omap4_fdif_bit_data, CLKF_SW_SUP, "fdif_fck" }, 292 + { OMAP4_FDIF_CLKCTRL, omap4_fdif_bit_data, CLKF_SW_SUP, "iss_cm:clk:0008:24" }, 294 293 { 0 }, 295 294 }; 296 295 ··· 323 322 }; 324 323 325 324 static const struct omap_clkctrl_reg_data omap4_l3_dss_clkctrl_regs[] __initconst = { 326 - { OMAP4_DSS_CORE_CLKCTRL, omap4_dss_core_bit_data, CLKF_SW_SUP, "dss_dss_clk" }, 325 + { OMAP4_DSS_CORE_CLKCTRL, omap4_dss_core_bit_data, CLKF_SW_SUP, "l3_dss_cm:clk:0000:8" }, 327 326 { 0 }, 328 327 }; 329 328 ··· 339 338 }; 340 339 341 340 static const struct omap_clkctrl_reg_data omap4_l3_gfx_clkctrl_regs[] __initconst = { 342 - { OMAP4_GPU_CLKCTRL, omap4_gpu_bit_data, CLKF_SW_SUP, "sgx_clk_mux" }, 341 + { OMAP4_GPU_CLKCTRL, omap4_gpu_bit_data, CLKF_SW_SUP, "l3_gfx_cm:clk:0000:24" }, 343 342 { 0 }, 344 343 }; 345 344 ··· 366 365 367 366 static const struct omap_clkctrl_div_data omap4_hsi_fck_data __initconst = { 368 367 .max_div = 4, 368 + .flags = CLK_DIVIDER_POWER_OF_TWO, 369 369 }; 370 370 371 371 static const struct omap_clkctrl_bit_data omap4_hsi_bit_data[] __initconst = { ··· 375 373 }; 376 374 377 375 static const char * const omap4_usb_host_hs_utmi_p1_clk_parents[] __initconst = { 378 - "utmi_p1_gfclk", 376 + "l3_init_cm:clk:0038:24", 379 377 NULL, 380 378 }; 381 379 382 380 static const char * const omap4_usb_host_hs_utmi_p2_clk_parents[] __initconst = { 383 - "utmi_p2_gfclk", 381 + "l3_init_cm:clk:0038:25", 384 382 NULL, 385 383 }; 386 384 ··· 421 419 }; 422 420 423 421 static const char * const omap4_usb_otg_hs_xclk_parents[] __initconst = { 424 - "otg_60m_gfclk", 422 + "l3_init_cm:clk:0040:24", 425 423 NULL, 426 424 }; 427 425 ··· 455 453 }; 456 454 457 455 static const struct omap_clkctrl_reg_data omap4_l3_init_clkctrl_regs[] __initconst = { 458 - { OMAP4_MMC1_CLKCTRL, omap4_mmc1_bit_data, CLKF_SW_SUP, "hsmmc1_fclk" }, 459 - { OMAP4_MMC2_CLKCTRL, omap4_mmc2_bit_data, CLKF_SW_SUP, "hsmmc2_fclk" }, 460 - { OMAP4_HSI_CLKCTRL, omap4_hsi_bit_data, CLKF_HW_SUP, "hsi_fck" }, 456 + { OMAP4_MMC1_CLKCTRL, omap4_mmc1_bit_data, CLKF_SW_SUP, "l3_init_cm:clk:0008:24" }, 457 + { OMAP4_MMC2_CLKCTRL, omap4_mmc2_bit_data, CLKF_SW_SUP, "l3_init_cm:clk:0010:24" }, 458 + { OMAP4_HSI_CLKCTRL, omap4_hsi_bit_data, CLKF_HW_SUP, "l3_init_cm:clk:0018:24" }, 461 459 { OMAP4_USB_HOST_HS_CLKCTRL, omap4_usb_host_hs_bit_data, CLKF_SW_SUP, "init_60m_fclk" }, 462 460 { OMAP4_USB_OTG_HS_CLKCTRL, omap4_usb_otg_hs_bit_data, CLKF_HW_SUP, "l3_div_ck" }, 463 461 { OMAP4_USB_TLL_HS_CLKCTRL, omap4_usb_tll_hs_bit_data, CLKF_HW_SUP, "l4_div_ck" }, 464 462 { OMAP4_USB_HOST_FS_CLKCTRL, NULL, CLKF_SW_SUP, "func_48mc_fclk" }, 465 - { OMAP4_OCP2SCP_USB_PHY_CLKCTRL, omap4_ocp2scp_usb_phy_bit_data, CLKF_HW_SUP, "ocp2scp_usb_phy_phy_48m" }, 463 + { OMAP4_OCP2SCP_USB_PHY_CLKCTRL, omap4_ocp2scp_usb_phy_bit_data, CLKF_HW_SUP, "l3_init_cm:clk:00c0:8" }, 466 464 { 0 }, 467 465 }; 468 466 ··· 533 531 }; 534 532 535 533 static const char * const omap4_per_mcbsp4_gfclk_parents[] __initconst = { 536 - "mcbsp4_sync_mux_ck", 534 + "l4_per_cm:clk:00c0:26", 537 535 "pad_clks_ck", 538 536 NULL, 539 537 }; ··· 546 544 547 545 static const struct omap_clkctrl_bit_data omap4_mcbsp4_bit_data[] __initconst = { 548 546 { 24, TI_CLK_MUX, omap4_per_mcbsp4_gfclk_parents, NULL }, 549 - { 25, TI_CLK_MUX, omap4_mcbsp4_sync_mux_ck_parents, NULL }, 547 + { 26, TI_CLK_MUX, omap4_mcbsp4_sync_mux_ck_parents, NULL }, 550 548 { 0 }, 551 549 }; 552 550 ··· 573 571 }; 574 572 575 573 static const struct omap_clkctrl_reg_data omap4_l4_per_clkctrl_regs[] __initconst = { 576 - { OMAP4_TIMER10_CLKCTRL, omap4_timer10_bit_data, CLKF_SW_SUP, "cm2_dm10_mux" }, 577 - { OMAP4_TIMER11_CLKCTRL, omap4_timer11_bit_data, CLKF_SW_SUP, "cm2_dm11_mux" }, 578 - { OMAP4_TIMER2_CLKCTRL, omap4_timer2_bit_data, CLKF_SW_SUP, "cm2_dm2_mux" }, 579 - { OMAP4_TIMER3_CLKCTRL, omap4_timer3_bit_data, CLKF_SW_SUP, "cm2_dm3_mux" }, 580 - { OMAP4_TIMER4_CLKCTRL, omap4_timer4_bit_data, CLKF_SW_SUP, "cm2_dm4_mux" }, 581 - { OMAP4_TIMER9_CLKCTRL, omap4_timer9_bit_data, CLKF_SW_SUP, "cm2_dm9_mux" }, 574 + { OMAP4_TIMER10_CLKCTRL, omap4_timer10_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0008:24" }, 575 + { OMAP4_TIMER11_CLKCTRL, omap4_timer11_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0010:24" }, 576 + { OMAP4_TIMER2_CLKCTRL, omap4_timer2_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0018:24" }, 577 + { OMAP4_TIMER3_CLKCTRL, omap4_timer3_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0020:24" }, 578 + { OMAP4_TIMER4_CLKCTRL, omap4_timer4_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0028:24" }, 579 + { OMAP4_TIMER9_CLKCTRL, omap4_timer9_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0030:24" }, 582 580 { OMAP4_ELM_CLKCTRL, NULL, 0, "l4_div_ck" }, 583 581 { OMAP4_GPIO2_CLKCTRL, omap4_gpio2_bit_data, CLKF_HW_SUP, "l4_div_ck" }, 584 582 { OMAP4_GPIO3_CLKCTRL, omap4_gpio3_bit_data, CLKF_HW_SUP, "l4_div_ck" }, ··· 591 589 { OMAP4_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 592 590 { OMAP4_I2C4_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 593 591 { OMAP4_L4_PER_CLKCTRL, NULL, 0, "l4_div_ck" }, 594 - { OMAP4_MCBSP4_CLKCTRL, omap4_mcbsp4_bit_data, CLKF_SW_SUP, "per_mcbsp4_gfclk" }, 592 + { OMAP4_MCBSP4_CLKCTRL, omap4_mcbsp4_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:00c0:24" }, 595 593 { OMAP4_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 596 594 { OMAP4_MCSPI2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 597 595 { OMAP4_MCSPI3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 598 596 { OMAP4_MCSPI4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 599 597 { OMAP4_MMC3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 600 598 { OMAP4_MMC4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 601 - { OMAP4_SLIMBUS2_CLKCTRL, omap4_slimbus2_bit_data, CLKF_SW_SUP, "slimbus2_fclk_0" }, 599 + { OMAP4_SLIMBUS2_CLKCTRL, omap4_slimbus2_bit_data, CLKF_SW_SUP, "l4_per_cm:clk:0118:8" }, 602 600 { OMAP4_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 603 601 { OMAP4_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 604 602 { OMAP4_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, ··· 621 619 { OMAP4_L4_WKUP_CLKCTRL, NULL, 0, "l4_wkup_clk_mux_ck" }, 622 620 { OMAP4_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 623 621 { OMAP4_GPIO1_CLKCTRL, omap4_gpio1_bit_data, CLKF_HW_SUP, "l4_wkup_clk_mux_ck" }, 624 - { OMAP4_TIMER1_CLKCTRL, omap4_timer1_bit_data, CLKF_SW_SUP, "dmt1_clk_mux" }, 622 + { OMAP4_TIMER1_CLKCTRL, omap4_timer1_bit_data, CLKF_SW_SUP, "l4_wkup_cm:clk:0020:24" }, 625 623 { OMAP4_COUNTER_32K_CLKCTRL, NULL, 0, "sys_32k_ck" }, 626 624 { OMAP4_KBD_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 627 625 { 0 }, ··· 635 633 }; 636 634 637 635 static const char * const omap4_trace_clk_div_div_ck_parents[] __initconst = { 638 - "pmd_trace_clk_mux_ck", 636 + "emu_sys_cm:clk:0000:22", 639 637 NULL, 640 638 }; 641 639 ··· 653 651 }; 654 652 655 653 static const char * const omap4_stm_clk_div_ck_parents[] __initconst = { 656 - "pmd_stm_clock_mux_ck", 654 + "emu_sys_cm:clk:0000:20", 657 655 NULL, 658 656 }; 659 657 660 658 static const struct omap_clkctrl_div_data omap4_stm_clk_div_ck_data __initconst = { 661 659 .max_div = 64, 660 + .flags = CLK_DIVIDER_POWER_OF_TWO, 662 661 }; 663 662 664 663 static const struct omap_clkctrl_bit_data omap4_debugss_bit_data[] __initconst = { ··· 700 697 }; 701 698 702 699 static struct ti_dt_clk omap44xx_clks[] = { 703 - DT_CLK("smp_twd", NULL, "mpu_periphclk"), 704 - DT_CLK("omapdss_dss", "ick", "dss_fck"), 705 - DT_CLK("usbhs_omap", "fs_fck", "usb_host_fs_fck"), 706 - DT_CLK("usbhs_omap", "hs_fck", "usb_host_hs_fck"), 707 - DT_CLK("musb-omap2430", "ick", "usb_otg_hs_ick"), 708 - DT_CLK("usbhs_omap", "usbtll_ick", "usb_tll_hs_ick"), 709 - DT_CLK("usbhs_tll", "usbtll_ick", "usb_tll_hs_ick"), 710 - DT_CLK("omap_i2c.1", "ick", "dummy_ck"), 711 - DT_CLK("omap_i2c.2", "ick", "dummy_ck"), 712 - DT_CLK("omap_i2c.3", "ick", "dummy_ck"), 713 - DT_CLK("omap_i2c.4", "ick", "dummy_ck"), 714 - DT_CLK(NULL, "mailboxes_ick", "dummy_ck"), 715 - DT_CLK("omap_hsmmc.0", "ick", "dummy_ck"), 716 - DT_CLK("omap_hsmmc.1", "ick", "dummy_ck"), 717 - DT_CLK("omap_hsmmc.2", "ick", "dummy_ck"), 718 - DT_CLK("omap_hsmmc.3", "ick", "dummy_ck"), 719 - DT_CLK("omap_hsmmc.4", "ick", "dummy_ck"), 720 - DT_CLK("omap-mcbsp.1", "ick", "dummy_ck"), 721 - DT_CLK("omap-mcbsp.2", "ick", "dummy_ck"), 722 - DT_CLK("omap-mcbsp.3", "ick", "dummy_ck"), 723 - DT_CLK("omap-mcbsp.4", "ick", "dummy_ck"), 724 - DT_CLK("omap2_mcspi.1", "ick", "dummy_ck"), 725 - DT_CLK("omap2_mcspi.2", "ick", "dummy_ck"), 726 - DT_CLK("omap2_mcspi.3", "ick", "dummy_ck"), 727 - DT_CLK("omap2_mcspi.4", "ick", "dummy_ck"), 728 - DT_CLK(NULL, "uart1_ick", "dummy_ck"), 729 - DT_CLK(NULL, "uart2_ick", "dummy_ck"), 730 - DT_CLK(NULL, "uart3_ick", "dummy_ck"), 731 - DT_CLK(NULL, "uart4_ick", "dummy_ck"), 732 - DT_CLK("usbhs_omap", "usbhost_ick", "dummy_ck"), 733 - DT_CLK("usbhs_omap", "usbtll_fck", "dummy_ck"), 734 - DT_CLK("usbhs_tll", "usbtll_fck", "dummy_ck"), 735 - DT_CLK("omap_wdt", "ick", "dummy_ck"), 736 700 DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), 737 - DT_CLK("4a318000.timer", "timer_sys_ck", "sys_clkin_ck"), 738 - DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin_ck"), 739 - DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin_ck"), 740 - DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin_ck"), 741 - DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin_ck"), 742 - DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin_ck"), 743 - DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin_ck"), 744 - DT_CLK("40138000.timer", "timer_sys_ck", "syc_clk_div_ck"), 745 - DT_CLK("4013a000.timer", "timer_sys_ck", "syc_clk_div_ck"), 746 - DT_CLK("4013c000.timer", "timer_sys_ck", "syc_clk_div_ck"), 747 - DT_CLK("4013e000.timer", "timer_sys_ck", "syc_clk_div_ck"), 748 - DT_CLK(NULL, "cpufreq_ck", "dpll_mpu_ck"), 701 + /* 702 + * XXX: All the clock aliases below are only needed for legacy 703 + * hwmod support. Once hwmod is removed, these can be removed 704 + * also. 705 + */ 706 + DT_CLK(NULL, "aess_fclk", "abe_cm:0008:24"), 707 + DT_CLK(NULL, "cm2_dm10_mux", "l4_per_cm:0008:24"), 708 + DT_CLK(NULL, "cm2_dm11_mux", "l4_per_cm:0010:24"), 709 + DT_CLK(NULL, "cm2_dm2_mux", "l4_per_cm:0018:24"), 710 + DT_CLK(NULL, "cm2_dm3_mux", "l4_per_cm:0020:24"), 711 + DT_CLK(NULL, "cm2_dm4_mux", "l4_per_cm:0028:24"), 712 + DT_CLK(NULL, "cm2_dm9_mux", "l4_per_cm:0030:24"), 713 + DT_CLK(NULL, "dmic_sync_mux_ck", "abe_cm:0018:26"), 714 + DT_CLK(NULL, "dmt1_clk_mux", "l4_wkup_cm:0020:24"), 715 + DT_CLK(NULL, "dss_48mhz_clk", "l3_dss_cm:0000:9"), 716 + DT_CLK(NULL, "dss_dss_clk", "l3_dss_cm:0000:8"), 717 + DT_CLK(NULL, "dss_sys_clk", "l3_dss_cm:0000:10"), 718 + DT_CLK(NULL, "dss_tv_clk", "l3_dss_cm:0000:11"), 719 + DT_CLK(NULL, "fdif_fck", "iss_cm:0008:24"), 720 + DT_CLK(NULL, "func_dmic_abe_gfclk", "abe_cm:0018:24"), 721 + DT_CLK(NULL, "func_mcasp_abe_gfclk", "abe_cm:0020:24"), 722 + DT_CLK(NULL, "func_mcbsp1_gfclk", "abe_cm:0028:24"), 723 + DT_CLK(NULL, "func_mcbsp2_gfclk", "abe_cm:0030:24"), 724 + DT_CLK(NULL, "func_mcbsp3_gfclk", "abe_cm:0038:24"), 725 + DT_CLK(NULL, "gpio1_dbclk", "l4_wkup_cm:0018:8"), 726 + DT_CLK(NULL, "gpio2_dbclk", "l4_per_cm:0040:8"), 727 + DT_CLK(NULL, "gpio3_dbclk", "l4_per_cm:0048:8"), 728 + DT_CLK(NULL, "gpio4_dbclk", "l4_per_cm:0050:8"), 729 + DT_CLK(NULL, "gpio5_dbclk", "l4_per_cm:0058:8"), 730 + DT_CLK(NULL, "gpio6_dbclk", "l4_per_cm:0060:8"), 731 + DT_CLK(NULL, "hsi_fck", "l3_init_cm:0018:24"), 732 + DT_CLK(NULL, "hsmmc1_fclk", "l3_init_cm:0008:24"), 733 + DT_CLK(NULL, "hsmmc2_fclk", "l3_init_cm:0010:24"), 734 + DT_CLK(NULL, "iss_ctrlclk", "iss_cm:0000:8"), 735 + DT_CLK(NULL, "mcasp_sync_mux_ck", "abe_cm:0020:26"), 736 + DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe_cm:0028:26"), 737 + DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe_cm:0030:26"), 738 + DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe_cm:0038:26"), 739 + DT_CLK(NULL, "mcbsp4_sync_mux_ck", "l4_per_cm:00c0:26"), 740 + DT_CLK(NULL, "ocp2scp_usb_phy_phy_48m", "l3_init_cm:00c0:8"), 741 + DT_CLK(NULL, "otg_60m_gfclk", "l3_init_cm:0040:24"), 742 + DT_CLK(NULL, "per_mcbsp4_gfclk", "l4_per_cm:00c0:24"), 743 + DT_CLK(NULL, "pmd_stm_clock_mux_ck", "emu_sys_cm:0000:20"), 744 + DT_CLK(NULL, "pmd_trace_clk_mux_ck", "emu_sys_cm:0000:22"), 745 + DT_CLK(NULL, "sgx_clk_mux", "l3_gfx_cm:0000:24"), 746 + DT_CLK(NULL, "slimbus1_fclk_0", "abe_cm:0040:8"), 747 + DT_CLK(NULL, "slimbus1_fclk_1", "abe_cm:0040:9"), 748 + DT_CLK(NULL, "slimbus1_fclk_2", "abe_cm:0040:10"), 749 + DT_CLK(NULL, "slimbus1_slimbus_clk", "abe_cm:0040:11"), 750 + DT_CLK(NULL, "slimbus2_fclk_0", "l4_per_cm:0118:8"), 751 + DT_CLK(NULL, "slimbus2_fclk_1", "l4_per_cm:0118:9"), 752 + DT_CLK(NULL, "slimbus2_slimbus_clk", "l4_per_cm:0118:10"), 753 + DT_CLK(NULL, "stm_clk_div_ck", "emu_sys_cm:0000:27"), 754 + DT_CLK(NULL, "timer5_sync_mux", "abe_cm:0048:24"), 755 + DT_CLK(NULL, "timer6_sync_mux", "abe_cm:0050:24"), 756 + DT_CLK(NULL, "timer7_sync_mux", "abe_cm:0058:24"), 757 + DT_CLK(NULL, "timer8_sync_mux", "abe_cm:0060:24"), 758 + DT_CLK(NULL, "trace_clk_div_div_ck", "emu_sys_cm:0000:24"), 759 + DT_CLK(NULL, "usb_host_hs_func48mclk", "l3_init_cm:0038:15"), 760 + DT_CLK(NULL, "usb_host_hs_hsic480m_p1_clk", "l3_init_cm:0038:13"), 761 + DT_CLK(NULL, "usb_host_hs_hsic480m_p2_clk", "l3_init_cm:0038:14"), 762 + DT_CLK(NULL, "usb_host_hs_hsic60m_p1_clk", "l3_init_cm:0038:11"), 763 + DT_CLK(NULL, "usb_host_hs_hsic60m_p2_clk", "l3_init_cm:0038:12"), 764 + DT_CLK(NULL, "usb_host_hs_utmi_p1_clk", "l3_init_cm:0038:8"), 765 + DT_CLK(NULL, "usb_host_hs_utmi_p2_clk", "l3_init_cm:0038:9"), 766 + DT_CLK(NULL, "usb_host_hs_utmi_p3_clk", "l3_init_cm:0038:10"), 767 + DT_CLK(NULL, "usb_otg_hs_xclk", "l3_init_cm:0040:8"), 768 + DT_CLK(NULL, "usb_tll_hs_usb_ch0_clk", "l3_init_cm:0048:8"), 769 + DT_CLK(NULL, "usb_tll_hs_usb_ch1_clk", "l3_init_cm:0048:9"), 770 + DT_CLK(NULL, "usb_tll_hs_usb_ch2_clk", "l3_init_cm:0048:10"), 771 + DT_CLK(NULL, "utmi_p1_gfclk", "l3_init_cm:0038:24"), 772 + DT_CLK(NULL, "utmi_p2_gfclk", "l3_init_cm:0038:25"), 749 773 { .node_name = NULL }, 750 774 }; 751 775
+505 -192
drivers/clk/ti/clk-54xx.c
··· 16 16 #include <linux/clkdev.h> 17 17 #include <linux/io.h> 18 18 #include <linux/clk/ti.h> 19 + #include <dt-bindings/clock/omap5.h> 19 20 20 21 #include "clock.h" 21 22 ··· 28 27 */ 29 28 #define OMAP5_DPLL_USB_DEFFREQ 960000000 30 29 30 + static const struct omap_clkctrl_reg_data omap5_mpu_clkctrl_regs[] __initconst = { 31 + { OMAP5_MPU_CLKCTRL, NULL, 0, "dpll_mpu_m2_ck" }, 32 + { 0 }, 33 + }; 34 + 35 + static const struct omap_clkctrl_reg_data omap5_dsp_clkctrl_regs[] __initconst = { 36 + { OMAP5_MMU_DSP_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_h11x2_ck" }, 37 + { 0 }, 38 + }; 39 + 40 + static const char * const omap5_dmic_gfclk_parents[] __initconst = { 41 + "abe_cm:clk:0018:26", 42 + "pad_clks_ck", 43 + "slimbus_clk", 44 + NULL, 45 + }; 46 + 47 + static const char * const omap5_dmic_sync_mux_ck_parents[] __initconst = { 48 + "abe_24m_fclk", 49 + "dss_syc_gfclk_div", 50 + "func_24m_clk", 51 + NULL, 52 + }; 53 + 54 + static const struct omap_clkctrl_bit_data omap5_dmic_bit_data[] __initconst = { 55 + { 24, TI_CLK_MUX, omap5_dmic_gfclk_parents, NULL }, 56 + { 26, TI_CLK_MUX, omap5_dmic_sync_mux_ck_parents, NULL }, 57 + { 0 }, 58 + }; 59 + 60 + static const char * const omap5_mcbsp1_gfclk_parents[] __initconst = { 61 + "abe_cm:clk:0028:26", 62 + "pad_clks_ck", 63 + "slimbus_clk", 64 + NULL, 65 + }; 66 + 67 + static const struct omap_clkctrl_bit_data omap5_mcbsp1_bit_data[] __initconst = { 68 + { 24, TI_CLK_MUX, omap5_mcbsp1_gfclk_parents, NULL }, 69 + { 26, TI_CLK_MUX, omap5_dmic_sync_mux_ck_parents, NULL }, 70 + { 0 }, 71 + }; 72 + 73 + static const char * const omap5_mcbsp2_gfclk_parents[] __initconst = { 74 + "abe_cm:clk:0030:26", 75 + "pad_clks_ck", 76 + "slimbus_clk", 77 + NULL, 78 + }; 79 + 80 + static const struct omap_clkctrl_bit_data omap5_mcbsp2_bit_data[] __initconst = { 81 + { 24, TI_CLK_MUX, omap5_mcbsp2_gfclk_parents, NULL }, 82 + { 26, TI_CLK_MUX, omap5_dmic_sync_mux_ck_parents, NULL }, 83 + { 0 }, 84 + }; 85 + 86 + static const char * const omap5_mcbsp3_gfclk_parents[] __initconst = { 87 + "abe_cm:clk:0038:26", 88 + "pad_clks_ck", 89 + "slimbus_clk", 90 + NULL, 91 + }; 92 + 93 + static const struct omap_clkctrl_bit_data omap5_mcbsp3_bit_data[] __initconst = { 94 + { 24, TI_CLK_MUX, omap5_mcbsp3_gfclk_parents, NULL }, 95 + { 26, TI_CLK_MUX, omap5_dmic_sync_mux_ck_parents, NULL }, 96 + { 0 }, 97 + }; 98 + 99 + static const char * const omap5_timer5_gfclk_mux_parents[] __initconst = { 100 + "dss_syc_gfclk_div", 101 + "sys_32k_ck", 102 + NULL, 103 + }; 104 + 105 + static const struct omap_clkctrl_bit_data omap5_timer5_bit_data[] __initconst = { 106 + { 24, TI_CLK_MUX, omap5_timer5_gfclk_mux_parents, NULL }, 107 + { 0 }, 108 + }; 109 + 110 + static const struct omap_clkctrl_bit_data omap5_timer6_bit_data[] __initconst = { 111 + { 24, TI_CLK_MUX, omap5_timer5_gfclk_mux_parents, NULL }, 112 + { 0 }, 113 + }; 114 + 115 + static const struct omap_clkctrl_bit_data omap5_timer7_bit_data[] __initconst = { 116 + { 24, TI_CLK_MUX, omap5_timer5_gfclk_mux_parents, NULL }, 117 + { 0 }, 118 + }; 119 + 120 + static const struct omap_clkctrl_bit_data omap5_timer8_bit_data[] __initconst = { 121 + { 24, TI_CLK_MUX, omap5_timer5_gfclk_mux_parents, NULL }, 122 + { 0 }, 123 + }; 124 + 125 + static const struct omap_clkctrl_reg_data omap5_abe_clkctrl_regs[] __initconst = { 126 + { OMAP5_L4_ABE_CLKCTRL, NULL, 0, "abe_iclk" }, 127 + { OMAP5_MCPDM_CLKCTRL, NULL, CLKF_SW_SUP, "pad_clks_ck" }, 128 + { OMAP5_DMIC_CLKCTRL, omap5_dmic_bit_data, CLKF_SW_SUP, "abe_cm:clk:0018:24" }, 129 + { OMAP5_MCBSP1_CLKCTRL, omap5_mcbsp1_bit_data, CLKF_SW_SUP, "abe_cm:clk:0028:24" }, 130 + { OMAP5_MCBSP2_CLKCTRL, omap5_mcbsp2_bit_data, CLKF_SW_SUP, "abe_cm:clk:0030:24" }, 131 + { OMAP5_MCBSP3_CLKCTRL, omap5_mcbsp3_bit_data, CLKF_SW_SUP, "abe_cm:clk:0038:24" }, 132 + { OMAP5_TIMER5_CLKCTRL, omap5_timer5_bit_data, CLKF_SW_SUP, "abe_cm:clk:0048:24" }, 133 + { OMAP5_TIMER6_CLKCTRL, omap5_timer6_bit_data, CLKF_SW_SUP, "abe_cm:clk:0050:24" }, 134 + { OMAP5_TIMER7_CLKCTRL, omap5_timer7_bit_data, CLKF_SW_SUP, "abe_cm:clk:0058:24" }, 135 + { OMAP5_TIMER8_CLKCTRL, omap5_timer8_bit_data, CLKF_SW_SUP, "abe_cm:clk:0060:24" }, 136 + { 0 }, 137 + }; 138 + 139 + static const struct omap_clkctrl_reg_data omap5_l3main1_clkctrl_regs[] __initconst = { 140 + { OMAP5_L3_MAIN_1_CLKCTRL, NULL, 0, "l3_iclk_div" }, 141 + { 0 }, 142 + }; 143 + 144 + static const struct omap_clkctrl_reg_data omap5_l3main2_clkctrl_regs[] __initconst = { 145 + { OMAP5_L3_MAIN_2_CLKCTRL, NULL, 0, "l3_iclk_div" }, 146 + { 0 }, 147 + }; 148 + 149 + static const struct omap_clkctrl_reg_data omap5_ipu_clkctrl_regs[] __initconst = { 150 + { OMAP5_MMU_IPU_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h22x2_ck" }, 151 + { 0 }, 152 + }; 153 + 154 + static const struct omap_clkctrl_reg_data omap5_dma_clkctrl_regs[] __initconst = { 155 + { OMAP5_DMA_SYSTEM_CLKCTRL, NULL, 0, "l3_iclk_div" }, 156 + { 0 }, 157 + }; 158 + 159 + static const struct omap_clkctrl_reg_data omap5_emif_clkctrl_regs[] __initconst = { 160 + { OMAP5_DMM_CLKCTRL, NULL, 0, "l3_iclk_div" }, 161 + { OMAP5_EMIF1_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h11x2_ck" }, 162 + { OMAP5_EMIF2_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h11x2_ck" }, 163 + { 0 }, 164 + }; 165 + 166 + static const struct omap_clkctrl_reg_data omap5_l4cfg_clkctrl_regs[] __initconst = { 167 + { OMAP5_L4_CFG_CLKCTRL, NULL, 0, "l4_root_clk_div" }, 168 + { OMAP5_SPINLOCK_CLKCTRL, NULL, 0, "l4_root_clk_div" }, 169 + { OMAP5_MAILBOX_CLKCTRL, NULL, 0, "l4_root_clk_div" }, 170 + { 0 }, 171 + }; 172 + 173 + static const struct omap_clkctrl_reg_data omap5_l3instr_clkctrl_regs[] __initconst = { 174 + { OMAP5_L3_MAIN_3_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 175 + { OMAP5_L3_INSTR_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 176 + { 0 }, 177 + }; 178 + 179 + static const char * const omap5_timer10_gfclk_mux_parents[] __initconst = { 180 + "sys_clkin", 181 + "sys_32k_ck", 182 + NULL, 183 + }; 184 + 185 + static const struct omap_clkctrl_bit_data omap5_timer10_bit_data[] __initconst = { 186 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 187 + { 0 }, 188 + }; 189 + 190 + static const struct omap_clkctrl_bit_data omap5_timer11_bit_data[] __initconst = { 191 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 192 + { 0 }, 193 + }; 194 + 195 + static const struct omap_clkctrl_bit_data omap5_timer2_bit_data[] __initconst = { 196 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 197 + { 0 }, 198 + }; 199 + 200 + static const struct omap_clkctrl_bit_data omap5_timer3_bit_data[] __initconst = { 201 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 202 + { 0 }, 203 + }; 204 + 205 + static const struct omap_clkctrl_bit_data omap5_timer4_bit_data[] __initconst = { 206 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 207 + { 0 }, 208 + }; 209 + 210 + static const struct omap_clkctrl_bit_data omap5_timer9_bit_data[] __initconst = { 211 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 212 + { 0 }, 213 + }; 214 + 215 + static const char * const omap5_gpio2_dbclk_parents[] __initconst = { 216 + "sys_32k_ck", 217 + NULL, 218 + }; 219 + 220 + static const struct omap_clkctrl_bit_data omap5_gpio2_bit_data[] __initconst = { 221 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 222 + { 0 }, 223 + }; 224 + 225 + static const struct omap_clkctrl_bit_data omap5_gpio3_bit_data[] __initconst = { 226 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 227 + { 0 }, 228 + }; 229 + 230 + static const struct omap_clkctrl_bit_data omap5_gpio4_bit_data[] __initconst = { 231 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 232 + { 0 }, 233 + }; 234 + 235 + static const struct omap_clkctrl_bit_data omap5_gpio5_bit_data[] __initconst = { 236 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 237 + { 0 }, 238 + }; 239 + 240 + static const struct omap_clkctrl_bit_data omap5_gpio6_bit_data[] __initconst = { 241 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 242 + { 0 }, 243 + }; 244 + 245 + static const struct omap_clkctrl_bit_data omap5_gpio7_bit_data[] __initconst = { 246 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 247 + { 0 }, 248 + }; 249 + 250 + static const struct omap_clkctrl_bit_data omap5_gpio8_bit_data[] __initconst = { 251 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 252 + { 0 }, 253 + }; 254 + 255 + static const struct omap_clkctrl_reg_data omap5_l4per_clkctrl_regs[] __initconst = { 256 + { OMAP5_TIMER10_CLKCTRL, omap5_timer10_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0008:24" }, 257 + { OMAP5_TIMER11_CLKCTRL, omap5_timer11_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0010:24" }, 258 + { OMAP5_TIMER2_CLKCTRL, omap5_timer2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0018:24" }, 259 + { OMAP5_TIMER3_CLKCTRL, omap5_timer3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0020:24" }, 260 + { OMAP5_TIMER4_CLKCTRL, omap5_timer4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0028:24" }, 261 + { OMAP5_TIMER9_CLKCTRL, omap5_timer9_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0030:24" }, 262 + { OMAP5_GPIO2_CLKCTRL, omap5_gpio2_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 263 + { OMAP5_GPIO3_CLKCTRL, omap5_gpio3_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 264 + { OMAP5_GPIO4_CLKCTRL, omap5_gpio4_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 265 + { OMAP5_GPIO5_CLKCTRL, omap5_gpio5_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 266 + { OMAP5_GPIO6_CLKCTRL, omap5_gpio6_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 267 + { OMAP5_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 268 + { OMAP5_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 269 + { OMAP5_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 270 + { OMAP5_I2C4_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 271 + { OMAP5_L4_PER_CLKCTRL, NULL, 0, "l4_root_clk_div" }, 272 + { OMAP5_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 273 + { OMAP5_MCSPI2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 274 + { OMAP5_MCSPI3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 275 + { OMAP5_MCSPI4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 276 + { OMAP5_GPIO7_CLKCTRL, omap5_gpio7_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 277 + { OMAP5_GPIO8_CLKCTRL, omap5_gpio8_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 278 + { OMAP5_MMC3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 279 + { OMAP5_MMC4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 280 + { OMAP5_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 281 + { OMAP5_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 282 + { OMAP5_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 283 + { OMAP5_UART4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 284 + { OMAP5_MMC5_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 285 + { OMAP5_I2C5_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 286 + { OMAP5_UART5_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 287 + { OMAP5_UART6_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 288 + { 0 }, 289 + }; 290 + 291 + static const char * const omap5_dss_dss_clk_parents[] __initconst = { 292 + "dpll_per_h12x2_ck", 293 + NULL, 294 + }; 295 + 296 + static const char * const omap5_dss_48mhz_clk_parents[] __initconst = { 297 + "func_48m_fclk", 298 + NULL, 299 + }; 300 + 301 + static const char * const omap5_dss_sys_clk_parents[] __initconst = { 302 + "dss_syc_gfclk_div", 303 + NULL, 304 + }; 305 + 306 + static const struct omap_clkctrl_bit_data omap5_dss_core_bit_data[] __initconst = { 307 + { 8, TI_CLK_GATE, omap5_dss_dss_clk_parents, NULL }, 308 + { 9, TI_CLK_GATE, omap5_dss_48mhz_clk_parents, NULL }, 309 + { 10, TI_CLK_GATE, omap5_dss_sys_clk_parents, NULL }, 310 + { 11, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 311 + { 0 }, 312 + }; 313 + 314 + static const struct omap_clkctrl_reg_data omap5_dss_clkctrl_regs[] __initconst = { 315 + { OMAP5_DSS_CORE_CLKCTRL, omap5_dss_core_bit_data, CLKF_SW_SUP, "dss_cm:clk:0000:8" }, 316 + { 0 }, 317 + }; 318 + 319 + static const char * const omap5_mmc1_fclk_mux_parents[] __initconst = { 320 + "func_128m_clk", 321 + "dpll_per_m2x2_ck", 322 + NULL, 323 + }; 324 + 325 + static const char * const omap5_mmc1_fclk_parents[] __initconst = { 326 + "l3init_cm:clk:0008:24", 327 + NULL, 328 + }; 329 + 330 + static const struct omap_clkctrl_div_data omap5_mmc1_fclk_data __initconst = { 331 + .max_div = 2, 332 + }; 333 + 334 + static const struct omap_clkctrl_bit_data omap5_mmc1_bit_data[] __initconst = { 335 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 336 + { 24, TI_CLK_MUX, omap5_mmc1_fclk_mux_parents, NULL }, 337 + { 25, TI_CLK_DIVIDER, omap5_mmc1_fclk_parents, &omap5_mmc1_fclk_data }, 338 + { 0 }, 339 + }; 340 + 341 + static const char * const omap5_mmc2_fclk_parents[] __initconst = { 342 + "l3init_cm:clk:0010:24", 343 + NULL, 344 + }; 345 + 346 + static const struct omap_clkctrl_div_data omap5_mmc2_fclk_data __initconst = { 347 + .max_div = 2, 348 + }; 349 + 350 + static const struct omap_clkctrl_bit_data omap5_mmc2_bit_data[] __initconst = { 351 + { 24, TI_CLK_MUX, omap5_mmc1_fclk_mux_parents, NULL }, 352 + { 25, TI_CLK_DIVIDER, omap5_mmc2_fclk_parents, &omap5_mmc2_fclk_data }, 353 + { 0 }, 354 + }; 355 + 356 + static const char * const omap5_usb_host_hs_hsic60m_p3_clk_parents[] __initconst = { 357 + "l3init_60m_fclk", 358 + NULL, 359 + }; 360 + 361 + static const char * const omap5_usb_host_hs_hsic480m_p3_clk_parents[] __initconst = { 362 + "dpll_usb_m2_ck", 363 + NULL, 364 + }; 365 + 366 + static const char * const omap5_usb_host_hs_utmi_p1_clk_parents[] __initconst = { 367 + "l3init_cm:clk:0038:24", 368 + NULL, 369 + }; 370 + 371 + static const char * const omap5_usb_host_hs_utmi_p2_clk_parents[] __initconst = { 372 + "l3init_cm:clk:0038:25", 373 + NULL, 374 + }; 375 + 376 + static const char * const omap5_utmi_p1_gfclk_parents[] __initconst = { 377 + "l3init_60m_fclk", 378 + "xclk60mhsp1_ck", 379 + NULL, 380 + }; 381 + 382 + static const char * const omap5_utmi_p2_gfclk_parents[] __initconst = { 383 + "l3init_60m_fclk", 384 + "xclk60mhsp2_ck", 385 + NULL, 386 + }; 387 + 388 + static const struct omap_clkctrl_bit_data omap5_usb_host_hs_bit_data[] __initconst = { 389 + { 6, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 390 + { 7, TI_CLK_GATE, omap5_usb_host_hs_hsic480m_p3_clk_parents, NULL }, 391 + { 8, TI_CLK_GATE, omap5_usb_host_hs_utmi_p1_clk_parents, NULL }, 392 + { 9, TI_CLK_GATE, omap5_usb_host_hs_utmi_p2_clk_parents, NULL }, 393 + { 10, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 394 + { 11, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 395 + { 12, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 396 + { 13, TI_CLK_GATE, omap5_usb_host_hs_hsic480m_p3_clk_parents, NULL }, 397 + { 14, TI_CLK_GATE, omap5_usb_host_hs_hsic480m_p3_clk_parents, NULL }, 398 + { 24, TI_CLK_MUX, omap5_utmi_p1_gfclk_parents, NULL }, 399 + { 25, TI_CLK_MUX, omap5_utmi_p2_gfclk_parents, NULL }, 400 + { 0 }, 401 + }; 402 + 403 + static const struct omap_clkctrl_bit_data omap5_usb_tll_hs_bit_data[] __initconst = { 404 + { 8, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 405 + { 9, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 406 + { 10, TI_CLK_GATE, omap5_usb_host_hs_hsic60m_p3_clk_parents, NULL }, 407 + { 0 }, 408 + }; 409 + 410 + static const char * const omap5_sata_ref_clk_parents[] __initconst = { 411 + "sys_clkin", 412 + NULL, 413 + }; 414 + 415 + static const struct omap_clkctrl_bit_data omap5_sata_bit_data[] __initconst = { 416 + { 8, TI_CLK_GATE, omap5_sata_ref_clk_parents, NULL }, 417 + { 0 }, 418 + }; 419 + 420 + static const char * const omap5_usb_otg_ss_refclk960m_parents[] __initconst = { 421 + "dpll_usb_clkdcoldo", 422 + NULL, 423 + }; 424 + 425 + static const struct omap_clkctrl_bit_data omap5_usb_otg_ss_bit_data[] __initconst = { 426 + { 8, TI_CLK_GATE, omap5_usb_otg_ss_refclk960m_parents, NULL }, 427 + { 0 }, 428 + }; 429 + 430 + static const struct omap_clkctrl_reg_data omap5_l3init_clkctrl_regs[] __initconst = { 431 + { OMAP5_MMC1_CLKCTRL, omap5_mmc1_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0008:25" }, 432 + { OMAP5_MMC2_CLKCTRL, omap5_mmc2_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0010:25" }, 433 + { OMAP5_USB_HOST_HS_CLKCTRL, omap5_usb_host_hs_bit_data, CLKF_SW_SUP, "l3init_60m_fclk" }, 434 + { OMAP5_USB_TLL_HS_CLKCTRL, omap5_usb_tll_hs_bit_data, CLKF_HW_SUP, "l4_root_clk_div" }, 435 + { OMAP5_SATA_CLKCTRL, omap5_sata_bit_data, CLKF_SW_SUP, "func_48m_fclk" }, 436 + { OMAP5_OCP2SCP1_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" }, 437 + { OMAP5_OCP2SCP3_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" }, 438 + { OMAP5_USB_OTG_SS_CLKCTRL, omap5_usb_otg_ss_bit_data, CLKF_HW_SUP, "dpll_core_h13x2_ck" }, 439 + { 0 }, 440 + }; 441 + 442 + static const struct omap_clkctrl_bit_data omap5_gpio1_bit_data[] __initconst = { 443 + { 8, TI_CLK_GATE, omap5_gpio2_dbclk_parents, NULL }, 444 + { 0 }, 445 + }; 446 + 447 + static const struct omap_clkctrl_bit_data omap5_timer1_bit_data[] __initconst = { 448 + { 24, TI_CLK_MUX, omap5_timer10_gfclk_mux_parents, NULL }, 449 + { 0 }, 450 + }; 451 + 452 + static const struct omap_clkctrl_reg_data omap5_wkupaon_clkctrl_regs[] __initconst = { 453 + { OMAP5_L4_WKUP_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" }, 454 + { OMAP5_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 455 + { OMAP5_GPIO1_CLKCTRL, omap5_gpio1_bit_data, CLKF_HW_SUP, "wkupaon_iclk_mux" }, 456 + { OMAP5_TIMER1_CLKCTRL, omap5_timer1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0020:24" }, 457 + { OMAP5_COUNTER_32K_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" }, 458 + { OMAP5_KBD_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 459 + { 0 }, 460 + }; 461 + 462 + const struct omap_clkctrl_data omap5_clkctrl_data[] __initconst = { 463 + { 0x4a004320, omap5_mpu_clkctrl_regs }, 464 + { 0x4a004420, omap5_dsp_clkctrl_regs }, 465 + { 0x4a004520, omap5_abe_clkctrl_regs }, 466 + { 0x4a008720, omap5_l3main1_clkctrl_regs }, 467 + { 0x4a008820, omap5_l3main2_clkctrl_regs }, 468 + { 0x4a008920, omap5_ipu_clkctrl_regs }, 469 + { 0x4a008a20, omap5_dma_clkctrl_regs }, 470 + { 0x4a008b20, omap5_emif_clkctrl_regs }, 471 + { 0x4a008d20, omap5_l4cfg_clkctrl_regs }, 472 + { 0x4a008e20, omap5_l3instr_clkctrl_regs }, 473 + { 0x4a009020, omap5_l4per_clkctrl_regs }, 474 + { 0x4a009420, omap5_dss_clkctrl_regs }, 475 + { 0x4a009620, omap5_l3init_clkctrl_regs }, 476 + { 0x4ae07920, omap5_wkupaon_clkctrl_regs }, 477 + { 0 }, 478 + }; 479 + 31 480 static struct ti_dt_clk omap54xx_clks[] = { 32 - DT_CLK(NULL, "pad_clks_src_ck", "pad_clks_src_ck"), 33 - DT_CLK(NULL, "pad_clks_ck", "pad_clks_ck"), 34 - DT_CLK(NULL, "secure_32k_clk_src_ck", "secure_32k_clk_src_ck"), 35 - DT_CLK(NULL, "slimbus_src_clk", "slimbus_src_clk"), 36 - DT_CLK(NULL, "slimbus_clk", "slimbus_clk"), 37 - DT_CLK(NULL, "sys_32k_ck", "sys_32k_ck"), 38 - DT_CLK(NULL, "virt_12000000_ck", "virt_12000000_ck"), 39 - DT_CLK(NULL, "virt_13000000_ck", "virt_13000000_ck"), 40 - DT_CLK(NULL, "virt_16800000_ck", "virt_16800000_ck"), 41 - DT_CLK(NULL, "virt_19200000_ck", "virt_19200000_ck"), 42 - DT_CLK(NULL, "virt_26000000_ck", "virt_26000000_ck"), 43 - DT_CLK(NULL, "virt_27000000_ck", "virt_27000000_ck"), 44 - DT_CLK(NULL, "virt_38400000_ck", "virt_38400000_ck"), 45 - DT_CLK(NULL, "sys_clkin", "sys_clkin"), 46 - DT_CLK(NULL, "xclk60mhsp1_ck", "xclk60mhsp1_ck"), 47 - DT_CLK(NULL, "xclk60mhsp2_ck", "xclk60mhsp2_ck"), 48 - DT_CLK(NULL, "abe_dpll_bypass_clk_mux", "abe_dpll_bypass_clk_mux"), 49 - DT_CLK(NULL, "abe_dpll_clk_mux", "abe_dpll_clk_mux"), 50 - DT_CLK(NULL, "dpll_abe_ck", "dpll_abe_ck"), 51 - DT_CLK(NULL, "dpll_abe_x2_ck", "dpll_abe_x2_ck"), 52 - DT_CLK(NULL, "dpll_abe_m2x2_ck", "dpll_abe_m2x2_ck"), 53 - DT_CLK(NULL, "abe_24m_fclk", "abe_24m_fclk"), 54 - DT_CLK(NULL, "abe_clk", "abe_clk"), 55 - DT_CLK(NULL, "abe_iclk", "abe_iclk"), 56 - DT_CLK(NULL, "abe_lp_clk_div", "abe_lp_clk_div"), 57 - DT_CLK(NULL, "dpll_abe_m3x2_ck", "dpll_abe_m3x2_ck"), 58 - DT_CLK(NULL, "dpll_core_ck", "dpll_core_ck"), 59 - DT_CLK(NULL, "dpll_core_x2_ck", "dpll_core_x2_ck"), 60 - DT_CLK(NULL, "dpll_core_h21x2_ck", "dpll_core_h21x2_ck"), 61 - DT_CLK(NULL, "c2c_fclk", "c2c_fclk"), 62 - DT_CLK(NULL, "c2c_iclk", "c2c_iclk"), 63 - DT_CLK(NULL, "custefuse_sys_gfclk_div", "custefuse_sys_gfclk_div"), 64 - DT_CLK(NULL, "dpll_core_h11x2_ck", "dpll_core_h11x2_ck"), 65 - DT_CLK(NULL, "dpll_core_h12x2_ck", "dpll_core_h12x2_ck"), 66 - DT_CLK(NULL, "dpll_core_h13x2_ck", "dpll_core_h13x2_ck"), 67 - DT_CLK(NULL, "dpll_core_h14x2_ck", "dpll_core_h14x2_ck"), 68 - DT_CLK(NULL, "dpll_core_h22x2_ck", "dpll_core_h22x2_ck"), 69 - DT_CLK(NULL, "dpll_core_h23x2_ck", "dpll_core_h23x2_ck"), 70 - DT_CLK(NULL, "dpll_core_h24x2_ck", "dpll_core_h24x2_ck"), 71 - DT_CLK(NULL, "dpll_core_m2_ck", "dpll_core_m2_ck"), 72 - DT_CLK(NULL, "dpll_core_m3x2_ck", "dpll_core_m3x2_ck"), 73 - DT_CLK(NULL, "iva_dpll_hs_clk_div", "iva_dpll_hs_clk_div"), 74 - DT_CLK(NULL, "dpll_iva_ck", "dpll_iva_ck"), 75 - DT_CLK(NULL, "dpll_iva_x2_ck", "dpll_iva_x2_ck"), 76 - DT_CLK(NULL, "dpll_iva_h11x2_ck", "dpll_iva_h11x2_ck"), 77 - DT_CLK(NULL, "dpll_iva_h12x2_ck", "dpll_iva_h12x2_ck"), 78 - DT_CLK(NULL, "mpu_dpll_hs_clk_div", "mpu_dpll_hs_clk_div"), 79 - DT_CLK(NULL, "dpll_mpu_ck", "dpll_mpu_ck"), 80 - DT_CLK(NULL, "dpll_mpu_m2_ck", "dpll_mpu_m2_ck"), 81 - DT_CLK(NULL, "per_dpll_hs_clk_div", "per_dpll_hs_clk_div"), 82 - DT_CLK(NULL, "dpll_per_ck", "dpll_per_ck"), 83 - DT_CLK(NULL, "dpll_per_x2_ck", "dpll_per_x2_ck"), 84 - DT_CLK(NULL, "dpll_per_h11x2_ck", "dpll_per_h11x2_ck"), 85 - DT_CLK(NULL, "dpll_per_h12x2_ck", "dpll_per_h12x2_ck"), 86 - DT_CLK(NULL, "dpll_per_h14x2_ck", "dpll_per_h14x2_ck"), 87 - DT_CLK(NULL, "dpll_per_m2_ck", "dpll_per_m2_ck"), 88 - DT_CLK(NULL, "dpll_per_m2x2_ck", "dpll_per_m2x2_ck"), 89 - DT_CLK(NULL, "dpll_per_m3x2_ck", "dpll_per_m3x2_ck"), 90 - DT_CLK(NULL, "dpll_unipro1_ck", "dpll_unipro1_ck"), 91 - DT_CLK(NULL, "dpll_unipro1_clkdcoldo", "dpll_unipro1_clkdcoldo"), 92 - DT_CLK(NULL, "dpll_unipro1_m2_ck", "dpll_unipro1_m2_ck"), 93 - DT_CLK(NULL, "dpll_unipro2_ck", "dpll_unipro2_ck"), 94 - DT_CLK(NULL, "dpll_unipro2_clkdcoldo", "dpll_unipro2_clkdcoldo"), 95 - DT_CLK(NULL, "dpll_unipro2_m2_ck", "dpll_unipro2_m2_ck"), 96 - DT_CLK(NULL, "usb_dpll_hs_clk_div", "usb_dpll_hs_clk_div"), 97 - DT_CLK(NULL, "dpll_usb_ck", "dpll_usb_ck"), 98 - DT_CLK(NULL, "dpll_usb_clkdcoldo", "dpll_usb_clkdcoldo"), 99 - DT_CLK(NULL, "dpll_usb_m2_ck", "dpll_usb_m2_ck"), 100 - DT_CLK(NULL, "dss_syc_gfclk_div", "dss_syc_gfclk_div"), 101 - DT_CLK(NULL, "func_128m_clk", "func_128m_clk"), 102 - DT_CLK(NULL, "func_12m_fclk", "func_12m_fclk"), 103 - DT_CLK(NULL, "func_24m_clk", "func_24m_clk"), 104 - DT_CLK(NULL, "func_48m_fclk", "func_48m_fclk"), 105 - DT_CLK(NULL, "func_96m_fclk", "func_96m_fclk"), 106 - DT_CLK(NULL, "l3_iclk_div", "l3_iclk_div"), 107 - DT_CLK(NULL, "gpu_l3_iclk", "gpu_l3_iclk"), 108 - DT_CLK(NULL, "l3init_60m_fclk", "l3init_60m_fclk"), 109 - DT_CLK(NULL, "wkupaon_iclk_mux", "wkupaon_iclk_mux"), 110 - DT_CLK(NULL, "l3instr_ts_gclk_div", "l3instr_ts_gclk_div"), 111 - DT_CLK(NULL, "l4_root_clk_div", "l4_root_clk_div"), 112 - DT_CLK(NULL, "dss_32khz_clk", "dss_32khz_clk"), 113 - DT_CLK(NULL, "dss_48mhz_clk", "dss_48mhz_clk"), 114 - DT_CLK(NULL, "dss_dss_clk", "dss_dss_clk"), 115 - DT_CLK(NULL, "dss_sys_clk", "dss_sys_clk"), 116 - DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"), 117 - DT_CLK(NULL, "gpio2_dbclk", "gpio2_dbclk"), 118 - DT_CLK(NULL, "gpio3_dbclk", "gpio3_dbclk"), 119 - DT_CLK(NULL, "gpio4_dbclk", "gpio4_dbclk"), 120 - DT_CLK(NULL, "gpio5_dbclk", "gpio5_dbclk"), 121 - DT_CLK(NULL, "gpio6_dbclk", "gpio6_dbclk"), 122 - DT_CLK(NULL, "gpio7_dbclk", "gpio7_dbclk"), 123 - DT_CLK(NULL, "gpio8_dbclk", "gpio8_dbclk"), 124 - DT_CLK(NULL, "iss_ctrlclk", "iss_ctrlclk"), 125 - DT_CLK(NULL, "lli_txphy_clk", "lli_txphy_clk"), 126 - DT_CLK(NULL, "lli_txphy_ls_clk", "lli_txphy_ls_clk"), 127 - DT_CLK(NULL, "mmc1_32khz_clk", "mmc1_32khz_clk"), 128 - DT_CLK(NULL, "sata_ref_clk", "sata_ref_clk"), 129 - DT_CLK(NULL, "slimbus1_slimbus_clk", "slimbus1_slimbus_clk"), 130 - DT_CLK(NULL, "usb_host_hs_hsic480m_p1_clk", "usb_host_hs_hsic480m_p1_clk"), 131 - DT_CLK(NULL, "usb_host_hs_hsic480m_p2_clk", "usb_host_hs_hsic480m_p2_clk"), 132 - DT_CLK(NULL, "usb_host_hs_hsic480m_p3_clk", "usb_host_hs_hsic480m_p3_clk"), 133 - DT_CLK(NULL, "usb_host_hs_hsic60m_p1_clk", "usb_host_hs_hsic60m_p1_clk"), 134 - DT_CLK(NULL, "usb_host_hs_hsic60m_p2_clk", "usb_host_hs_hsic60m_p2_clk"), 135 - DT_CLK(NULL, "usb_host_hs_hsic60m_p3_clk", "usb_host_hs_hsic60m_p3_clk"), 136 - DT_CLK(NULL, "usb_host_hs_utmi_p1_clk", "usb_host_hs_utmi_p1_clk"), 137 - DT_CLK(NULL, "usb_host_hs_utmi_p2_clk", "usb_host_hs_utmi_p2_clk"), 138 - DT_CLK(NULL, "usb_host_hs_utmi_p3_clk", "usb_host_hs_utmi_p3_clk"), 139 - DT_CLK(NULL, "usb_otg_ss_refclk960m", "usb_otg_ss_refclk960m"), 140 - DT_CLK(NULL, "usb_phy_cm_clk32k", "usb_phy_cm_clk32k"), 141 - DT_CLK(NULL, "usb_tll_hs_usb_ch0_clk", "usb_tll_hs_usb_ch0_clk"), 142 - DT_CLK(NULL, "usb_tll_hs_usb_ch1_clk", "usb_tll_hs_usb_ch1_clk"), 143 - DT_CLK(NULL, "usb_tll_hs_usb_ch2_clk", "usb_tll_hs_usb_ch2_clk"), 144 - DT_CLK(NULL, "aess_fclk", "aess_fclk"), 145 - DT_CLK(NULL, "dmic_sync_mux_ck", "dmic_sync_mux_ck"), 146 - DT_CLK(NULL, "dmic_gfclk", "dmic_gfclk"), 147 - DT_CLK(NULL, "fdif_fclk", "fdif_fclk"), 148 - DT_CLK(NULL, "gpu_core_gclk_mux", "gpu_core_gclk_mux"), 149 - DT_CLK(NULL, "gpu_hyd_gclk_mux", "gpu_hyd_gclk_mux"), 150 - DT_CLK(NULL, "hsi_fclk", "hsi_fclk"), 151 - DT_CLK(NULL, "mcasp_sync_mux_ck", "mcasp_sync_mux_ck"), 152 - DT_CLK(NULL, "mcasp_gfclk", "mcasp_gfclk"), 153 - DT_CLK(NULL, "mcbsp1_sync_mux_ck", "mcbsp1_sync_mux_ck"), 154 - DT_CLK(NULL, "mcbsp1_gfclk", "mcbsp1_gfclk"), 155 - DT_CLK(NULL, "mcbsp2_sync_mux_ck", "mcbsp2_sync_mux_ck"), 156 - DT_CLK(NULL, "mcbsp2_gfclk", "mcbsp2_gfclk"), 157 - DT_CLK(NULL, "mcbsp3_sync_mux_ck", "mcbsp3_sync_mux_ck"), 158 - DT_CLK(NULL, "mcbsp3_gfclk", "mcbsp3_gfclk"), 159 - DT_CLK(NULL, "mmc1_fclk_mux", "mmc1_fclk_mux"), 160 - DT_CLK(NULL, "mmc1_fclk", "mmc1_fclk"), 161 - DT_CLK(NULL, "mmc2_fclk_mux", "mmc2_fclk_mux"), 162 - DT_CLK(NULL, "mmc2_fclk", "mmc2_fclk"), 163 - DT_CLK(NULL, "timer10_gfclk_mux", "timer10_gfclk_mux"), 164 - DT_CLK(NULL, "timer11_gfclk_mux", "timer11_gfclk_mux"), 165 - DT_CLK(NULL, "timer1_gfclk_mux", "timer1_gfclk_mux"), 166 - DT_CLK(NULL, "timer2_gfclk_mux", "timer2_gfclk_mux"), 167 - DT_CLK(NULL, "timer3_gfclk_mux", "timer3_gfclk_mux"), 168 - DT_CLK(NULL, "timer4_gfclk_mux", "timer4_gfclk_mux"), 169 - DT_CLK(NULL, "timer5_gfclk_mux", "timer5_gfclk_mux"), 170 - DT_CLK(NULL, "timer6_gfclk_mux", "timer6_gfclk_mux"), 171 - DT_CLK(NULL, "timer7_gfclk_mux", "timer7_gfclk_mux"), 172 - DT_CLK(NULL, "timer8_gfclk_mux", "timer8_gfclk_mux"), 173 - DT_CLK(NULL, "timer9_gfclk_mux", "timer9_gfclk_mux"), 174 - DT_CLK(NULL, "utmi_p1_gfclk", "utmi_p1_gfclk"), 175 - DT_CLK(NULL, "utmi_p2_gfclk", "utmi_p2_gfclk"), 176 - DT_CLK(NULL, "auxclk0_src_ck", "auxclk0_src_ck"), 177 - DT_CLK(NULL, "auxclk0_ck", "auxclk0_ck"), 178 - DT_CLK(NULL, "auxclkreq0_ck", "auxclkreq0_ck"), 179 - DT_CLK(NULL, "auxclk1_src_ck", "auxclk1_src_ck"), 180 - DT_CLK(NULL, "auxclk1_ck", "auxclk1_ck"), 181 - DT_CLK(NULL, "auxclkreq1_ck", "auxclkreq1_ck"), 182 - DT_CLK(NULL, "auxclk2_src_ck", "auxclk2_src_ck"), 183 - DT_CLK(NULL, "auxclk2_ck", "auxclk2_ck"), 184 - DT_CLK(NULL, "auxclkreq2_ck", "auxclkreq2_ck"), 185 - DT_CLK(NULL, "auxclk3_src_ck", "auxclk3_src_ck"), 186 - DT_CLK(NULL, "auxclk3_ck", "auxclk3_ck"), 187 - DT_CLK(NULL, "auxclkreq3_ck", "auxclkreq3_ck"), 188 - DT_CLK("omap_i2c.1", "ick", "dummy_ck"), 189 - DT_CLK("omap_i2c.2", "ick", "dummy_ck"), 190 - DT_CLK("omap_i2c.3", "ick", "dummy_ck"), 191 - DT_CLK("omap_i2c.4", "ick", "dummy_ck"), 192 - DT_CLK(NULL, "mailboxes_ick", "dummy_ck"), 193 - DT_CLK("omap_hsmmc.0", "ick", "dummy_ck"), 194 - DT_CLK("omap_hsmmc.1", "ick", "dummy_ck"), 195 - DT_CLK("omap_hsmmc.2", "ick", "dummy_ck"), 196 - DT_CLK("omap_hsmmc.3", "ick", "dummy_ck"), 197 - DT_CLK("omap_hsmmc.4", "ick", "dummy_ck"), 198 - DT_CLK("omap-mcbsp.1", "ick", "dummy_ck"), 199 - DT_CLK("omap-mcbsp.2", "ick", "dummy_ck"), 200 - DT_CLK("omap-mcbsp.3", "ick", "dummy_ck"), 201 - DT_CLK("omap-mcbsp.4", "ick", "dummy_ck"), 202 - DT_CLK("omap2_mcspi.1", "ick", "dummy_ck"), 203 - DT_CLK("omap2_mcspi.2", "ick", "dummy_ck"), 204 - DT_CLK("omap2_mcspi.3", "ick", "dummy_ck"), 205 - DT_CLK("omap2_mcspi.4", "ick", "dummy_ck"), 206 - DT_CLK(NULL, "uart1_ick", "dummy_ck"), 207 - DT_CLK(NULL, "uart2_ick", "dummy_ck"), 208 - DT_CLK(NULL, "uart3_ick", "dummy_ck"), 209 - DT_CLK(NULL, "uart4_ick", "dummy_ck"), 210 - DT_CLK("usbhs_omap", "usbhost_ick", "dummy_ck"), 211 - DT_CLK("usbhs_omap", "usbtll_fck", "dummy_ck"), 212 - DT_CLK("omap_wdt", "ick", "dummy_ck"), 213 481 DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), 214 482 DT_CLK(NULL, "sys_clkin_ck", "sys_clkin"), 215 - DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin"), 216 - DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin"), 217 - DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin"), 218 - DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin"), 219 - DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin"), 220 - DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin"), 221 - DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin"), 222 - DT_CLK("40138000.timer", "timer_sys_ck", "dss_syc_gfclk_div"), 223 - DT_CLK("4013a000.timer", "timer_sys_ck", "dss_syc_gfclk_div"), 224 - DT_CLK("4013c000.timer", "timer_sys_ck", "dss_syc_gfclk_div"), 225 - DT_CLK("4013e000.timer", "timer_sys_ck", "dss_syc_gfclk_div"), 483 + DT_CLK(NULL, "dmic_gfclk", "abe_cm:0018:24"), 484 + DT_CLK(NULL, "dmic_sync_mux_ck", "abe_cm:0018:26"), 485 + DT_CLK(NULL, "dss_32khz_clk", "dss_cm:0000:11"), 486 + DT_CLK(NULL, "dss_48mhz_clk", "dss_cm:0000:9"), 487 + DT_CLK(NULL, "dss_dss_clk", "dss_cm:0000:8"), 488 + DT_CLK(NULL, "dss_sys_clk", "dss_cm:0000:10"), 489 + DT_CLK(NULL, "gpio1_dbclk", "wkupaon_cm:0018:8"), 490 + DT_CLK(NULL, "gpio2_dbclk", "l4per_cm:0040:8"), 491 + DT_CLK(NULL, "gpio3_dbclk", "l4per_cm:0048:8"), 492 + DT_CLK(NULL, "gpio4_dbclk", "l4per_cm:0050:8"), 493 + DT_CLK(NULL, "gpio5_dbclk", "l4per_cm:0058:8"), 494 + DT_CLK(NULL, "gpio6_dbclk", "l4per_cm:0060:8"), 495 + DT_CLK(NULL, "gpio7_dbclk", "l4per_cm:00f0:8"), 496 + DT_CLK(NULL, "gpio8_dbclk", "l4per_cm:00f8:8"), 497 + DT_CLK(NULL, "mcbsp1_gfclk", "abe_cm:0028:24"), 498 + DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe_cm:0028:26"), 499 + DT_CLK(NULL, "mcbsp2_gfclk", "abe_cm:0030:24"), 500 + DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe_cm:0030:26"), 501 + DT_CLK(NULL, "mcbsp3_gfclk", "abe_cm:0038:24"), 502 + DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe_cm:0038:26"), 503 + DT_CLK(NULL, "mmc1_32khz_clk", "l3init_cm:0008:8"), 504 + DT_CLK(NULL, "mmc1_fclk", "l3init_cm:0008:25"), 505 + DT_CLK(NULL, "mmc1_fclk_mux", "l3init_cm:0008:24"), 506 + DT_CLK(NULL, "mmc2_fclk", "l3init_cm:0010:25"), 507 + DT_CLK(NULL, "mmc2_fclk_mux", "l3init_cm:0010:24"), 508 + DT_CLK(NULL, "sata_ref_clk", "l3init_cm:0068:8"), 509 + DT_CLK(NULL, "timer10_gfclk_mux", "l4per_cm:0008:24"), 510 + DT_CLK(NULL, "timer11_gfclk_mux", "l4per_cm:0010:24"), 511 + DT_CLK(NULL, "timer1_gfclk_mux", "wkupaon_cm:0020:24"), 512 + DT_CLK(NULL, "timer2_gfclk_mux", "l4per_cm:0018:24"), 513 + DT_CLK(NULL, "timer3_gfclk_mux", "l4per_cm:0020:24"), 514 + DT_CLK(NULL, "timer4_gfclk_mux", "l4per_cm:0028:24"), 515 + DT_CLK(NULL, "timer5_gfclk_mux", "abe_cm:0048:24"), 516 + DT_CLK(NULL, "timer6_gfclk_mux", "abe_cm:0050:24"), 517 + DT_CLK(NULL, "timer7_gfclk_mux", "abe_cm:0058:24"), 518 + DT_CLK(NULL, "timer8_gfclk_mux", "abe_cm:0060:24"), 519 + DT_CLK(NULL, "timer9_gfclk_mux", "l4per_cm:0030:24"), 520 + DT_CLK(NULL, "usb_host_hs_hsic480m_p1_clk", "l3init_cm:0038:13"), 521 + DT_CLK(NULL, "usb_host_hs_hsic480m_p2_clk", "l3init_cm:0038:14"), 522 + DT_CLK(NULL, "usb_host_hs_hsic480m_p3_clk", "l3init_cm:0038:7"), 523 + DT_CLK(NULL, "usb_host_hs_hsic60m_p1_clk", "l3init_cm:0038:11"), 524 + DT_CLK(NULL, "usb_host_hs_hsic60m_p2_clk", "l3init_cm:0038:12"), 525 + DT_CLK(NULL, "usb_host_hs_hsic60m_p3_clk", "l3init_cm:0038:6"), 526 + DT_CLK(NULL, "usb_host_hs_utmi_p1_clk", "l3init_cm:0038:8"), 527 + DT_CLK(NULL, "usb_host_hs_utmi_p2_clk", "l3init_cm:0038:9"), 528 + DT_CLK(NULL, "usb_host_hs_utmi_p3_clk", "l3init_cm:0038:10"), 529 + DT_CLK(NULL, "usb_otg_ss_refclk960m", "l3init_cm:00d0:8"), 530 + DT_CLK(NULL, "usb_tll_hs_usb_ch0_clk", "l3init_cm:0048:8"), 531 + DT_CLK(NULL, "usb_tll_hs_usb_ch1_clk", "l3init_cm:0048:9"), 532 + DT_CLK(NULL, "usb_tll_hs_usb_ch2_clk", "l3init_cm:0048:10"), 533 + DT_CLK(NULL, "utmi_p1_gfclk", "l3init_cm:0038:24"), 534 + DT_CLK(NULL, "utmi_p2_gfclk", "l3init_cm:0038:25"), 226 535 { .node_name = NULL }, 227 536 }; 228 537 ··· 544 233 ti_dt_clocks_register(omap54xx_clks); 545 234 546 235 omap2_clk_disable_autoidle_all(); 236 + 237 + ti_clk_add_aliases(); 547 238 548 239 abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); 549 240 sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck");
+795 -281
drivers/clk/ti/clk-7xx.c
··· 15 15 #include <linux/clk.h> 16 16 #include <linux/clkdev.h> 17 17 #include <linux/clk/ti.h> 18 + #include <dt-bindings/clock/dra7.h> 18 19 19 20 #include "clock.h" 20 21 21 22 #define DRA7_DPLL_GMAC_DEFFREQ 1000000000 22 23 #define DRA7_DPLL_USB_DEFFREQ 960000000 23 24 25 + static const struct omap_clkctrl_reg_data dra7_mpu_clkctrl_regs[] __initconst = { 26 + { DRA7_MPU_CLKCTRL, NULL, 0, "dpll_mpu_m2_ck" }, 27 + { 0 }, 28 + }; 29 + 30 + static const char * const dra7_mcasp1_aux_gfclk_mux_parents[] __initconst = { 31 + "per_abe_x1_gfclk2_div", 32 + "video1_clk2_div", 33 + "video2_clk2_div", 34 + "hdmi_clk2_div", 35 + NULL, 36 + }; 37 + 38 + static const char * const dra7_mcasp1_ahclkx_mux_parents[] __initconst = { 39 + "abe_24m_fclk", 40 + "abe_sys_clk_div", 41 + "func_24m_clk", 42 + "atl_clkin3_ck", 43 + "atl_clkin2_ck", 44 + "atl_clkin1_ck", 45 + "atl_clkin0_ck", 46 + "sys_clkin2", 47 + "ref_clkin0_ck", 48 + "ref_clkin1_ck", 49 + "ref_clkin2_ck", 50 + "ref_clkin3_ck", 51 + "mlb_clk", 52 + "mlbp_clk", 53 + NULL, 54 + }; 55 + 56 + static const struct omap_clkctrl_bit_data dra7_mcasp1_bit_data[] __initconst = { 57 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 58 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 59 + { 28, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 60 + { 0 }, 61 + }; 62 + 63 + static const char * const dra7_timer5_gfclk_mux_parents[] __initconst = { 64 + "timer_sys_clk_div", 65 + "sys_32k_ck", 66 + "sys_clkin2", 67 + "ref_clkin0_ck", 68 + "ref_clkin1_ck", 69 + "ref_clkin2_ck", 70 + "ref_clkin3_ck", 71 + "abe_giclk_div", 72 + "video1_div_clk", 73 + "video2_div_clk", 74 + "hdmi_div_clk", 75 + "clkoutmux0_clk_mux", 76 + NULL, 77 + }; 78 + 79 + static const struct omap_clkctrl_bit_data dra7_timer5_bit_data[] __initconst = { 80 + { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL }, 81 + { 0 }, 82 + }; 83 + 84 + static const struct omap_clkctrl_bit_data dra7_timer6_bit_data[] __initconst = { 85 + { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL }, 86 + { 0 }, 87 + }; 88 + 89 + static const struct omap_clkctrl_bit_data dra7_timer7_bit_data[] __initconst = { 90 + { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL }, 91 + { 0 }, 92 + }; 93 + 94 + static const struct omap_clkctrl_bit_data dra7_timer8_bit_data[] __initconst = { 95 + { 24, TI_CLK_MUX, dra7_timer5_gfclk_mux_parents, NULL }, 96 + { 0 }, 97 + }; 98 + 99 + static const char * const dra7_uart6_gfclk_mux_parents[] __initconst = { 100 + "func_48m_fclk", 101 + "dpll_per_m2x2_ck", 102 + NULL, 103 + }; 104 + 105 + static const struct omap_clkctrl_bit_data dra7_uart6_bit_data[] __initconst = { 106 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 107 + { 0 }, 108 + }; 109 + 110 + static const struct omap_clkctrl_reg_data dra7_ipu_clkctrl_regs[] __initconst = { 111 + { DRA7_MCASP1_CLKCTRL, dra7_mcasp1_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0010:22" }, 112 + { DRA7_TIMER5_CLKCTRL, dra7_timer5_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0018:24" }, 113 + { DRA7_TIMER6_CLKCTRL, dra7_timer6_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0020:24" }, 114 + { DRA7_TIMER7_CLKCTRL, dra7_timer7_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0028:24" }, 115 + { DRA7_TIMER8_CLKCTRL, dra7_timer8_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0030:24" }, 116 + { DRA7_I2C5_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 117 + { DRA7_UART6_CLKCTRL, dra7_uart6_bit_data, CLKF_SW_SUP, "ipu_cm:clk:0040:24" }, 118 + { 0 }, 119 + }; 120 + 121 + static const struct omap_clkctrl_reg_data dra7_rtc_clkctrl_regs[] __initconst = { 122 + { DRA7_RTCSS_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 123 + { 0 }, 124 + }; 125 + 126 + static const struct omap_clkctrl_reg_data dra7_coreaon_clkctrl_regs[] __initconst = { 127 + { DRA7_SMARTREFLEX_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "wkupaon_iclk_mux" }, 128 + { DRA7_SMARTREFLEX_CORE_CLKCTRL, NULL, CLKF_SW_SUP, "wkupaon_iclk_mux" }, 129 + { 0 }, 130 + }; 131 + 132 + static const struct omap_clkctrl_reg_data dra7_l3main1_clkctrl_regs[] __initconst = { 133 + { DRA7_L3_MAIN_1_CLKCTRL, NULL, 0, "l3_iclk_div" }, 134 + { DRA7_GPMC_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 135 + { DRA7_TPCC_CLKCTRL, NULL, 0, "l3_iclk_div" }, 136 + { DRA7_TPTC0_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 137 + { DRA7_TPTC1_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 138 + { DRA7_VCP1_CLKCTRL, NULL, 0, "l3_iclk_div" }, 139 + { DRA7_VCP2_CLKCTRL, NULL, 0, "l3_iclk_div" }, 140 + { 0 }, 141 + }; 142 + 143 + static const struct omap_clkctrl_reg_data dra7_dma_clkctrl_regs[] __initconst = { 144 + { DRA7_DMA_SYSTEM_CLKCTRL, NULL, 0, "l3_iclk_div" }, 145 + { 0 }, 146 + }; 147 + 148 + static const struct omap_clkctrl_reg_data dra7_emif_clkctrl_regs[] __initconst = { 149 + { DRA7_DMM_CLKCTRL, NULL, 0, "l3_iclk_div" }, 150 + { 0 }, 151 + }; 152 + 153 + static const char * const dra7_atl_dpll_clk_mux_parents[] __initconst = { 154 + "sys_32k_ck", 155 + "video1_clkin_ck", 156 + "video2_clkin_ck", 157 + "hdmi_clkin_ck", 158 + NULL, 159 + }; 160 + 161 + static const char * const dra7_atl_gfclk_mux_parents[] __initconst = { 162 + "l3_iclk_div", 163 + "dpll_abe_m2_ck", 164 + "atl_cm:clk:0000:24", 165 + NULL, 166 + }; 167 + 168 + static const struct omap_clkctrl_bit_data dra7_atl_bit_data[] __initconst = { 169 + { 24, TI_CLK_MUX, dra7_atl_dpll_clk_mux_parents, NULL }, 170 + { 26, TI_CLK_MUX, dra7_atl_gfclk_mux_parents, NULL }, 171 + { 0 }, 172 + }; 173 + 174 + static const struct omap_clkctrl_reg_data dra7_atl_clkctrl_regs[] __initconst = { 175 + { DRA7_ATL_CLKCTRL, dra7_atl_bit_data, CLKF_SW_SUP, "atl_cm:clk:0000:26" }, 176 + { 0 }, 177 + }; 178 + 179 + static const struct omap_clkctrl_reg_data dra7_l4cfg_clkctrl_regs[] __initconst = { 180 + { DRA7_L4_CFG_CLKCTRL, NULL, 0, "l3_iclk_div" }, 181 + { DRA7_SPINLOCK_CLKCTRL, NULL, 0, "l3_iclk_div" }, 182 + { DRA7_MAILBOX1_CLKCTRL, NULL, 0, "l3_iclk_div" }, 183 + { DRA7_MAILBOX2_CLKCTRL, NULL, 0, "l3_iclk_div" }, 184 + { DRA7_MAILBOX3_CLKCTRL, NULL, 0, "l3_iclk_div" }, 185 + { DRA7_MAILBOX4_CLKCTRL, NULL, 0, "l3_iclk_div" }, 186 + { DRA7_MAILBOX5_CLKCTRL, NULL, 0, "l3_iclk_div" }, 187 + { DRA7_MAILBOX6_CLKCTRL, NULL, 0, "l3_iclk_div" }, 188 + { DRA7_MAILBOX7_CLKCTRL, NULL, 0, "l3_iclk_div" }, 189 + { DRA7_MAILBOX8_CLKCTRL, NULL, 0, "l3_iclk_div" }, 190 + { DRA7_MAILBOX9_CLKCTRL, NULL, 0, "l3_iclk_div" }, 191 + { DRA7_MAILBOX10_CLKCTRL, NULL, 0, "l3_iclk_div" }, 192 + { DRA7_MAILBOX11_CLKCTRL, NULL, 0, "l3_iclk_div" }, 193 + { DRA7_MAILBOX12_CLKCTRL, NULL, 0, "l3_iclk_div" }, 194 + { DRA7_MAILBOX13_CLKCTRL, NULL, 0, "l3_iclk_div" }, 195 + { 0 }, 196 + }; 197 + 198 + static const struct omap_clkctrl_reg_data dra7_l3instr_clkctrl_regs[] __initconst = { 199 + { DRA7_L3_MAIN_2_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 200 + { DRA7_L3_INSTR_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, 201 + { 0 }, 202 + }; 203 + 204 + static const char * const dra7_dss_dss_clk_parents[] __initconst = { 205 + "dpll_per_h12x2_ck", 206 + NULL, 207 + }; 208 + 209 + static const char * const dra7_dss_48mhz_clk_parents[] __initconst = { 210 + "func_48m_fclk", 211 + NULL, 212 + }; 213 + 214 + static const char * const dra7_dss_hdmi_clk_parents[] __initconst = { 215 + "hdmi_dpll_clk_mux", 216 + NULL, 217 + }; 218 + 219 + static const char * const dra7_dss_32khz_clk_parents[] __initconst = { 220 + "sys_32k_ck", 221 + NULL, 222 + }; 223 + 224 + static const char * const dra7_dss_video1_clk_parents[] __initconst = { 225 + "video1_dpll_clk_mux", 226 + NULL, 227 + }; 228 + 229 + static const char * const dra7_dss_video2_clk_parents[] __initconst = { 230 + "video2_dpll_clk_mux", 231 + NULL, 232 + }; 233 + 234 + static const struct omap_clkctrl_bit_data dra7_dss_core_bit_data[] __initconst = { 235 + { 8, TI_CLK_GATE, dra7_dss_dss_clk_parents, NULL }, 236 + { 9, TI_CLK_GATE, dra7_dss_48mhz_clk_parents, NULL }, 237 + { 10, TI_CLK_GATE, dra7_dss_hdmi_clk_parents, NULL }, 238 + { 11, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 239 + { 12, TI_CLK_GATE, dra7_dss_video1_clk_parents, NULL }, 240 + { 13, TI_CLK_GATE, dra7_dss_video2_clk_parents, NULL }, 241 + { 0 }, 242 + }; 243 + 244 + static const struct omap_clkctrl_reg_data dra7_dss_clkctrl_regs[] __initconst = { 245 + { DRA7_DSS_CORE_CLKCTRL, dra7_dss_core_bit_data, CLKF_SW_SUP, "dss_cm:clk:0000:8" }, 246 + { DRA7_BB2D_CLKCTRL, NULL, CLKF_SW_SUP, "dpll_core_h24x2_ck" }, 247 + { 0 }, 248 + }; 249 + 250 + static const char * const dra7_mmc1_fclk_mux_parents[] __initconst = { 251 + "func_128m_clk", 252 + "dpll_per_m2x2_ck", 253 + NULL, 254 + }; 255 + 256 + static const char * const dra7_mmc1_fclk_div_parents[] __initconst = { 257 + "l3init_cm:clk:0008:24", 258 + NULL, 259 + }; 260 + 261 + static const struct omap_clkctrl_div_data dra7_mmc1_fclk_div_data __initconst = { 262 + .max_div = 4, 263 + .flags = CLK_DIVIDER_POWER_OF_TWO, 264 + }; 265 + 266 + static const struct omap_clkctrl_bit_data dra7_mmc1_bit_data[] __initconst = { 267 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 268 + { 24, TI_CLK_MUX, dra7_mmc1_fclk_mux_parents, NULL }, 269 + { 25, TI_CLK_DIVIDER, dra7_mmc1_fclk_div_parents, &dra7_mmc1_fclk_div_data }, 270 + { 0 }, 271 + }; 272 + 273 + static const char * const dra7_mmc2_fclk_div_parents[] __initconst = { 274 + "l3init_cm:clk:0010:24", 275 + NULL, 276 + }; 277 + 278 + static const struct omap_clkctrl_div_data dra7_mmc2_fclk_div_data __initconst = { 279 + .max_div = 4, 280 + .flags = CLK_DIVIDER_POWER_OF_TWO, 281 + }; 282 + 283 + static const struct omap_clkctrl_bit_data dra7_mmc2_bit_data[] __initconst = { 284 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 285 + { 24, TI_CLK_MUX, dra7_mmc1_fclk_mux_parents, NULL }, 286 + { 25, TI_CLK_DIVIDER, dra7_mmc2_fclk_div_parents, &dra7_mmc2_fclk_div_data }, 287 + { 0 }, 288 + }; 289 + 290 + static const char * const dra7_usb_otg_ss2_refclk960m_parents[] __initconst = { 291 + "l3init_960m_gfclk", 292 + NULL, 293 + }; 294 + 295 + static const struct omap_clkctrl_bit_data dra7_usb_otg_ss2_bit_data[] __initconst = { 296 + { 8, TI_CLK_GATE, dra7_usb_otg_ss2_refclk960m_parents, NULL }, 297 + { 0 }, 298 + }; 299 + 300 + static const char * const dra7_sata_ref_clk_parents[] __initconst = { 301 + "sys_clkin1", 302 + NULL, 303 + }; 304 + 305 + static const struct omap_clkctrl_bit_data dra7_sata_bit_data[] __initconst = { 306 + { 8, TI_CLK_GATE, dra7_sata_ref_clk_parents, NULL }, 307 + { 0 }, 308 + }; 309 + 310 + static const char * const dra7_optfclk_pciephy1_clk_parents[] __initconst = { 311 + "apll_pcie_ck", 312 + NULL, 313 + }; 314 + 315 + static const char * const dra7_optfclk_pciephy1_div_clk_parents[] __initconst = { 316 + "optfclk_pciephy_div", 317 + NULL, 318 + }; 319 + 320 + static const struct omap_clkctrl_bit_data dra7_pcie1_bit_data[] __initconst = { 321 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 322 + { 9, TI_CLK_GATE, dra7_optfclk_pciephy1_clk_parents, NULL }, 323 + { 10, TI_CLK_GATE, dra7_optfclk_pciephy1_div_clk_parents, NULL }, 324 + { 0 }, 325 + }; 326 + 327 + static const struct omap_clkctrl_bit_data dra7_pcie2_bit_data[] __initconst = { 328 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 329 + { 9, TI_CLK_GATE, dra7_optfclk_pciephy1_clk_parents, NULL }, 330 + { 10, TI_CLK_GATE, dra7_optfclk_pciephy1_div_clk_parents, NULL }, 331 + { 0 }, 332 + }; 333 + 334 + static const char * const dra7_rmii_50mhz_clk_mux_parents[] __initconst = { 335 + "dpll_gmac_h11x2_ck", 336 + "rmii_clk_ck", 337 + NULL, 338 + }; 339 + 340 + static const char * const dra7_gmac_rft_clk_mux_parents[] __initconst = { 341 + "video1_clkin_ck", 342 + "video2_clkin_ck", 343 + "dpll_abe_m2_ck", 344 + "hdmi_clkin_ck", 345 + "l3_iclk_div", 346 + NULL, 347 + }; 348 + 349 + static const struct omap_clkctrl_bit_data dra7_gmac_bit_data[] __initconst = { 350 + { 24, TI_CLK_MUX, dra7_rmii_50mhz_clk_mux_parents, NULL }, 351 + { 25, TI_CLK_MUX, dra7_gmac_rft_clk_mux_parents, NULL }, 352 + { 0 }, 353 + }; 354 + 355 + static const struct omap_clkctrl_bit_data dra7_usb_otg_ss1_bit_data[] __initconst = { 356 + { 8, TI_CLK_GATE, dra7_usb_otg_ss2_refclk960m_parents, NULL }, 357 + { 0 }, 358 + }; 359 + 360 + static const struct omap_clkctrl_reg_data dra7_l3init_clkctrl_regs[] __initconst = { 361 + { DRA7_MMC1_CLKCTRL, dra7_mmc1_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0008:25" }, 362 + { DRA7_MMC2_CLKCTRL, dra7_mmc2_bit_data, CLKF_SW_SUP, "l3init_cm:clk:0010:25" }, 363 + { DRA7_USB_OTG_SS2_CLKCTRL, dra7_usb_otg_ss2_bit_data, CLKF_HW_SUP, "dpll_core_h13x2_ck" }, 364 + { DRA7_USB_OTG_SS3_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h13x2_ck" }, 365 + { DRA7_USB_OTG_SS4_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h13x2_ck" }, 366 + { DRA7_SATA_CLKCTRL, dra7_sata_bit_data, CLKF_SW_SUP, "func_48m_fclk" }, 367 + { DRA7_PCIE1_CLKCTRL, dra7_pcie1_bit_data, CLKF_SW_SUP, "l4_root_clk_div", "pcie_clkdm" }, 368 + { DRA7_PCIE2_CLKCTRL, dra7_pcie2_bit_data, CLKF_SW_SUP, "l4_root_clk_div", "pcie_clkdm" }, 369 + { DRA7_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "dpll_gmac_ck", "gmac_clkdm" }, 370 + { DRA7_OCP2SCP1_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" }, 371 + { DRA7_OCP2SCP3_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" }, 372 + { DRA7_USB_OTG_SS1_CLKCTRL, dra7_usb_otg_ss1_bit_data, CLKF_HW_SUP, "dpll_core_h13x2_ck" }, 373 + { 0 }, 374 + }; 375 + 376 + static const char * const dra7_timer10_gfclk_mux_parents[] __initconst = { 377 + "timer_sys_clk_div", 378 + "sys_32k_ck", 379 + "sys_clkin2", 380 + "ref_clkin0_ck", 381 + "ref_clkin1_ck", 382 + "ref_clkin2_ck", 383 + "ref_clkin3_ck", 384 + "abe_giclk_div", 385 + "video1_div_clk", 386 + "video2_div_clk", 387 + "hdmi_div_clk", 388 + NULL, 389 + }; 390 + 391 + static const struct omap_clkctrl_bit_data dra7_timer10_bit_data[] __initconst = { 392 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 393 + { 0 }, 394 + }; 395 + 396 + static const struct omap_clkctrl_bit_data dra7_timer11_bit_data[] __initconst = { 397 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 398 + { 0 }, 399 + }; 400 + 401 + static const struct omap_clkctrl_bit_data dra7_timer2_bit_data[] __initconst = { 402 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 403 + { 0 }, 404 + }; 405 + 406 + static const struct omap_clkctrl_bit_data dra7_timer3_bit_data[] __initconst = { 407 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 408 + { 0 }, 409 + }; 410 + 411 + static const struct omap_clkctrl_bit_data dra7_timer4_bit_data[] __initconst = { 412 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 413 + { 0 }, 414 + }; 415 + 416 + static const struct omap_clkctrl_bit_data dra7_timer9_bit_data[] __initconst = { 417 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 418 + { 0 }, 419 + }; 420 + 421 + static const struct omap_clkctrl_bit_data dra7_gpio2_bit_data[] __initconst = { 422 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 423 + { 0 }, 424 + }; 425 + 426 + static const struct omap_clkctrl_bit_data dra7_gpio3_bit_data[] __initconst = { 427 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 428 + { 0 }, 429 + }; 430 + 431 + static const struct omap_clkctrl_bit_data dra7_gpio4_bit_data[] __initconst = { 432 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 433 + { 0 }, 434 + }; 435 + 436 + static const struct omap_clkctrl_bit_data dra7_gpio5_bit_data[] __initconst = { 437 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 438 + { 0 }, 439 + }; 440 + 441 + static const struct omap_clkctrl_bit_data dra7_gpio6_bit_data[] __initconst = { 442 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 443 + { 0 }, 444 + }; 445 + 446 + static const struct omap_clkctrl_bit_data dra7_timer13_bit_data[] __initconst = { 447 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 448 + { 0 }, 449 + }; 450 + 451 + static const struct omap_clkctrl_bit_data dra7_timer14_bit_data[] __initconst = { 452 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 453 + { 0 }, 454 + }; 455 + 456 + static const struct omap_clkctrl_bit_data dra7_timer15_bit_data[] __initconst = { 457 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 458 + { 0 }, 459 + }; 460 + 461 + static const struct omap_clkctrl_bit_data dra7_gpio7_bit_data[] __initconst = { 462 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 463 + { 0 }, 464 + }; 465 + 466 + static const struct omap_clkctrl_bit_data dra7_gpio8_bit_data[] __initconst = { 467 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 468 + { 0 }, 469 + }; 470 + 471 + static const char * const dra7_mmc3_gfclk_div_parents[] __initconst = { 472 + "l4per_cm:clk:0120:24", 473 + NULL, 474 + }; 475 + 476 + static const struct omap_clkctrl_div_data dra7_mmc3_gfclk_div_data __initconst = { 477 + .max_div = 4, 478 + .flags = CLK_DIVIDER_POWER_OF_TWO, 479 + }; 480 + 481 + static const struct omap_clkctrl_bit_data dra7_mmc3_bit_data[] __initconst = { 482 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 483 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 484 + { 25, TI_CLK_DIVIDER, dra7_mmc3_gfclk_div_parents, &dra7_mmc3_gfclk_div_data }, 485 + { 0 }, 486 + }; 487 + 488 + static const char * const dra7_mmc4_gfclk_div_parents[] __initconst = { 489 + "l4per_cm:clk:0128:24", 490 + NULL, 491 + }; 492 + 493 + static const struct omap_clkctrl_div_data dra7_mmc4_gfclk_div_data __initconst = { 494 + .max_div = 4, 495 + .flags = CLK_DIVIDER_POWER_OF_TWO, 496 + }; 497 + 498 + static const struct omap_clkctrl_bit_data dra7_mmc4_bit_data[] __initconst = { 499 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 500 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 501 + { 25, TI_CLK_DIVIDER, dra7_mmc4_gfclk_div_parents, &dra7_mmc4_gfclk_div_data }, 502 + { 0 }, 503 + }; 504 + 505 + static const struct omap_clkctrl_bit_data dra7_timer16_bit_data[] __initconst = { 506 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 507 + { 0 }, 508 + }; 509 + 510 + static const char * const dra7_qspi_gfclk_mux_parents[] __initconst = { 511 + "func_128m_clk", 512 + "dpll_per_h13x2_ck", 513 + NULL, 514 + }; 515 + 516 + static const char * const dra7_qspi_gfclk_div_parents[] __initconst = { 517 + "l4per_cm:clk:0138:24", 518 + NULL, 519 + }; 520 + 521 + static const struct omap_clkctrl_div_data dra7_qspi_gfclk_div_data __initconst = { 522 + .max_div = 4, 523 + .flags = CLK_DIVIDER_POWER_OF_TWO, 524 + }; 525 + 526 + static const struct omap_clkctrl_bit_data dra7_qspi_bit_data[] __initconst = { 527 + { 24, TI_CLK_MUX, dra7_qspi_gfclk_mux_parents, NULL }, 528 + { 25, TI_CLK_DIVIDER, dra7_qspi_gfclk_div_parents, &dra7_qspi_gfclk_div_data }, 529 + { 0 }, 530 + }; 531 + 532 + static const struct omap_clkctrl_bit_data dra7_uart1_bit_data[] __initconst = { 533 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 534 + { 0 }, 535 + }; 536 + 537 + static const struct omap_clkctrl_bit_data dra7_uart2_bit_data[] __initconst = { 538 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 539 + { 0 }, 540 + }; 541 + 542 + static const struct omap_clkctrl_bit_data dra7_uart3_bit_data[] __initconst = { 543 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 544 + { 0 }, 545 + }; 546 + 547 + static const struct omap_clkctrl_bit_data dra7_uart4_bit_data[] __initconst = { 548 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 549 + { 0 }, 550 + }; 551 + 552 + static const struct omap_clkctrl_bit_data dra7_mcasp2_bit_data[] __initconst = { 553 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 554 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 555 + { 28, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 556 + { 0 }, 557 + }; 558 + 559 + static const struct omap_clkctrl_bit_data dra7_mcasp3_bit_data[] __initconst = { 560 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 561 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 562 + { 0 }, 563 + }; 564 + 565 + static const struct omap_clkctrl_bit_data dra7_uart5_bit_data[] __initconst = { 566 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 567 + { 0 }, 568 + }; 569 + 570 + static const struct omap_clkctrl_bit_data dra7_mcasp5_bit_data[] __initconst = { 571 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 572 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 573 + { 0 }, 574 + }; 575 + 576 + static const struct omap_clkctrl_bit_data dra7_mcasp8_bit_data[] __initconst = { 577 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 578 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 579 + { 0 }, 580 + }; 581 + 582 + static const struct omap_clkctrl_bit_data dra7_mcasp4_bit_data[] __initconst = { 583 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 584 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 585 + { 0 }, 586 + }; 587 + 588 + static const struct omap_clkctrl_bit_data dra7_uart7_bit_data[] __initconst = { 589 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 590 + { 0 }, 591 + }; 592 + 593 + static const struct omap_clkctrl_bit_data dra7_uart8_bit_data[] __initconst = { 594 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 595 + { 0 }, 596 + }; 597 + 598 + static const struct omap_clkctrl_bit_data dra7_uart9_bit_data[] __initconst = { 599 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 600 + { 0 }, 601 + }; 602 + 603 + static const struct omap_clkctrl_bit_data dra7_mcasp6_bit_data[] __initconst = { 604 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 605 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 606 + { 0 }, 607 + }; 608 + 609 + static const struct omap_clkctrl_bit_data dra7_mcasp7_bit_data[] __initconst = { 610 + { 22, TI_CLK_MUX, dra7_mcasp1_aux_gfclk_mux_parents, NULL }, 611 + { 24, TI_CLK_MUX, dra7_mcasp1_ahclkx_mux_parents, NULL }, 612 + { 0 }, 613 + }; 614 + 615 + static const struct omap_clkctrl_reg_data dra7_l4per_clkctrl_regs[] __initconst = { 616 + { DRA7_L4_PER2_CLKCTRL, NULL, 0, "l3_iclk_div", "l4per2_clkdm" }, 617 + { DRA7_L4_PER3_CLKCTRL, NULL, 0, "l3_iclk_div", "l4per3_clkdm" }, 618 + { DRA7_TIMER10_CLKCTRL, dra7_timer10_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0028:24" }, 619 + { DRA7_TIMER11_CLKCTRL, dra7_timer11_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0030:24" }, 620 + { DRA7_TIMER2_CLKCTRL, dra7_timer2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0038:24" }, 621 + { DRA7_TIMER3_CLKCTRL, dra7_timer3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0040:24" }, 622 + { DRA7_TIMER4_CLKCTRL, dra7_timer4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0048:24" }, 623 + { DRA7_TIMER9_CLKCTRL, dra7_timer9_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0050:24" }, 624 + { DRA7_ELM_CLKCTRL, NULL, 0, "l3_iclk_div" }, 625 + { DRA7_GPIO2_CLKCTRL, dra7_gpio2_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 626 + { DRA7_GPIO3_CLKCTRL, dra7_gpio3_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 627 + { DRA7_GPIO4_CLKCTRL, dra7_gpio4_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 628 + { DRA7_GPIO5_CLKCTRL, dra7_gpio5_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 629 + { DRA7_GPIO6_CLKCTRL, dra7_gpio6_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 630 + { DRA7_HDQ1W_CLKCTRL, NULL, CLKF_SW_SUP, "func_12m_fclk" }, 631 + { DRA7_EPWMSS1_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" }, 632 + { DRA7_EPWMSS2_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" }, 633 + { DRA7_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 634 + { DRA7_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 635 + { DRA7_I2C3_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 636 + { DRA7_I2C4_CLKCTRL, NULL, CLKF_SW_SUP, "func_96m_fclk" }, 637 + { DRA7_L4_PER1_CLKCTRL, NULL, 0, "l3_iclk_div" }, 638 + { DRA7_EPWMSS0_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div", "l4per2_clkdm" }, 639 + { DRA7_TIMER13_CLKCTRL, dra7_timer13_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00c8:24", "l4per3_clkdm" }, 640 + { DRA7_TIMER14_CLKCTRL, dra7_timer14_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00d0:24", "l4per3_clkdm" }, 641 + { DRA7_TIMER15_CLKCTRL, dra7_timer15_bit_data, CLKF_SW_SUP, "l4per_cm:clk:00d8:24", "l4per3_clkdm" }, 642 + { DRA7_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 643 + { DRA7_MCSPI2_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 644 + { DRA7_MCSPI3_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 645 + { DRA7_MCSPI4_CLKCTRL, NULL, CLKF_SW_SUP, "func_48m_fclk" }, 646 + { DRA7_GPIO7_CLKCTRL, dra7_gpio7_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 647 + { DRA7_GPIO8_CLKCTRL, dra7_gpio8_bit_data, CLKF_HW_SUP, "l3_iclk_div" }, 648 + { DRA7_MMC3_CLKCTRL, dra7_mmc3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0120:25" }, 649 + { DRA7_MMC4_CLKCTRL, dra7_mmc4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0128:25" }, 650 + { DRA7_TIMER16_CLKCTRL, dra7_timer16_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0130:24", "l4per3_clkdm" }, 651 + { DRA7_QSPI_CLKCTRL, dra7_qspi_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0138:25", "l4per2_clkdm" }, 652 + { DRA7_UART1_CLKCTRL, dra7_uart1_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0140:24" }, 653 + { DRA7_UART2_CLKCTRL, dra7_uart2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0148:24" }, 654 + { DRA7_UART3_CLKCTRL, dra7_uart3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0150:24" }, 655 + { DRA7_UART4_CLKCTRL, dra7_uart4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0158:24" }, 656 + { DRA7_MCASP2_CLKCTRL, dra7_mcasp2_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0160:22", "l4per2_clkdm" }, 657 + { DRA7_MCASP3_CLKCTRL, dra7_mcasp3_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0168:22", "l4per2_clkdm" }, 658 + { DRA7_UART5_CLKCTRL, dra7_uart5_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0170:24" }, 659 + { DRA7_MCASP5_CLKCTRL, dra7_mcasp5_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0178:22", "l4per2_clkdm" }, 660 + { DRA7_MCASP8_CLKCTRL, dra7_mcasp8_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0190:24", "l4per2_clkdm" }, 661 + { DRA7_MCASP4_CLKCTRL, dra7_mcasp4_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0198:22", "l4per2_clkdm" }, 662 + { DRA7_AES1_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" }, 663 + { DRA7_AES2_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" }, 664 + { DRA7_DES_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" }, 665 + { DRA7_RNG_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" }, 666 + { DRA7_SHAM_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div", "l4sec_clkdm" }, 667 + { DRA7_UART7_CLKCTRL, dra7_uart7_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01d0:24", "l4per2_clkdm" }, 668 + { DRA7_UART8_CLKCTRL, dra7_uart8_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01e0:24", "l4per2_clkdm" }, 669 + { DRA7_UART9_CLKCTRL, dra7_uart9_bit_data, CLKF_SW_SUP, "l4per_cm:clk:01e8:24", "l4per2_clkdm" }, 670 + { DRA7_DCAN2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_clkin1", "l4per2_clkdm" }, 671 + { DRA7_MCASP6_CLKCTRL, dra7_mcasp6_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0204:22", "l4per2_clkdm" }, 672 + { DRA7_MCASP7_CLKCTRL, dra7_mcasp7_bit_data, CLKF_SW_SUP, "l4per_cm:clk:0208:22", "l4per2_clkdm" }, 673 + { 0 }, 674 + }; 675 + 676 + static const struct omap_clkctrl_bit_data dra7_gpio1_bit_data[] __initconst = { 677 + { 8, TI_CLK_GATE, dra7_dss_32khz_clk_parents, NULL }, 678 + { 0 }, 679 + }; 680 + 681 + static const struct omap_clkctrl_bit_data dra7_timer1_bit_data[] __initconst = { 682 + { 24, TI_CLK_MUX, dra7_timer10_gfclk_mux_parents, NULL }, 683 + { 0 }, 684 + }; 685 + 686 + static const struct omap_clkctrl_bit_data dra7_uart10_bit_data[] __initconst = { 687 + { 24, TI_CLK_MUX, dra7_uart6_gfclk_mux_parents, NULL }, 688 + { 0 }, 689 + }; 690 + 691 + static const char * const dra7_dcan1_sys_clk_mux_parents[] __initconst = { 692 + "sys_clkin1", 693 + "sys_clkin2", 694 + NULL, 695 + }; 696 + 697 + static const struct omap_clkctrl_bit_data dra7_dcan1_bit_data[] __initconst = { 698 + { 24, TI_CLK_MUX, dra7_dcan1_sys_clk_mux_parents, NULL }, 699 + { 0 }, 700 + }; 701 + 702 + static const struct omap_clkctrl_reg_data dra7_wkupaon_clkctrl_regs[] __initconst = { 703 + { DRA7_L4_WKUP_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" }, 704 + { DRA7_WD_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "sys_32k_ck" }, 705 + { DRA7_GPIO1_CLKCTRL, dra7_gpio1_bit_data, CLKF_HW_SUP, "wkupaon_iclk_mux" }, 706 + { DRA7_TIMER1_CLKCTRL, dra7_timer1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0020:24" }, 707 + { DRA7_TIMER12_CLKCTRL, NULL, 0, "secure_32k_clk_src_ck" }, 708 + { DRA7_COUNTER_32K_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" }, 709 + { DRA7_UART10_CLKCTRL, dra7_uart10_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0060:24" }, 710 + { DRA7_DCAN1_CLKCTRL, dra7_dcan1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0068:24" }, 711 + { 0 }, 712 + }; 713 + 714 + const struct omap_clkctrl_data dra7_clkctrl_data[] __initconst = { 715 + { 0x4a005320, dra7_mpu_clkctrl_regs }, 716 + { 0x4a005540, dra7_ipu_clkctrl_regs }, 717 + { 0x4a005740, dra7_rtc_clkctrl_regs }, 718 + { 0x4a008620, dra7_coreaon_clkctrl_regs }, 719 + { 0x4a008720, dra7_l3main1_clkctrl_regs }, 720 + { 0x4a008a20, dra7_dma_clkctrl_regs }, 721 + { 0x4a008b20, dra7_emif_clkctrl_regs }, 722 + { 0x4a008c00, dra7_atl_clkctrl_regs }, 723 + { 0x4a008d20, dra7_l4cfg_clkctrl_regs }, 724 + { 0x4a008e20, dra7_l3instr_clkctrl_regs }, 725 + { 0x4a009120, dra7_dss_clkctrl_regs }, 726 + { 0x4a009320, dra7_l3init_clkctrl_regs }, 727 + { 0x4a009700, dra7_l4per_clkctrl_regs }, 728 + { 0x4ae07820, dra7_wkupaon_clkctrl_regs }, 729 + { 0 }, 730 + }; 731 + 24 732 static struct ti_dt_clk dra7xx_clks[] = { 25 - DT_CLK(NULL, "atl_clkin0_ck", "atl_clkin0_ck"), 26 - DT_CLK(NULL, "atl_clkin1_ck", "atl_clkin1_ck"), 27 - DT_CLK(NULL, "atl_clkin2_ck", "atl_clkin2_ck"), 28 - DT_CLK(NULL, "atl_clkin3_ck", "atl_clkin3_ck"), 29 - DT_CLK(NULL, "hdmi_clkin_ck", "hdmi_clkin_ck"), 30 - DT_CLK(NULL, "mlb_clkin_ck", "mlb_clkin_ck"), 31 - DT_CLK(NULL, "mlbp_clkin_ck", "mlbp_clkin_ck"), 32 - DT_CLK(NULL, "pciesref_acs_clk_ck", "pciesref_acs_clk_ck"), 33 - DT_CLK(NULL, "ref_clkin0_ck", "ref_clkin0_ck"), 34 - DT_CLK(NULL, "ref_clkin1_ck", "ref_clkin1_ck"), 35 - DT_CLK(NULL, "ref_clkin2_ck", "ref_clkin2_ck"), 36 - DT_CLK(NULL, "ref_clkin3_ck", "ref_clkin3_ck"), 37 - DT_CLK(NULL, "rmii_clk_ck", "rmii_clk_ck"), 38 - DT_CLK(NULL, "sdvenc_clkin_ck", "sdvenc_clkin_ck"), 39 - DT_CLK(NULL, "secure_32k_clk_src_ck", "secure_32k_clk_src_ck"), 40 - DT_CLK(NULL, "sys_32k_ck", "sys_32k_ck"), 41 - DT_CLK(NULL, "virt_12000000_ck", "virt_12000000_ck"), 42 - DT_CLK(NULL, "virt_13000000_ck", "virt_13000000_ck"), 43 - DT_CLK(NULL, "virt_16800000_ck", "virt_16800000_ck"), 44 - DT_CLK(NULL, "virt_19200000_ck", "virt_19200000_ck"), 45 - DT_CLK(NULL, "virt_20000000_ck", "virt_20000000_ck"), 46 - DT_CLK(NULL, "virt_26000000_ck", "virt_26000000_ck"), 47 - DT_CLK(NULL, "virt_27000000_ck", "virt_27000000_ck"), 48 - DT_CLK(NULL, "virt_38400000_ck", "virt_38400000_ck"), 49 - DT_CLK(NULL, "sys_clkin1", "sys_clkin1"), 50 - DT_CLK(NULL, "sys_clkin2", "sys_clkin2"), 51 - DT_CLK(NULL, "usb_otg_clkin_ck", "usb_otg_clkin_ck"), 52 - DT_CLK(NULL, "video1_clkin_ck", "video1_clkin_ck"), 53 - DT_CLK(NULL, "video1_m2_clkin_ck", "video1_m2_clkin_ck"), 54 - DT_CLK(NULL, "video2_clkin_ck", "video2_clkin_ck"), 55 - DT_CLK(NULL, "video2_m2_clkin_ck", "video2_m2_clkin_ck"), 56 - DT_CLK(NULL, "abe_dpll_sys_clk_mux", "abe_dpll_sys_clk_mux"), 57 - DT_CLK(NULL, "abe_dpll_bypass_clk_mux", "abe_dpll_bypass_clk_mux"), 58 - DT_CLK(NULL, "abe_dpll_clk_mux", "abe_dpll_clk_mux"), 59 - DT_CLK(NULL, "dpll_abe_ck", "dpll_abe_ck"), 60 - DT_CLK(NULL, "dpll_abe_x2_ck", "dpll_abe_x2_ck"), 61 - DT_CLK(NULL, "dpll_abe_m2x2_ck", "dpll_abe_m2x2_ck"), 62 - DT_CLK(NULL, "abe_24m_fclk", "abe_24m_fclk"), 63 - DT_CLK(NULL, "abe_clk", "abe_clk"), 64 - DT_CLK(NULL, "aess_fclk", "aess_fclk"), 65 - DT_CLK(NULL, "abe_giclk_div", "abe_giclk_div"), 66 - DT_CLK(NULL, "abe_lp_clk_div", "abe_lp_clk_div"), 67 - DT_CLK(NULL, "abe_sys_clk_div", "abe_sys_clk_div"), 68 - DT_CLK(NULL, "adc_gfclk_mux", "adc_gfclk_mux"), 69 - DT_CLK(NULL, "dpll_pcie_ref_ck", "dpll_pcie_ref_ck"), 70 - DT_CLK(NULL, "dpll_pcie_ref_m2ldo_ck", "dpll_pcie_ref_m2ldo_ck"), 71 - DT_CLK(NULL, "apll_pcie_ck", "apll_pcie_ck"), 72 - DT_CLK(NULL, "apll_pcie_clkvcoldo", "apll_pcie_clkvcoldo"), 73 - DT_CLK(NULL, "apll_pcie_clkvcoldo_div", "apll_pcie_clkvcoldo_div"), 74 - DT_CLK(NULL, "apll_pcie_m2_ck", "apll_pcie_m2_ck"), 75 - DT_CLK(NULL, "sys_clk1_dclk_div", "sys_clk1_dclk_div"), 76 - DT_CLK(NULL, "sys_clk2_dclk_div", "sys_clk2_dclk_div"), 77 - DT_CLK(NULL, "dpll_abe_m2_ck", "dpll_abe_m2_ck"), 78 - DT_CLK(NULL, "per_abe_x1_dclk_div", "per_abe_x1_dclk_div"), 79 - DT_CLK(NULL, "dpll_abe_m3x2_ck", "dpll_abe_m3x2_ck"), 80 - DT_CLK(NULL, "dpll_core_ck", "dpll_core_ck"), 81 - DT_CLK(NULL, "dpll_core_x2_ck", "dpll_core_x2_ck"), 82 - DT_CLK(NULL, "dpll_core_h12x2_ck", "dpll_core_h12x2_ck"), 83 - DT_CLK(NULL, "mpu_dpll_hs_clk_div", "mpu_dpll_hs_clk_div"), 84 - DT_CLK(NULL, "dpll_mpu_ck", "dpll_mpu_ck"), 85 - DT_CLK(NULL, "dpll_mpu_m2_ck", "dpll_mpu_m2_ck"), 86 - DT_CLK(NULL, "mpu_dclk_div", "mpu_dclk_div"), 87 - DT_CLK(NULL, "dsp_dpll_hs_clk_div", "dsp_dpll_hs_clk_div"), 88 - DT_CLK(NULL, "dpll_dsp_ck", "dpll_dsp_ck"), 89 - DT_CLK(NULL, "dpll_dsp_m2_ck", "dpll_dsp_m2_ck"), 90 - DT_CLK(NULL, "dsp_gclk_div", "dsp_gclk_div"), 91 - DT_CLK(NULL, "iva_dpll_hs_clk_div", "iva_dpll_hs_clk_div"), 92 - DT_CLK(NULL, "dpll_iva_ck", "dpll_iva_ck"), 93 - DT_CLK(NULL, "dpll_iva_m2_ck", "dpll_iva_m2_ck"), 94 - DT_CLK(NULL, "iva_dclk", "iva_dclk"), 95 - DT_CLK(NULL, "dpll_gpu_ck", "dpll_gpu_ck"), 96 - DT_CLK(NULL, "dpll_gpu_m2_ck", "dpll_gpu_m2_ck"), 97 - DT_CLK(NULL, "gpu_dclk", "gpu_dclk"), 98 - DT_CLK(NULL, "dpll_core_m2_ck", "dpll_core_m2_ck"), 99 - DT_CLK(NULL, "core_dpll_out_dclk_div", "core_dpll_out_dclk_div"), 100 - DT_CLK(NULL, "dpll_ddr_ck", "dpll_ddr_ck"), 101 - DT_CLK(NULL, "dpll_ddr_m2_ck", "dpll_ddr_m2_ck"), 102 - DT_CLK(NULL, "emif_phy_dclk_div", "emif_phy_dclk_div"), 103 - DT_CLK(NULL, "dpll_gmac_ck", "dpll_gmac_ck"), 104 - DT_CLK(NULL, "dpll_gmac_m2_ck", "dpll_gmac_m2_ck"), 105 - DT_CLK(NULL, "gmac_250m_dclk_div", "gmac_250m_dclk_div"), 106 - DT_CLK(NULL, "video2_dclk_div", "video2_dclk_div"), 107 - DT_CLK(NULL, "video1_dclk_div", "video1_dclk_div"), 108 - DT_CLK(NULL, "hdmi_dclk_div", "hdmi_dclk_div"), 109 - DT_CLK(NULL, "per_dpll_hs_clk_div", "per_dpll_hs_clk_div"), 110 - DT_CLK(NULL, "dpll_per_ck", "dpll_per_ck"), 111 - DT_CLK(NULL, "dpll_per_m2_ck", "dpll_per_m2_ck"), 112 - DT_CLK(NULL, "func_96m_aon_dclk_div", "func_96m_aon_dclk_div"), 113 - DT_CLK(NULL, "usb_dpll_hs_clk_div", "usb_dpll_hs_clk_div"), 114 - DT_CLK(NULL, "dpll_usb_ck", "dpll_usb_ck"), 115 - DT_CLK(NULL, "dpll_usb_m2_ck", "dpll_usb_m2_ck"), 116 - DT_CLK(NULL, "l3init_480m_dclk_div", "l3init_480m_dclk_div"), 117 - DT_CLK(NULL, "usb_otg_dclk_div", "usb_otg_dclk_div"), 118 - DT_CLK(NULL, "sata_dclk_div", "sata_dclk_div"), 119 - DT_CLK(NULL, "dpll_pcie_ref_m2_ck", "dpll_pcie_ref_m2_ck"), 120 - DT_CLK(NULL, "pcie2_dclk_div", "pcie2_dclk_div"), 121 - DT_CLK(NULL, "pcie_dclk_div", "pcie_dclk_div"), 122 - DT_CLK(NULL, "emu_dclk_div", "emu_dclk_div"), 123 - DT_CLK(NULL, "secure_32k_dclk_div", "secure_32k_dclk_div"), 124 - DT_CLK(NULL, "eve_dpll_hs_clk_div", "eve_dpll_hs_clk_div"), 125 - DT_CLK(NULL, "dpll_eve_ck", "dpll_eve_ck"), 126 - DT_CLK(NULL, "dpll_eve_m2_ck", "dpll_eve_m2_ck"), 127 - DT_CLK(NULL, "eve_dclk_div", "eve_dclk_div"), 128 - DT_CLK(NULL, "clkoutmux0_clk_mux", "clkoutmux0_clk_mux"), 129 - DT_CLK(NULL, "clkoutmux1_clk_mux", "clkoutmux1_clk_mux"), 130 - DT_CLK(NULL, "clkoutmux2_clk_mux", "clkoutmux2_clk_mux"), 131 - DT_CLK(NULL, "custefuse_sys_gfclk_div", "custefuse_sys_gfclk_div"), 132 - DT_CLK(NULL, "dpll_core_h13x2_ck", "dpll_core_h13x2_ck"), 133 - DT_CLK(NULL, "dpll_core_h14x2_ck", "dpll_core_h14x2_ck"), 134 - DT_CLK(NULL, "dpll_core_h22x2_ck", "dpll_core_h22x2_ck"), 135 - DT_CLK(NULL, "dpll_core_h23x2_ck", "dpll_core_h23x2_ck"), 136 - DT_CLK(NULL, "dpll_core_h24x2_ck", "dpll_core_h24x2_ck"), 137 - DT_CLK(NULL, "dpll_ddr_x2_ck", "dpll_ddr_x2_ck"), 138 - DT_CLK(NULL, "dpll_ddr_h11x2_ck", "dpll_ddr_h11x2_ck"), 139 - DT_CLK(NULL, "dpll_dsp_x2_ck", "dpll_dsp_x2_ck"), 140 - DT_CLK(NULL, "dpll_dsp_m3x2_ck", "dpll_dsp_m3x2_ck"), 141 - DT_CLK(NULL, "dpll_gmac_x2_ck", "dpll_gmac_x2_ck"), 142 - DT_CLK(NULL, "dpll_gmac_h11x2_ck", "dpll_gmac_h11x2_ck"), 143 - DT_CLK(NULL, "dpll_gmac_h12x2_ck", "dpll_gmac_h12x2_ck"), 144 - DT_CLK(NULL, "dpll_gmac_h13x2_ck", "dpll_gmac_h13x2_ck"), 145 - DT_CLK(NULL, "dpll_gmac_m3x2_ck", "dpll_gmac_m3x2_ck"), 146 - DT_CLK(NULL, "dpll_per_x2_ck", "dpll_per_x2_ck"), 147 - DT_CLK(NULL, "dpll_per_h11x2_ck", "dpll_per_h11x2_ck"), 148 - DT_CLK(NULL, "dpll_per_h12x2_ck", "dpll_per_h12x2_ck"), 149 - DT_CLK(NULL, "dpll_per_h13x2_ck", "dpll_per_h13x2_ck"), 150 - DT_CLK(NULL, "dpll_per_h14x2_ck", "dpll_per_h14x2_ck"), 151 - DT_CLK(NULL, "dpll_per_m2x2_ck", "dpll_per_m2x2_ck"), 152 - DT_CLK(NULL, "dpll_usb_clkdcoldo", "dpll_usb_clkdcoldo"), 153 - DT_CLK(NULL, "eve_clk", "eve_clk"), 154 - DT_CLK(NULL, "func_128m_clk", "func_128m_clk"), 155 - DT_CLK(NULL, "func_12m_fclk", "func_12m_fclk"), 156 - DT_CLK(NULL, "func_24m_clk", "func_24m_clk"), 157 - DT_CLK(NULL, "func_48m_fclk", "func_48m_fclk"), 158 - DT_CLK(NULL, "func_96m_fclk", "func_96m_fclk"), 159 - DT_CLK(NULL, "gmii_m_clk_div", "gmii_m_clk_div"), 160 - DT_CLK(NULL, "hdmi_clk2_div", "hdmi_clk2_div"), 161 - DT_CLK(NULL, "hdmi_div_clk", "hdmi_div_clk"), 162 - DT_CLK(NULL, "hdmi_dpll_clk_mux", "hdmi_dpll_clk_mux"), 163 - DT_CLK(NULL, "l3_iclk_div", "l3_iclk_div"), 164 - DT_CLK(NULL, "l3init_60m_fclk", "l3init_60m_fclk"), 165 - DT_CLK(NULL, "l4_root_clk_div", "l4_root_clk_div"), 166 - DT_CLK(NULL, "mlb_clk", "mlb_clk"), 167 - DT_CLK(NULL, "mlbp_clk", "mlbp_clk"), 168 - DT_CLK(NULL, "per_abe_x1_gfclk2_div", "per_abe_x1_gfclk2_div"), 169 - DT_CLK(NULL, "timer_sys_clk_div", "timer_sys_clk_div"), 170 - DT_CLK(NULL, "video1_clk2_div", "video1_clk2_div"), 171 - DT_CLK(NULL, "video1_div_clk", "video1_div_clk"), 172 - DT_CLK(NULL, "video1_dpll_clk_mux", "video1_dpll_clk_mux"), 173 - DT_CLK(NULL, "video2_clk2_div", "video2_clk2_div"), 174 - DT_CLK(NULL, "video2_div_clk", "video2_div_clk"), 175 - DT_CLK(NULL, "video2_dpll_clk_mux", "video2_dpll_clk_mux"), 176 - DT_CLK(NULL, "wkupaon_iclk_mux", "wkupaon_iclk_mux"), 177 - DT_CLK(NULL, "dss_32khz_clk", "dss_32khz_clk"), 178 - DT_CLK(NULL, "dss_48mhz_clk", "dss_48mhz_clk"), 179 - DT_CLK(NULL, "dss_dss_clk", "dss_dss_clk"), 180 - DT_CLK(NULL, "dss_hdmi_clk", "dss_hdmi_clk"), 181 - DT_CLK(NULL, "dss_video1_clk", "dss_video1_clk"), 182 - DT_CLK(NULL, "dss_video2_clk", "dss_video2_clk"), 183 - DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"), 184 - DT_CLK(NULL, "gpio2_dbclk", "gpio2_dbclk"), 185 - DT_CLK(NULL, "gpio3_dbclk", "gpio3_dbclk"), 186 - DT_CLK(NULL, "gpio4_dbclk", "gpio4_dbclk"), 187 - DT_CLK(NULL, "gpio5_dbclk", "gpio5_dbclk"), 188 - DT_CLK(NULL, "gpio6_dbclk", "gpio6_dbclk"), 189 - DT_CLK(NULL, "gpio7_dbclk", "gpio7_dbclk"), 190 - DT_CLK(NULL, "gpio8_dbclk", "gpio8_dbclk"), 191 - DT_CLK(NULL, "mmc1_clk32k", "mmc1_clk32k"), 192 - DT_CLK(NULL, "mmc2_clk32k", "mmc2_clk32k"), 193 - DT_CLK(NULL, "mmc3_clk32k", "mmc3_clk32k"), 194 - DT_CLK(NULL, "mmc4_clk32k", "mmc4_clk32k"), 195 - DT_CLK(NULL, "sata_ref_clk", "sata_ref_clk"), 196 - DT_CLK(NULL, "usb_otg_ss1_refclk960m", "usb_otg_ss1_refclk960m"), 197 - DT_CLK(NULL, "usb_otg_ss2_refclk960m", "usb_otg_ss2_refclk960m"), 198 - DT_CLK(NULL, "usb_phy1_always_on_clk32k", "usb_phy1_always_on_clk32k"), 199 - DT_CLK(NULL, "usb_phy2_always_on_clk32k", "usb_phy2_always_on_clk32k"), 200 - DT_CLK(NULL, "usb_phy3_always_on_clk32k", "usb_phy3_always_on_clk32k"), 201 - DT_CLK(NULL, "atl_dpll_clk_mux", "atl_dpll_clk_mux"), 202 - DT_CLK(NULL, "atl_gfclk_mux", "atl_gfclk_mux"), 203 - DT_CLK(NULL, "dcan1_sys_clk_mux", "dcan1_sys_clk_mux"), 204 - DT_CLK(NULL, "gmac_rft_clk_mux", "gmac_rft_clk_mux"), 205 - DT_CLK(NULL, "gpu_core_gclk_mux", "gpu_core_gclk_mux"), 206 - DT_CLK(NULL, "gpu_hyd_gclk_mux", "gpu_hyd_gclk_mux"), 207 - DT_CLK(NULL, "ipu1_gfclk_mux", "ipu1_gfclk_mux"), 208 - DT_CLK(NULL, "l3instr_ts_gclk_div", "l3instr_ts_gclk_div"), 209 - DT_CLK(NULL, "mcasp1_ahclkr_mux", "mcasp1_ahclkr_mux"), 210 - DT_CLK(NULL, "mcasp1_ahclkx_mux", "mcasp1_ahclkx_mux"), 211 - DT_CLK(NULL, "mcasp1_aux_gfclk_mux", "mcasp1_aux_gfclk_mux"), 212 - DT_CLK(NULL, "mcasp2_ahclkr_mux", "mcasp2_ahclkr_mux"), 213 - DT_CLK(NULL, "mcasp2_ahclkx_mux", "mcasp2_ahclkx_mux"), 214 - DT_CLK(NULL, "mcasp2_aux_gfclk_mux", "mcasp2_aux_gfclk_mux"), 215 - DT_CLK(NULL, "mcasp3_ahclkx_mux", "mcasp3_ahclkx_mux"), 216 - DT_CLK(NULL, "mcasp3_aux_gfclk_mux", "mcasp3_aux_gfclk_mux"), 217 - DT_CLK(NULL, "mcasp4_ahclkx_mux", "mcasp4_ahclkx_mux"), 218 - DT_CLK(NULL, "mcasp4_aux_gfclk_mux", "mcasp4_aux_gfclk_mux"), 219 - DT_CLK(NULL, "mcasp5_ahclkx_mux", "mcasp5_ahclkx_mux"), 220 - DT_CLK(NULL, "mcasp5_aux_gfclk_mux", "mcasp5_aux_gfclk_mux"), 221 - DT_CLK(NULL, "mcasp6_ahclkx_mux", "mcasp6_ahclkx_mux"), 222 - DT_CLK(NULL, "mcasp6_aux_gfclk_mux", "mcasp6_aux_gfclk_mux"), 223 - DT_CLK(NULL, "mcasp7_ahclkx_mux", "mcasp7_ahclkx_mux"), 224 - DT_CLK(NULL, "mcasp7_aux_gfclk_mux", "mcasp7_aux_gfclk_mux"), 225 - DT_CLK(NULL, "mcasp8_ahclkx_mux", "mcasp8_ahclkx_mux"), 226 - DT_CLK(NULL, "mcasp8_aux_gfclk_mux", "mcasp8_aux_gfclk_mux"), 227 - DT_CLK(NULL, "mmc1_fclk_mux", "mmc1_fclk_mux"), 228 - DT_CLK(NULL, "mmc1_fclk_div", "mmc1_fclk_div"), 229 - DT_CLK(NULL, "mmc2_fclk_mux", "mmc2_fclk_mux"), 230 - DT_CLK(NULL, "mmc2_fclk_div", "mmc2_fclk_div"), 231 - DT_CLK(NULL, "mmc3_gfclk_mux", "mmc3_gfclk_mux"), 232 - DT_CLK(NULL, "mmc3_gfclk_div", "mmc3_gfclk_div"), 233 - DT_CLK(NULL, "mmc4_gfclk_mux", "mmc4_gfclk_mux"), 234 - DT_CLK(NULL, "mmc4_gfclk_div", "mmc4_gfclk_div"), 235 - DT_CLK(NULL, "qspi_gfclk_mux", "qspi_gfclk_mux"), 236 - DT_CLK(NULL, "qspi_gfclk_div", "qspi_gfclk_div"), 237 - DT_CLK(NULL, "timer10_gfclk_mux", "timer10_gfclk_mux"), 238 - DT_CLK(NULL, "timer11_gfclk_mux", "timer11_gfclk_mux"), 239 - DT_CLK(NULL, "timer13_gfclk_mux", "timer13_gfclk_mux"), 240 - DT_CLK(NULL, "timer14_gfclk_mux", "timer14_gfclk_mux"), 241 - DT_CLK(NULL, "timer15_gfclk_mux", "timer15_gfclk_mux"), 242 - DT_CLK(NULL, "timer16_gfclk_mux", "timer16_gfclk_mux"), 243 - DT_CLK(NULL, "timer1_gfclk_mux", "timer1_gfclk_mux"), 244 - DT_CLK(NULL, "timer2_gfclk_mux", "timer2_gfclk_mux"), 245 - DT_CLK(NULL, "timer3_gfclk_mux", "timer3_gfclk_mux"), 246 - DT_CLK(NULL, "timer4_gfclk_mux", "timer4_gfclk_mux"), 247 - DT_CLK(NULL, "timer5_gfclk_mux", "timer5_gfclk_mux"), 248 - DT_CLK(NULL, "timer6_gfclk_mux", "timer6_gfclk_mux"), 249 - DT_CLK(NULL, "timer7_gfclk_mux", "timer7_gfclk_mux"), 250 - DT_CLK(NULL, "timer8_gfclk_mux", "timer8_gfclk_mux"), 251 - DT_CLK(NULL, "timer9_gfclk_mux", "timer9_gfclk_mux"), 252 - DT_CLK(NULL, "uart10_gfclk_mux", "uart10_gfclk_mux"), 253 - DT_CLK(NULL, "uart1_gfclk_mux", "uart1_gfclk_mux"), 254 - DT_CLK(NULL, "uart2_gfclk_mux", "uart2_gfclk_mux"), 255 - DT_CLK(NULL, "uart3_gfclk_mux", "uart3_gfclk_mux"), 256 - DT_CLK(NULL, "uart4_gfclk_mux", "uart4_gfclk_mux"), 257 - DT_CLK(NULL, "uart5_gfclk_mux", "uart5_gfclk_mux"), 258 - DT_CLK(NULL, "uart6_gfclk_mux", "uart6_gfclk_mux"), 259 - DT_CLK(NULL, "uart7_gfclk_mux", "uart7_gfclk_mux"), 260 - DT_CLK(NULL, "uart8_gfclk_mux", "uart8_gfclk_mux"), 261 - DT_CLK(NULL, "uart9_gfclk_mux", "uart9_gfclk_mux"), 262 - DT_CLK(NULL, "vip1_gclk_mux", "vip1_gclk_mux"), 263 - DT_CLK(NULL, "vip2_gclk_mux", "vip2_gclk_mux"), 264 - DT_CLK(NULL, "vip3_gclk_mux", "vip3_gclk_mux"), 265 - DT_CLK("omap_i2c.1", "ick", "dummy_ck"), 266 - DT_CLK("omap_i2c.2", "ick", "dummy_ck"), 267 - DT_CLK("omap_i2c.3", "ick", "dummy_ck"), 268 - DT_CLK("omap_i2c.4", "ick", "dummy_ck"), 269 - DT_CLK(NULL, "mailboxes_ick", "dummy_ck"), 270 - DT_CLK("omap_hsmmc.0", "ick", "dummy_ck"), 271 - DT_CLK("omap_hsmmc.1", "ick", "dummy_ck"), 272 - DT_CLK("omap_hsmmc.2", "ick", "dummy_ck"), 273 - DT_CLK("omap_hsmmc.3", "ick", "dummy_ck"), 274 - DT_CLK("omap_hsmmc.4", "ick", "dummy_ck"), 275 - DT_CLK("omap-mcbsp.1", "ick", "dummy_ck"), 276 - DT_CLK("omap-mcbsp.2", "ick", "dummy_ck"), 277 - DT_CLK("omap-mcbsp.3", "ick", "dummy_ck"), 278 - DT_CLK("omap-mcbsp.4", "ick", "dummy_ck"), 279 - DT_CLK("omap2_mcspi.1", "ick", "dummy_ck"), 280 - DT_CLK("omap2_mcspi.2", "ick", "dummy_ck"), 281 - DT_CLK("omap2_mcspi.3", "ick", "dummy_ck"), 282 - DT_CLK("omap2_mcspi.4", "ick", "dummy_ck"), 283 - DT_CLK(NULL, "uart1_ick", "dummy_ck"), 284 - DT_CLK(NULL, "uart2_ick", "dummy_ck"), 285 - DT_CLK(NULL, "uart3_ick", "dummy_ck"), 286 - DT_CLK(NULL, "uart4_ick", "dummy_ck"), 287 - DT_CLK("usbhs_omap", "usbhost_ick", "dummy_ck"), 288 - DT_CLK("usbhs_omap", "usbtll_fck", "dummy_ck"), 289 - DT_CLK("omap_wdt", "ick", "dummy_ck"), 290 733 DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), 291 734 DT_CLK(NULL, "sys_clkin_ck", "timer_sys_clk_div"), 292 - DT_CLK("4ae18000.timer", "timer_sys_ck", "timer_sys_clk_div"), 293 - DT_CLK("48032000.timer", "timer_sys_ck", "timer_sys_clk_div"), 294 - DT_CLK("48034000.timer", "timer_sys_ck", "timer_sys_clk_div"), 295 - DT_CLK("48036000.timer", "timer_sys_ck", "timer_sys_clk_div"), 296 - DT_CLK("4803e000.timer", "timer_sys_ck", "timer_sys_clk_div"), 297 - DT_CLK("48086000.timer", "timer_sys_ck", "timer_sys_clk_div"), 298 - DT_CLK("48088000.timer", "timer_sys_ck", "timer_sys_clk_div"), 299 - DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), 300 - DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), 301 - DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), 302 - DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), 303 - DT_CLK("48828000.timer", "timer_sys_ck", "timer_sys_clk_div"), 304 - DT_CLK("4882a000.timer", "timer_sys_ck", "timer_sys_clk_div"), 305 - DT_CLK("4882c000.timer", "timer_sys_ck", "timer_sys_clk_div"), 306 - DT_CLK("4882e000.timer", "timer_sys_ck", "timer_sys_clk_div"), 307 735 DT_CLK(NULL, "sys_clkin", "sys_clkin1"), 308 - DT_CLK(NULL, "dss_deshdcp_clk", "dss_deshdcp_clk"), 736 + DT_CLK(NULL, "atl_dpll_clk_mux", "atl_cm:0000:24"), 737 + DT_CLK(NULL, "atl_gfclk_mux", "atl_cm:0000:26"), 738 + DT_CLK(NULL, "dcan1_sys_clk_mux", "wkupaon_cm:0068:24"), 739 + DT_CLK(NULL, "dss_32khz_clk", "dss_cm:0000:11"), 740 + DT_CLK(NULL, "dss_48mhz_clk", "dss_cm:0000:9"), 741 + DT_CLK(NULL, "dss_dss_clk", "dss_cm:0000:8"), 742 + DT_CLK(NULL, "dss_hdmi_clk", "dss_cm:0000:10"), 743 + DT_CLK(NULL, "dss_video1_clk", "dss_cm:0000:12"), 744 + DT_CLK(NULL, "dss_video2_clk", "dss_cm:0000:13"), 745 + DT_CLK(NULL, "gmac_rft_clk_mux", "l3init_cm:00b0:25"), 746 + DT_CLK(NULL, "gpio1_dbclk", "wkupaon_cm:0018:8"), 747 + DT_CLK(NULL, "gpio2_dbclk", "l4per_cm:0060:8"), 748 + DT_CLK(NULL, "gpio3_dbclk", "l4per_cm:0068:8"), 749 + DT_CLK(NULL, "gpio4_dbclk", "l4per_cm:0070:8"), 750 + DT_CLK(NULL, "gpio5_dbclk", "l4per_cm:0078:8"), 751 + DT_CLK(NULL, "gpio6_dbclk", "l4per_cm:0080:8"), 752 + DT_CLK(NULL, "gpio7_dbclk", "l4per_cm:0110:8"), 753 + DT_CLK(NULL, "gpio8_dbclk", "l4per_cm:0118:8"), 754 + DT_CLK(NULL, "mcasp1_ahclkr_mux", "ipu_cm:0010:28"), 755 + DT_CLK(NULL, "mcasp1_ahclkx_mux", "ipu_cm:0010:24"), 756 + DT_CLK(NULL, "mcasp1_aux_gfclk_mux", "ipu_cm:0010:22"), 757 + DT_CLK(NULL, "mcasp2_ahclkr_mux", "l4per_cm:0160:28"), 758 + DT_CLK(NULL, "mcasp2_ahclkx_mux", "l4per_cm:0160:24"), 759 + DT_CLK(NULL, "mcasp2_aux_gfclk_mux", "l4per_cm:0160:22"), 760 + DT_CLK(NULL, "mcasp3_ahclkx_mux", "l4per_cm:0168:24"), 761 + DT_CLK(NULL, "mcasp3_aux_gfclk_mux", "l4per_cm:0168:22"), 762 + DT_CLK(NULL, "mcasp4_ahclkx_mux", "l4per_cm:0198:24"), 763 + DT_CLK(NULL, "mcasp4_aux_gfclk_mux", "l4per_cm:0198:22"), 764 + DT_CLK(NULL, "mcasp5_ahclkx_mux", "l4per_cm:0178:24"), 765 + DT_CLK(NULL, "mcasp5_aux_gfclk_mux", "l4per_cm:0178:22"), 766 + DT_CLK(NULL, "mcasp6_ahclkx_mux", "l4per_cm:0204:24"), 767 + DT_CLK(NULL, "mcasp6_aux_gfclk_mux", "l4per_cm:0204:22"), 768 + DT_CLK(NULL, "mcasp7_ahclkx_mux", "l4per_cm:0208:24"), 769 + DT_CLK(NULL, "mcasp7_aux_gfclk_mux", "l4per_cm:0208:22"), 770 + DT_CLK(NULL, "mcasp8_ahclkx_mux", "l4per_cm:0190:22"), 771 + DT_CLK(NULL, "mcasp8_aux_gfclk_mux", "l4per_cm:0190:24"), 772 + DT_CLK(NULL, "mmc1_clk32k", "l3init_cm:0008:8"), 773 + DT_CLK(NULL, "mmc1_fclk_div", "l3init_cm:0008:25"), 774 + DT_CLK(NULL, "mmc1_fclk_mux", "l3init_cm:0008:24"), 775 + DT_CLK(NULL, "mmc2_clk32k", "l3init_cm:0010:8"), 776 + DT_CLK(NULL, "mmc2_fclk_div", "l3init_cm:0010:25"), 777 + DT_CLK(NULL, "mmc2_fclk_mux", "l3init_cm:0010:24"), 778 + DT_CLK(NULL, "mmc3_clk32k", "l4per_cm:0120:8"), 779 + DT_CLK(NULL, "mmc3_gfclk_div", "l4per_cm:0120:25"), 780 + DT_CLK(NULL, "mmc3_gfclk_mux", "l4per_cm:0120:24"), 781 + DT_CLK(NULL, "mmc4_clk32k", "l4per_cm:0128:8"), 782 + DT_CLK(NULL, "mmc4_gfclk_div", "l4per_cm:0128:25"), 783 + DT_CLK(NULL, "mmc4_gfclk_mux", "l4per_cm:0128:24"), 784 + DT_CLK(NULL, "optfclk_pciephy1_32khz", "l3init_cm:0090:8"), 785 + DT_CLK(NULL, "optfclk_pciephy1_clk", "l3init_cm:0090:9"), 786 + DT_CLK(NULL, "optfclk_pciephy1_div_clk", "l3init_cm:0090:10"), 787 + DT_CLK(NULL, "optfclk_pciephy2_32khz", "l3init_cm:0098:8"), 788 + DT_CLK(NULL, "optfclk_pciephy2_clk", "l3init_cm:0098:9"), 789 + DT_CLK(NULL, "optfclk_pciephy2_div_clk", "l3init_cm:0098:10"), 790 + DT_CLK(NULL, "qspi_gfclk_div", "l4per_cm:0138:25"), 791 + DT_CLK(NULL, "qspi_gfclk_mux", "l4per_cm:0138:24"), 792 + DT_CLK(NULL, "rmii_50mhz_clk_mux", "l3init_cm:00b0:24"), 793 + DT_CLK(NULL, "sata_ref_clk", "l3init_cm:0068:8"), 794 + DT_CLK(NULL, "timer10_gfclk_mux", "l4per_cm:0028:24"), 795 + DT_CLK(NULL, "timer11_gfclk_mux", "l4per_cm:0030:24"), 796 + DT_CLK(NULL, "timer13_gfclk_mux", "l4per_cm:00c8:24"), 797 + DT_CLK(NULL, "timer14_gfclk_mux", "l4per_cm:00d0:24"), 798 + DT_CLK(NULL, "timer15_gfclk_mux", "l4per_cm:00d8:24"), 799 + DT_CLK(NULL, "timer16_gfclk_mux", "l4per_cm:0130:24"), 800 + DT_CLK(NULL, "timer1_gfclk_mux", "wkupaon_cm:0020:24"), 801 + DT_CLK(NULL, "timer2_gfclk_mux", "l4per_cm:0038:24"), 802 + DT_CLK(NULL, "timer3_gfclk_mux", "l4per_cm:0040:24"), 803 + DT_CLK(NULL, "timer4_gfclk_mux", "l4per_cm:0048:24"), 804 + DT_CLK(NULL, "timer5_gfclk_mux", "ipu_cm:0018:24"), 805 + DT_CLK(NULL, "timer6_gfclk_mux", "ipu_cm:0020:24"), 806 + DT_CLK(NULL, "timer7_gfclk_mux", "ipu_cm:0028:24"), 807 + DT_CLK(NULL, "timer8_gfclk_mux", "ipu_cm:0030:24"), 808 + DT_CLK(NULL, "timer9_gfclk_mux", "l4per_cm:0050:24"), 809 + DT_CLK(NULL, "uart10_gfclk_mux", "wkupaon_cm:0060:24"), 810 + DT_CLK(NULL, "uart1_gfclk_mux", "l4per_cm:0140:24"), 811 + DT_CLK(NULL, "uart2_gfclk_mux", "l4per_cm:0148:24"), 812 + DT_CLK(NULL, "uart3_gfclk_mux", "l4per_cm:0150:24"), 813 + DT_CLK(NULL, "uart4_gfclk_mux", "l4per_cm:0158:24"), 814 + DT_CLK(NULL, "uart5_gfclk_mux", "l4per_cm:0170:24"), 815 + DT_CLK(NULL, "uart6_gfclk_mux", "ipu_cm:0040:24"), 816 + DT_CLK(NULL, "uart7_gfclk_mux", "l4per_cm:01d0:24"), 817 + DT_CLK(NULL, "uart8_gfclk_mux", "l4per_cm:01e0:24"), 818 + DT_CLK(NULL, "uart9_gfclk_mux", "l4per_cm:01e8:24"), 819 + DT_CLK(NULL, "usb_otg_ss1_refclk960m", "l3init_cm:00d0:8"), 820 + DT_CLK(NULL, "usb_otg_ss2_refclk960m", "l3init_cm:0020:8"), 309 821 { .node_name = NULL }, 310 822 }; 311 823 ··· 829 317 ti_dt_clocks_register(dra7xx_clks); 830 318 831 319 omap2_clk_disable_autoidle_all(); 320 + 321 + ti_clk_add_aliases(); 832 322 833 323 dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); 834 324 rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ);
+38 -12
drivers/clk/ti/clk-814x.c
··· 9 9 #include <linux/clk-provider.h> 10 10 #include <linux/clk/ti.h> 11 11 #include <linux/of_platform.h> 12 + #include <dt-bindings/clock/dm814.h> 12 13 13 14 #include "clock.h" 14 15 16 + static const struct omap_clkctrl_reg_data dm814_default_clkctrl_regs[] __initconst = { 17 + { DM814_USB_OTG_HS_CLKCTRL, NULL, CLKF_SW_SUP, "pll260dcoclkldo" }, 18 + { 0 }, 19 + }; 20 + 21 + static const struct omap_clkctrl_reg_data dm814_alwon_clkctrl_regs[] __initconst = { 22 + { DM814_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 23 + { DM814_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 24 + { DM814_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 25 + { DM814_GPIO1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 26 + { DM814_GPIO2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 27 + { DM814_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 28 + { DM814_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 29 + { DM814_WD_TIMER_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk18_ck" }, 30 + { DM814_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 31 + { DM814_GPMC_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 32 + { DM814_CPGMAC0_CLKCTRL, NULL, CLKF_SW_SUP, "cpsw_125mhz_gclk" }, 33 + { DM814_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "mpu_ck" }, 34 + { DM814_RTC_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk18_ck" }, 35 + { DM814_TPCC_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 36 + { DM814_TPTC0_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 37 + { DM814_TPTC1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 38 + { DM814_TPTC2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 39 + { DM814_TPTC3_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 40 + { DM814_MMC1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk8_ck" }, 41 + { DM814_MMC2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk8_ck" }, 42 + { DM814_MMC3_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk8_ck" }, 43 + { 0 }, 44 + }; 45 + 46 + const struct omap_clkctrl_data dm814_clkctrl_data[] __initconst = { 47 + { 0x48180500, dm814_default_clkctrl_regs }, 48 + { 0x48181400, dm814_alwon_clkctrl_regs }, 49 + { 0 }, 50 + }; 51 + 15 52 static struct ti_dt_clk dm814_clks[] = { 16 - DT_CLK(NULL, "devosc_ck", "devosc_ck"), 17 - DT_CLK(NULL, "mpu_ck", "mpu_ck"), 18 - DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"), 19 - DT_CLK(NULL, "sysclk5_ck", "sysclk5_ck"), 20 - DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"), 21 - DT_CLK(NULL, "sysclk8_ck", "sysclk8_ck"), 22 - DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"), 23 - DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"), 24 53 DT_CLK(NULL, "timer_sys_ck", "devosc_ck"), 25 - DT_CLK(NULL, "timer1_fck", "timer1_fck"), 26 - DT_CLK(NULL, "timer2_fck", "timer2_fck"), 27 - DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"), 28 - DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"), 29 54 { .node_name = NULL }, 30 55 }; 31 56 ··· 108 83 { 109 84 ti_dt_clocks_register(dm814_clks); 110 85 omap2_clk_disable_autoidle_all(); 86 + ti_clk_add_aliases(); 111 87 omap2_clk_enable_init_clocks(NULL, 0); 112 88 timer_clocks_initialized = true; 113 89
+46 -16
drivers/clk/ti/clk-816x.c
··· 13 13 #include <linux/list.h> 14 14 #include <linux/clk-provider.h> 15 15 #include <linux/clk/ti.h> 16 + #include <dt-bindings/clock/dm816.h> 16 17 17 18 #include "clock.h" 19 + 20 + static const struct omap_clkctrl_reg_data dm816_default_clkctrl_regs[] __initconst = { 21 + { DM816_USB_OTG_HS_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 22 + { 0 }, 23 + }; 24 + 25 + static const struct omap_clkctrl_reg_data dm816_alwon_clkctrl_regs[] __initconst = { 26 + { DM816_UART1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 27 + { DM816_UART2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 28 + { DM816_UART3_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 29 + { DM816_GPIO1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 30 + { DM816_GPIO2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 31 + { DM816_I2C1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 32 + { DM816_I2C2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 33 + { DM816_TIMER1_CLKCTRL, NULL, CLKF_SW_SUP, "timer1_fck" }, 34 + { DM816_TIMER2_CLKCTRL, NULL, CLKF_SW_SUP, "timer2_fck" }, 35 + { DM816_TIMER3_CLKCTRL, NULL, CLKF_SW_SUP, "timer3_fck" }, 36 + { DM816_TIMER4_CLKCTRL, NULL, CLKF_SW_SUP, "timer4_fck" }, 37 + { DM816_TIMER5_CLKCTRL, NULL, CLKF_SW_SUP, "timer5_fck" }, 38 + { DM816_TIMER6_CLKCTRL, NULL, CLKF_SW_SUP, "timer6_fck" }, 39 + { DM816_TIMER7_CLKCTRL, NULL, CLKF_SW_SUP, "timer7_fck" }, 40 + { DM816_WD_TIMER_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk18_ck" }, 41 + { DM816_MCSPI1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 42 + { DM816_MAILBOX_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 43 + { DM816_SPINBOX_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 44 + { DM816_MMC1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk10_ck" }, 45 + { DM816_GPMC_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk6_ck" }, 46 + { DM816_DAVINCI_MDIO_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk24_ck" }, 47 + { DM816_EMAC1_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk24_ck" }, 48 + { DM816_MPU_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk2_ck" }, 49 + { DM816_RTC_CLKCTRL, NULL, CLKF_SW_SUP | CLKF_NO_IDLEST, "sysclk18_ck" }, 50 + { DM816_TPCC_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 51 + { DM816_TPTC0_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 52 + { DM816_TPTC1_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 53 + { DM816_TPTC2_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 54 + { DM816_TPTC3_CLKCTRL, NULL, CLKF_SW_SUP, "sysclk4_ck" }, 55 + { 0 }, 56 + }; 57 + 58 + const struct omap_clkctrl_data dm816_clkctrl_data[] __initconst = { 59 + { 0x48180500, dm816_default_clkctrl_regs }, 60 + { 0x48181400, dm816_alwon_clkctrl_regs }, 61 + { 0 }, 62 + }; 18 63 19 64 static struct ti_dt_clk dm816x_clks[] = { 20 65 DT_CLK(NULL, "sys_clkin", "sys_clkin_ck"), 21 66 DT_CLK(NULL, "timer_sys_ck", "sys_clkin_ck"), 22 - DT_CLK(NULL, "sys_32k_ck", "sys_32k_ck"), 23 67 DT_CLK(NULL, "timer_32k_ck", "sysclk18_ck"), 24 68 DT_CLK(NULL, "timer_ext_ck", "tclkin_ck"), 25 - DT_CLK(NULL, "mpu_ck", "mpu_ck"), 26 - DT_CLK(NULL, "timer1_fck", "timer1_fck"), 27 - DT_CLK(NULL, "timer2_fck", "timer2_fck"), 28 - DT_CLK(NULL, "timer3_fck", "timer3_fck"), 29 - DT_CLK(NULL, "timer4_fck", "timer4_fck"), 30 - DT_CLK(NULL, "timer5_fck", "timer5_fck"), 31 - DT_CLK(NULL, "timer6_fck", "timer6_fck"), 32 - DT_CLK(NULL, "timer7_fck", "timer7_fck"), 33 - DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"), 34 - DT_CLK(NULL, "sysclk5_ck", "sysclk5_ck"), 35 - DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"), 36 - DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"), 37 - DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"), 38 - DT_CLK(NULL, "sysclk24_ck", "sysclk24_ck"), 39 - DT_CLK("4a100000.ethernet", "sysclk24_ck", "sysclk24_ck"), 40 69 { .node_name = NULL }, 41 70 }; 42 71 ··· 79 50 { 80 51 ti_dt_clocks_register(dm816x_clks); 81 52 omap2_clk_disable_autoidle_all(); 53 + ti_clk_add_aliases(); 82 54 omap2_clk_enable_init_clocks(enable_init_clks, 83 55 ARRAY_SIZE(enable_init_clks)); 84 56
+61 -9
drivers/clk/ti/clk.c
··· 108 108 struct device_node *node; 109 109 struct clk *clk; 110 110 struct of_phandle_args clkspec; 111 + char buf[64]; 112 + char *ptr; 113 + char *tags[2]; 114 + int i; 115 + int num_args; 116 + int ret; 117 + static bool clkctrl_nodes_missing; 118 + static bool has_clkctrl_data; 111 119 112 120 for (c = oclks; c->node_name != NULL; c++) { 113 - node = of_find_node_by_name(NULL, c->node_name); 121 + strcpy(buf, c->node_name); 122 + ptr = buf; 123 + for (i = 0; i < 2; i++) 124 + tags[i] = NULL; 125 + num_args = 0; 126 + while (*ptr) { 127 + if (*ptr == ':') { 128 + if (num_args >= 2) { 129 + pr_warn("Bad number of tags on %s\n", 130 + c->node_name); 131 + return; 132 + } 133 + tags[num_args++] = ptr + 1; 134 + *ptr = 0; 135 + } 136 + ptr++; 137 + } 138 + 139 + if (num_args && clkctrl_nodes_missing) 140 + continue; 141 + 142 + node = of_find_node_by_name(NULL, buf); 143 + if (num_args) 144 + node = of_find_node_by_name(node, "clk"); 114 145 clkspec.np = node; 146 + clkspec.args_count = num_args; 147 + for (i = 0; i < num_args; i++) { 148 + ret = kstrtoint(tags[i], i ? 10 : 16, clkspec.args + i); 149 + if (ret) { 150 + pr_warn("Bad tag in %s at %d: %s\n", 151 + c->node_name, i, tags[i]); 152 + return; 153 + } 154 + } 115 155 clk = of_clk_get_from_provider(&clkspec); 116 156 117 157 if (!IS_ERR(clk)) { 118 158 c->lk.clk = clk; 119 159 clkdev_add(&c->lk); 120 160 } else { 121 - pr_warn("failed to lookup clock node %s\n", 122 - c->node_name); 161 + if (num_args && !has_clkctrl_data) { 162 + if (of_find_compatible_node(NULL, NULL, 163 + "ti,clkctrl")) { 164 + has_clkctrl_data = true; 165 + } else { 166 + clkctrl_nodes_missing = true; 167 + 168 + pr_warn("missing clkctrl nodes, please update your dts.\n"); 169 + continue; 170 + } 171 + } 172 + 173 + pr_warn("failed to lookup clock node %s, ret=%ld\n", 174 + c->node_name, PTR_ERR(clk)); 123 175 } 124 176 } 125 177 } 126 178 127 179 struct clk_init_item { 128 180 struct device_node *node; 129 - struct clk_hw *hw; 181 + void *user; 130 182 ti_of_clk_init_cb_t func; 131 183 struct list_head link; 132 184 }; ··· 188 136 /** 189 137 * ti_clk_retry_init - retries a failed clock init at later phase 190 138 * @node: device not for the clock 191 - * @hw: partially initialized clk_hw struct for the clock 139 + * @user: user data pointer 192 140 * @func: init function to be called for the clock 193 141 * 194 142 * Adds a failed clock init to the retry list. The retry list is parsed 195 143 * once all the other clocks have been initialized. 196 144 */ 197 - int __init ti_clk_retry_init(struct device_node *node, struct clk_hw *hw, 198 - ti_of_clk_init_cb_t func) 145 + int __init ti_clk_retry_init(struct device_node *node, void *user, 146 + ti_of_clk_init_cb_t func) 199 147 { 200 148 struct clk_init_item *retry; 201 149 ··· 206 154 207 155 retry->node = node; 208 156 retry->func = func; 209 - retry->hw = hw; 157 + retry->user = user; 210 158 list_add(&retry->link, &retry_list); 211 159 212 160 return 0; ··· 328 276 while (!list_empty(&retry_list) && retries) { 329 277 list_for_each_entry_safe(retry, tmp, &retry_list, link) { 330 278 pr_debug("retry-init: %s\n", retry->node->name); 331 - retry->func(retry->hw, retry->node); 279 + retry->func(retry->user, retry->node); 332 280 list_del(&retry->link); 333 281 kfree(retry); 334 282 }
+84 -7
drivers/clk/ti/clkctrl.c
··· 21 21 #include <linux/of_address.h> 22 22 #include <linux/clk/ti.h> 23 23 #include <linux/delay.h> 24 + #include <linux/timekeeping.h> 24 25 #include "clock.h" 25 26 26 27 #define NO_IDLEST 0x1 ··· 47 46 struct omap_clkctrl_provider { 48 47 void __iomem *base; 49 48 struct list_head clocks; 49 + char *clkdm_name; 50 50 }; 51 51 52 52 struct omap_clkctrl_clk { ··· 91 89 92 90 static bool _omap4_is_timeout(union omap4_timeout *time, u32 timeout) 93 91 { 94 - if (unlikely(_early_timeout)) { 92 + /* 93 + * There are two special cases where ktime_to_ns() can't be 94 + * used to track the timeouts. First one is during early boot 95 + * when the timers haven't been initialized yet. The second 96 + * one is during suspend-resume cycle while timekeeping is 97 + * being suspended / resumed. Clocksource for the system 98 + * can be from a timer that requires pm_runtime access, which 99 + * will eventually bring us here with timekeeping_suspended, 100 + * during both suspend entry and resume paths. This happens 101 + * at least on am43xx platform. 102 + */ 103 + if (unlikely(_early_timeout || timekeeping_suspended)) { 95 104 if (time->cycles++ < timeout) { 96 105 udelay(1); 97 106 return false; ··· 221 208 .enable = _omap4_clkctrl_clk_enable, 222 209 .disable = _omap4_clkctrl_clk_disable, 223 210 .is_enabled = _omap4_clkctrl_clk_is_enabled, 211 + .init = omap2_init_clk_clkdm, 224 212 }; 225 213 226 214 static struct clk_hw *_ti_omap4_clkctrl_xlate(struct of_phandle_args *clkspec, ··· 335 321 } 336 322 337 323 mux->mask = num_parents; 324 + if (!(mux->flags & CLK_MUX_INDEX_ONE)) 325 + mux->mask--; 326 + 338 327 mux->mask = (1 << fls(mux->mask)) - 1; 339 328 340 329 mux->shift = data->bit; ··· 357 340 { 358 341 struct clk_omap_divider *div; 359 342 const struct omap_clkctrl_div_data *div_data = data->data; 343 + u8 div_flags = 0; 360 344 361 345 div = kzalloc(sizeof(*div), GFP_KERNEL); 362 346 if (!div) ··· 365 347 366 348 div->reg.ptr = reg; 367 349 div->shift = data->bit; 350 + div->flags = div_data->flags; 368 351 369 - if (ti_clk_parse_divider_data((int *)div_data->dividers, 370 - div_data->max_div, 0, 0, 352 + if (div->flags & CLK_DIVIDER_POWER_OF_TWO) 353 + div_flags |= CLKF_INDEX_POWER_OF_TWO; 354 + 355 + if (ti_clk_parse_divider_data((int *)div_data->dividers, 0, 356 + div_data->max_div, div_flags, 371 357 &div->width, &div->table)) { 372 - pr_err("%s: Data parsing for %s:%04x:%d failed\n", __func__, 373 - node->name, offset, data->bit); 358 + pr_err("%s: Data parsing for %pOF:%04x:%d failed\n", __func__, 359 + node, offset, data->bit); 374 360 kfree(div); 375 361 return; 376 362 } ··· 422 400 } 423 401 } 424 402 403 + static void __init _clkctrl_add_provider(void *data, 404 + struct device_node *np) 405 + { 406 + of_clk_add_hw_provider(np, _ti_omap4_clkctrl_xlate, data); 407 + } 408 + 425 409 static void __init _ti_omap4_clkctrl_setup(struct device_node *node) 426 410 { 427 411 struct omap_clkctrl_provider *provider; ··· 439 411 struct omap_clkctrl_clk *clkctrl_clk; 440 412 const __be32 *addrp; 441 413 u32 addr; 414 + int ret; 442 415 443 416 addrp = of_get_address(node, 0, NULL, NULL); 444 417 addr = (u32)of_translate_address(node, addrp); ··· 447 418 #ifdef CONFIG_ARCH_OMAP4 448 419 if (of_machine_is_compatible("ti,omap4")) 449 420 data = omap4_clkctrl_data; 421 + #endif 422 + #ifdef CONFIG_SOC_OMAP5 423 + if (of_machine_is_compatible("ti,omap5")) 424 + data = omap5_clkctrl_data; 425 + #endif 426 + #ifdef CONFIG_SOC_DRA7XX 427 + if (of_machine_is_compatible("ti,dra7")) 428 + data = dra7_clkctrl_data; 429 + #endif 430 + #ifdef CONFIG_SOC_AM33XX 431 + if (of_machine_is_compatible("ti,am33xx")) 432 + data = am3_clkctrl_data; 433 + #endif 434 + #ifdef CONFIG_SOC_AM43XX 435 + if (of_machine_is_compatible("ti,am4372")) 436 + data = am4_clkctrl_data; 437 + if (of_machine_is_compatible("ti,am438x")) 438 + data = am438x_clkctrl_data; 439 + #endif 440 + #ifdef CONFIG_SOC_TI81XX 441 + if (of_machine_is_compatible("ti,dm814")) 442 + data = dm814_clkctrl_data; 443 + 444 + if (of_machine_is_compatible("ti,dm816")) 445 + data = dm816_clkctrl_data; 450 446 #endif 451 447 452 448 while (data->addr) { ··· 482 428 } 483 429 484 430 if (!data->addr) { 485 - pr_err("%s not found from clkctrl data.\n", node->name); 431 + pr_err("%pOF not found from clkctrl data.\n", node); 486 432 return; 487 433 } 488 434 ··· 491 437 return; 492 438 493 439 provider->base = of_iomap(node, 0); 440 + 441 + provider->clkdm_name = kmalloc(strlen(node->parent->name) + 3, 442 + GFP_KERNEL); 443 + if (!provider->clkdm_name) { 444 + kfree(provider); 445 + return; 446 + } 447 + 448 + /* 449 + * Create default clkdm name, replace _cm from end of parent node 450 + * name with _clkdm 451 + */ 452 + strcpy(provider->clkdm_name, node->parent->name); 453 + provider->clkdm_name[strlen(provider->clkdm_name) - 2] = 0; 454 + strcat(provider->clkdm_name, "clkdm"); 494 455 495 456 INIT_LIST_HEAD(&provider->clocks); 496 457 ··· 528 459 hw->enable_bit = MODULEMODE_HWCTRL; 529 460 if (reg_data->flags & CLKF_NO_IDLEST) 530 461 hw->flags |= NO_IDLEST; 462 + 463 + if (reg_data->clkdm_name) 464 + hw->clkdm_name = reg_data->clkdm_name; 465 + else 466 + hw->clkdm_name = provider->clkdm_name; 531 467 532 468 init.parent_names = &reg_data->parent; 533 469 init.num_parents = 1; ··· 559 485 reg_data++; 560 486 } 561 487 562 - of_clk_add_hw_provider(node, _ti_omap4_clkctrl_xlate, provider); 488 + ret = of_clk_add_hw_provider(node, _ti_omap4_clkctrl_xlate, provider); 489 + if (ret == -EPROBE_DEFER) 490 + ti_clk_retry_init(node, provider, _clkctrl_add_provider); 491 + 563 492 return; 564 493 565 494 cleanup:
+11 -2
drivers/clk/ti/clock.h
··· 207 207 struct omap_clkctrl_div_data { 208 208 const int *dividers; 209 209 int max_div; 210 + u32 flags; 210 211 }; 211 212 212 213 struct omap_clkctrl_bit_data { ··· 222 221 const struct omap_clkctrl_bit_data *bit_data; 223 222 u16 flags; 224 223 const char *parent; 224 + const char *clkdm_name; 225 225 }; 226 226 227 227 struct omap_clkctrl_data { ··· 231 229 }; 232 230 233 231 extern const struct omap_clkctrl_data omap4_clkctrl_data[]; 232 + extern const struct omap_clkctrl_data omap5_clkctrl_data[]; 233 + extern const struct omap_clkctrl_data dra7_clkctrl_data[]; 234 + extern const struct omap_clkctrl_data am3_clkctrl_data[]; 235 + extern const struct omap_clkctrl_data am4_clkctrl_data[]; 236 + extern const struct omap_clkctrl_data am438x_clkctrl_data[]; 237 + extern const struct omap_clkctrl_data dm814_clkctrl_data[]; 238 + extern const struct omap_clkctrl_data dm816_clkctrl_data[]; 234 239 235 240 #define CLKF_SW_SUP BIT(0) 236 241 #define CLKF_HW_SUP BIT(1) 237 242 #define CLKF_NO_IDLEST BIT(2) 238 243 239 - typedef void (*ti_of_clk_init_cb_t)(struct clk_hw *, struct device_node *); 244 + typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *); 240 245 241 246 struct clk *ti_clk_register_gate(struct ti_clk *setup); 242 247 struct clk *ti_clk_register_interface(struct ti_clk *setup); ··· 271 262 int ti_clk_get_reg_addr(struct device_node *node, int index, 272 263 struct clk_omap_reg *reg); 273 264 void ti_dt_clocks_register(struct ti_dt_clk *oclks); 274 - int ti_clk_retry_init(struct device_node *node, struct clk_hw *hw, 265 + int ti_clk_retry_init(struct device_node *node, void *user, 275 266 ti_of_clk_init_cb_t func); 276 267 int ti_clk_add_component(struct device_node *node, struct clk_hw *hw, int type); 277 268
+2 -1
drivers/clk/ti/composite.c
··· 161 161 } 162 162 #endif 163 163 164 - static void __init _register_composite(struct clk_hw *hw, 164 + static void __init _register_composite(void *user, 165 165 struct device_node *node) 166 166 { 167 + struct clk_hw *hw = user; 167 168 struct clk *clk; 168 169 struct clk_hw_omap_comp *cclk = to_clk_hw_comp(hw); 169 170 struct component_clk *comp;
+2 -1
drivers/clk/ti/dpll.c
··· 152 152 * clk-bypass is missing), the clock is added to retry list and 153 153 * the initialization is retried on later stage. 154 154 */ 155 - static void __init _register_dpll(struct clk_hw *hw, 155 + static void __init _register_dpll(void *user, 156 156 struct device_node *node) 157 157 { 158 + struct clk_hw *hw = user; 158 159 struct clk_hw_omap *clk_hw = to_clk_hw_omap(hw); 159 160 struct dpll_data *dd = clk_hw->dpll_data; 160 161 struct clk *clk;
+108
include/dt-bindings/clock/am3.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_AM3_H 14 + #define __DT_BINDINGS_CLK_AM3_H 15 + 16 + #define AM3_CLKCTRL_OFFSET 0x0 17 + #define AM3_CLKCTRL_INDEX(offset) ((offset) - AM3_CLKCTRL_OFFSET) 18 + 19 + /* l4_per clocks */ 20 + #define AM3_L4_PER_CLKCTRL_OFFSET 0x14 21 + #define AM3_L4_PER_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_PER_CLKCTRL_OFFSET) 22 + #define AM3_CPGMAC0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x14) 23 + #define AM3_LCDC_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x18) 24 + #define AM3_USB_OTG_HS_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x1c) 25 + #define AM3_TPTC0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x24) 26 + #define AM3_EMIF_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x28) 27 + #define AM3_OCMCRAM_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x2c) 28 + #define AM3_GPMC_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x30) 29 + #define AM3_MCASP0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x34) 30 + #define AM3_UART6_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x38) 31 + #define AM3_MMC1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x3c) 32 + #define AM3_ELM_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x40) 33 + #define AM3_I2C3_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x44) 34 + #define AM3_I2C2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x48) 35 + #define AM3_SPI0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x4c) 36 + #define AM3_SPI1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x50) 37 + #define AM3_L4_LS_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x60) 38 + #define AM3_MCASP1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x68) 39 + #define AM3_UART2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x6c) 40 + #define AM3_UART3_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x70) 41 + #define AM3_UART4_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x74) 42 + #define AM3_UART5_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x78) 43 + #define AM3_TIMER7_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x7c) 44 + #define AM3_TIMER2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x80) 45 + #define AM3_TIMER3_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x84) 46 + #define AM3_TIMER4_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x88) 47 + #define AM3_RNG_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x90) 48 + #define AM3_AES_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x94) 49 + #define AM3_SHAM_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xa0) 50 + #define AM3_GPIO2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xac) 51 + #define AM3_GPIO3_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xb0) 52 + #define AM3_GPIO4_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xb4) 53 + #define AM3_TPCC_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xbc) 54 + #define AM3_D_CAN0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xc0) 55 + #define AM3_D_CAN1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xc4) 56 + #define AM3_EPWMSS1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xcc) 57 + #define AM3_EPWMSS0_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xd4) 58 + #define AM3_EPWMSS2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xd8) 59 + #define AM3_L3_INSTR_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xdc) 60 + #define AM3_L3_MAIN_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xe0) 61 + #define AM3_PRUSS_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xe8) 62 + #define AM3_TIMER5_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xec) 63 + #define AM3_TIMER6_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xf0) 64 + #define AM3_MMC2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xf4) 65 + #define AM3_MMC3_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xf8) 66 + #define AM3_TPTC1_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0xfc) 67 + #define AM3_TPTC2_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x100) 68 + #define AM3_SPINLOCK_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x10c) 69 + #define AM3_MAILBOX_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x110) 70 + #define AM3_L4_HS_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x120) 71 + #define AM3_OCPWP_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x130) 72 + #define AM3_CLKDIV32K_CLKCTRL AM3_L4_PER_CLKCTRL_INDEX(0x14c) 73 + 74 + /* l4_wkup clocks */ 75 + #define AM3_L4_WKUP_CLKCTRL_OFFSET 0x4 76 + #define AM3_L4_WKUP_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_WKUP_CLKCTRL_OFFSET) 77 + #define AM3_CONTROL_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0x4) 78 + #define AM3_GPIO1_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0x8) 79 + #define AM3_L4_WKUP_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xc) 80 + #define AM3_DEBUGSS_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0x14) 81 + #define AM3_WKUP_M3_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xb0) 82 + #define AM3_UART1_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xb4) 83 + #define AM3_I2C1_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xb8) 84 + #define AM3_ADC_TSC_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xbc) 85 + #define AM3_SMARTREFLEX0_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xc0) 86 + #define AM3_TIMER1_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xc4) 87 + #define AM3_SMARTREFLEX1_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xc8) 88 + #define AM3_WD_TIMER2_CLKCTRL AM3_L4_WKUP_CLKCTRL_INDEX(0xd4) 89 + 90 + /* mpu clocks */ 91 + #define AM3_MPU_CLKCTRL_OFFSET 0x4 92 + #define AM3_MPU_CLKCTRL_INDEX(offset) ((offset) - AM3_MPU_CLKCTRL_OFFSET) 93 + #define AM3_MPU_CLKCTRL AM3_MPU_CLKCTRL_INDEX(0x4) 94 + 95 + /* l4_rtc clocks */ 96 + #define AM3_RTC_CLKCTRL AM3_CLKCTRL_INDEX(0x0) 97 + 98 + /* gfx_l3 clocks */ 99 + #define AM3_GFX_L3_CLKCTRL_OFFSET 0x4 100 + #define AM3_GFX_L3_CLKCTRL_INDEX(offset) ((offset) - AM3_GFX_L3_CLKCTRL_OFFSET) 101 + #define AM3_GFX_CLKCTRL AM3_GFX_L3_CLKCTRL_INDEX(0x4) 102 + 103 + /* l4_cefuse clocks */ 104 + #define AM3_L4_CEFUSE_CLKCTRL_OFFSET 0x20 105 + #define AM3_L4_CEFUSE_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_CEFUSE_CLKCTRL_OFFSET) 106 + #define AM3_CEFUSE_CLKCTRL AM3_L4_CEFUSE_CLKCTRL_INDEX(0x20) 107 + 108 + #endif
+113
include/dt-bindings/clock/am4.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_AM4_H 14 + #define __DT_BINDINGS_CLK_AM4_H 15 + 16 + #define AM4_CLKCTRL_OFFSET 0x20 17 + #define AM4_CLKCTRL_INDEX(offset) ((offset) - AM4_CLKCTRL_OFFSET) 18 + 19 + /* l4_wkup clocks */ 20 + #define AM4_ADC_TSC_CLKCTRL AM4_CLKCTRL_INDEX(0x120) 21 + #define AM4_L4_WKUP_CLKCTRL AM4_CLKCTRL_INDEX(0x220) 22 + #define AM4_WKUP_M3_CLKCTRL AM4_CLKCTRL_INDEX(0x228) 23 + #define AM4_COUNTER_32K_CLKCTRL AM4_CLKCTRL_INDEX(0x230) 24 + #define AM4_TIMER1_CLKCTRL AM4_CLKCTRL_INDEX(0x328) 25 + #define AM4_WD_TIMER2_CLKCTRL AM4_CLKCTRL_INDEX(0x338) 26 + #define AM4_I2C1_CLKCTRL AM4_CLKCTRL_INDEX(0x340) 27 + #define AM4_UART1_CLKCTRL AM4_CLKCTRL_INDEX(0x348) 28 + #define AM4_SMARTREFLEX0_CLKCTRL AM4_CLKCTRL_INDEX(0x350) 29 + #define AM4_SMARTREFLEX1_CLKCTRL AM4_CLKCTRL_INDEX(0x358) 30 + #define AM4_CONTROL_CLKCTRL AM4_CLKCTRL_INDEX(0x360) 31 + #define AM4_GPIO1_CLKCTRL AM4_CLKCTRL_INDEX(0x368) 32 + 33 + /* mpu clocks */ 34 + #define AM4_MPU_CLKCTRL AM4_CLKCTRL_INDEX(0x20) 35 + 36 + /* gfx_l3 clocks */ 37 + #define AM4_GFX_CLKCTRL AM4_CLKCTRL_INDEX(0x20) 38 + 39 + /* l4_rtc clocks */ 40 + #define AM4_RTC_CLKCTRL AM4_CLKCTRL_INDEX(0x20) 41 + 42 + /* l4_per clocks */ 43 + #define AM4_L3_MAIN_CLKCTRL AM4_CLKCTRL_INDEX(0x20) 44 + #define AM4_AES_CLKCTRL AM4_CLKCTRL_INDEX(0x28) 45 + #define AM4_DES_CLKCTRL AM4_CLKCTRL_INDEX(0x30) 46 + #define AM4_L3_INSTR_CLKCTRL AM4_CLKCTRL_INDEX(0x40) 47 + #define AM4_OCMCRAM_CLKCTRL AM4_CLKCTRL_INDEX(0x50) 48 + #define AM4_SHAM_CLKCTRL AM4_CLKCTRL_INDEX(0x58) 49 + #define AM4_VPFE0_CLKCTRL AM4_CLKCTRL_INDEX(0x68) 50 + #define AM4_VPFE1_CLKCTRL AM4_CLKCTRL_INDEX(0x70) 51 + #define AM4_TPCC_CLKCTRL AM4_CLKCTRL_INDEX(0x78) 52 + #define AM4_TPTC0_CLKCTRL AM4_CLKCTRL_INDEX(0x80) 53 + #define AM4_TPTC1_CLKCTRL AM4_CLKCTRL_INDEX(0x88) 54 + #define AM4_TPTC2_CLKCTRL AM4_CLKCTRL_INDEX(0x90) 55 + #define AM4_L4_HS_CLKCTRL AM4_CLKCTRL_INDEX(0xa0) 56 + #define AM4_GPMC_CLKCTRL AM4_CLKCTRL_INDEX(0x220) 57 + #define AM4_MCASP0_CLKCTRL AM4_CLKCTRL_INDEX(0x238) 58 + #define AM4_MCASP1_CLKCTRL AM4_CLKCTRL_INDEX(0x240) 59 + #define AM4_MMC3_CLKCTRL AM4_CLKCTRL_INDEX(0x248) 60 + #define AM4_QSPI_CLKCTRL AM4_CLKCTRL_INDEX(0x258) 61 + #define AM4_USB_OTG_SS0_CLKCTRL AM4_CLKCTRL_INDEX(0x260) 62 + #define AM4_USB_OTG_SS1_CLKCTRL AM4_CLKCTRL_INDEX(0x268) 63 + #define AM4_PRUSS_CLKCTRL AM4_CLKCTRL_INDEX(0x320) 64 + #define AM4_L4_LS_CLKCTRL AM4_CLKCTRL_INDEX(0x420) 65 + #define AM4_D_CAN0_CLKCTRL AM4_CLKCTRL_INDEX(0x428) 66 + #define AM4_D_CAN1_CLKCTRL AM4_CLKCTRL_INDEX(0x430) 67 + #define AM4_EPWMSS0_CLKCTRL AM4_CLKCTRL_INDEX(0x438) 68 + #define AM4_EPWMSS1_CLKCTRL AM4_CLKCTRL_INDEX(0x440) 69 + #define AM4_EPWMSS2_CLKCTRL AM4_CLKCTRL_INDEX(0x448) 70 + #define AM4_EPWMSS3_CLKCTRL AM4_CLKCTRL_INDEX(0x450) 71 + #define AM4_EPWMSS4_CLKCTRL AM4_CLKCTRL_INDEX(0x458) 72 + #define AM4_EPWMSS5_CLKCTRL AM4_CLKCTRL_INDEX(0x460) 73 + #define AM4_ELM_CLKCTRL AM4_CLKCTRL_INDEX(0x468) 74 + #define AM4_GPIO2_CLKCTRL AM4_CLKCTRL_INDEX(0x478) 75 + #define AM4_GPIO3_CLKCTRL AM4_CLKCTRL_INDEX(0x480) 76 + #define AM4_GPIO4_CLKCTRL AM4_CLKCTRL_INDEX(0x488) 77 + #define AM4_GPIO5_CLKCTRL AM4_CLKCTRL_INDEX(0x490) 78 + #define AM4_GPIO6_CLKCTRL AM4_CLKCTRL_INDEX(0x498) 79 + #define AM4_HDQ1W_CLKCTRL AM4_CLKCTRL_INDEX(0x4a0) 80 + #define AM4_I2C2_CLKCTRL AM4_CLKCTRL_INDEX(0x4a8) 81 + #define AM4_I2C3_CLKCTRL AM4_CLKCTRL_INDEX(0x4b0) 82 + #define AM4_MAILBOX_CLKCTRL AM4_CLKCTRL_INDEX(0x4b8) 83 + #define AM4_MMC1_CLKCTRL AM4_CLKCTRL_INDEX(0x4c0) 84 + #define AM4_MMC2_CLKCTRL AM4_CLKCTRL_INDEX(0x4c8) 85 + #define AM4_RNG_CLKCTRL AM4_CLKCTRL_INDEX(0x4e0) 86 + #define AM4_SPI0_CLKCTRL AM4_CLKCTRL_INDEX(0x500) 87 + #define AM4_SPI1_CLKCTRL AM4_CLKCTRL_INDEX(0x508) 88 + #define AM4_SPI2_CLKCTRL AM4_CLKCTRL_INDEX(0x510) 89 + #define AM4_SPI3_CLKCTRL AM4_CLKCTRL_INDEX(0x518) 90 + #define AM4_SPI4_CLKCTRL AM4_CLKCTRL_INDEX(0x520) 91 + #define AM4_SPINLOCK_CLKCTRL AM4_CLKCTRL_INDEX(0x528) 92 + #define AM4_TIMER2_CLKCTRL AM4_CLKCTRL_INDEX(0x530) 93 + #define AM4_TIMER3_CLKCTRL AM4_CLKCTRL_INDEX(0x538) 94 + #define AM4_TIMER4_CLKCTRL AM4_CLKCTRL_INDEX(0x540) 95 + #define AM4_TIMER5_CLKCTRL AM4_CLKCTRL_INDEX(0x548) 96 + #define AM4_TIMER6_CLKCTRL AM4_CLKCTRL_INDEX(0x550) 97 + #define AM4_TIMER7_CLKCTRL AM4_CLKCTRL_INDEX(0x558) 98 + #define AM4_TIMER8_CLKCTRL AM4_CLKCTRL_INDEX(0x560) 99 + #define AM4_TIMER9_CLKCTRL AM4_CLKCTRL_INDEX(0x568) 100 + #define AM4_TIMER10_CLKCTRL AM4_CLKCTRL_INDEX(0x570) 101 + #define AM4_TIMER11_CLKCTRL AM4_CLKCTRL_INDEX(0x578) 102 + #define AM4_UART2_CLKCTRL AM4_CLKCTRL_INDEX(0x580) 103 + #define AM4_UART3_CLKCTRL AM4_CLKCTRL_INDEX(0x588) 104 + #define AM4_UART4_CLKCTRL AM4_CLKCTRL_INDEX(0x590) 105 + #define AM4_UART5_CLKCTRL AM4_CLKCTRL_INDEX(0x598) 106 + #define AM4_UART6_CLKCTRL AM4_CLKCTRL_INDEX(0x5a0) 107 + #define AM4_OCP2SCP0_CLKCTRL AM4_CLKCTRL_INDEX(0x5b8) 108 + #define AM4_OCP2SCP1_CLKCTRL AM4_CLKCTRL_INDEX(0x5c0) 109 + #define AM4_EMIF_CLKCTRL AM4_CLKCTRL_INDEX(0x720) 110 + #define AM4_DSS_CORE_CLKCTRL AM4_CLKCTRL_INDEX(0xa20) 111 + #define AM4_CPGMAC0_CLKCTRL AM4_CLKCTRL_INDEX(0xb20) 112 + 113 + #endif
+45
include/dt-bindings/clock/dm814.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_DM814_H 14 + #define __DT_BINDINGS_CLK_DM814_H 15 + 16 + #define DM814_CLKCTRL_OFFSET 0x0 17 + #define DM814_CLKCTRL_INDEX(offset) ((offset) - DM814_CLKCTRL_OFFSET) 18 + 19 + /* default clocks */ 20 + #define DM814_USB_OTG_HS_CLKCTRL DM814_CLKCTRL_INDEX(0x58) 21 + 22 + /* alwon clocks */ 23 + #define DM814_UART1_CLKCTRL DM814_CLKCTRL_INDEX(0x150) 24 + #define DM814_UART2_CLKCTRL DM814_CLKCTRL_INDEX(0x154) 25 + #define DM814_UART3_CLKCTRL DM814_CLKCTRL_INDEX(0x158) 26 + #define DM814_GPIO1_CLKCTRL DM814_CLKCTRL_INDEX(0x15c) 27 + #define DM814_GPIO2_CLKCTRL DM814_CLKCTRL_INDEX(0x160) 28 + #define DM814_I2C1_CLKCTRL DM814_CLKCTRL_INDEX(0x164) 29 + #define DM814_I2C2_CLKCTRL DM814_CLKCTRL_INDEX(0x168) 30 + #define DM814_WD_TIMER_CLKCTRL DM814_CLKCTRL_INDEX(0x18c) 31 + #define DM814_MCSPI1_CLKCTRL DM814_CLKCTRL_INDEX(0x190) 32 + #define DM814_GPMC_CLKCTRL DM814_CLKCTRL_INDEX(0x1d0) 33 + #define DM814_CPGMAC0_CLKCTRL DM814_CLKCTRL_INDEX(0x1d4) 34 + #define DM814_MPU_CLKCTRL DM814_CLKCTRL_INDEX(0x1dc) 35 + #define DM814_RTC_CLKCTRL DM814_CLKCTRL_INDEX(0x1f0) 36 + #define DM814_TPCC_CLKCTRL DM814_CLKCTRL_INDEX(0x1f4) 37 + #define DM814_TPTC0_CLKCTRL DM814_CLKCTRL_INDEX(0x1f8) 38 + #define DM814_TPTC1_CLKCTRL DM814_CLKCTRL_INDEX(0x1fc) 39 + #define DM814_TPTC2_CLKCTRL DM814_CLKCTRL_INDEX(0x200) 40 + #define DM814_TPTC3_CLKCTRL DM814_CLKCTRL_INDEX(0x204) 41 + #define DM814_MMC1_CLKCTRL DM814_CLKCTRL_INDEX(0x21c) 42 + #define DM814_MMC2_CLKCTRL DM814_CLKCTRL_INDEX(0x220) 43 + #define DM814_MMC3_CLKCTRL DM814_CLKCTRL_INDEX(0x224) 44 + 45 + #endif
+53
include/dt-bindings/clock/dm816.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_DM816_H 14 + #define __DT_BINDINGS_CLK_DM816_H 15 + 16 + #define DM816_CLKCTRL_OFFSET 0x0 17 + #define DM816_CLKCTRL_INDEX(offset) ((offset) - DM816_CLKCTRL_OFFSET) 18 + 19 + /* default clocks */ 20 + #define DM816_USB_OTG_HS_CLKCTRL DM816_CLKCTRL_INDEX(0x58) 21 + 22 + /* alwon clocks */ 23 + #define DM816_UART1_CLKCTRL DM816_CLKCTRL_INDEX(0x150) 24 + #define DM816_UART2_CLKCTRL DM816_CLKCTRL_INDEX(0x154) 25 + #define DM816_UART3_CLKCTRL DM816_CLKCTRL_INDEX(0x158) 26 + #define DM816_GPIO1_CLKCTRL DM816_CLKCTRL_INDEX(0x15c) 27 + #define DM816_GPIO2_CLKCTRL DM816_CLKCTRL_INDEX(0x160) 28 + #define DM816_I2C1_CLKCTRL DM816_CLKCTRL_INDEX(0x164) 29 + #define DM816_I2C2_CLKCTRL DM816_CLKCTRL_INDEX(0x168) 30 + #define DM816_TIMER1_CLKCTRL DM816_CLKCTRL_INDEX(0x170) 31 + #define DM816_TIMER2_CLKCTRL DM816_CLKCTRL_INDEX(0x174) 32 + #define DM816_TIMER3_CLKCTRL DM816_CLKCTRL_INDEX(0x178) 33 + #define DM816_TIMER4_CLKCTRL DM816_CLKCTRL_INDEX(0x17c) 34 + #define DM816_TIMER5_CLKCTRL DM816_CLKCTRL_INDEX(0x180) 35 + #define DM816_TIMER6_CLKCTRL DM816_CLKCTRL_INDEX(0x184) 36 + #define DM816_TIMER7_CLKCTRL DM816_CLKCTRL_INDEX(0x188) 37 + #define DM816_WD_TIMER_CLKCTRL DM816_CLKCTRL_INDEX(0x18c) 38 + #define DM816_MCSPI1_CLKCTRL DM816_CLKCTRL_INDEX(0x190) 39 + #define DM816_MAILBOX_CLKCTRL DM816_CLKCTRL_INDEX(0x194) 40 + #define DM816_SPINBOX_CLKCTRL DM816_CLKCTRL_INDEX(0x198) 41 + #define DM816_MMC1_CLKCTRL DM816_CLKCTRL_INDEX(0x1b0) 42 + #define DM816_GPMC_CLKCTRL DM816_CLKCTRL_INDEX(0x1d0) 43 + #define DM816_DAVINCI_MDIO_CLKCTRL DM816_CLKCTRL_INDEX(0x1d4) 44 + #define DM816_EMAC1_CLKCTRL DM816_CLKCTRL_INDEX(0x1d8) 45 + #define DM816_MPU_CLKCTRL DM816_CLKCTRL_INDEX(0x1dc) 46 + #define DM816_RTC_CLKCTRL DM816_CLKCTRL_INDEX(0x1f0) 47 + #define DM816_TPCC_CLKCTRL DM816_CLKCTRL_INDEX(0x1f4) 48 + #define DM816_TPTC0_CLKCTRL DM816_CLKCTRL_INDEX(0x1f8) 49 + #define DM816_TPTC1_CLKCTRL DM816_CLKCTRL_INDEX(0x1fc) 50 + #define DM816_TPTC2_CLKCTRL DM816_CLKCTRL_INDEX(0x200) 51 + #define DM816_TPTC3_CLKCTRL DM816_CLKCTRL_INDEX(0x204) 52 + 53 + #endif
+172
include/dt-bindings/clock/dra7.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_DRA7_H 14 + #define __DT_BINDINGS_CLK_DRA7_H 15 + 16 + #define DRA7_CLKCTRL_OFFSET 0x20 17 + #define DRA7_CLKCTRL_INDEX(offset) ((offset) - DRA7_CLKCTRL_OFFSET) 18 + 19 + /* mpu clocks */ 20 + #define DRA7_MPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 21 + 22 + /* ipu clocks */ 23 + #define DRA7_IPU_CLKCTRL_OFFSET 0x40 24 + #define DRA7_IPU_CLKCTRL_INDEX(offset) ((offset) - DRA7_IPU_CLKCTRL_OFFSET) 25 + #define DRA7_MCASP1_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x50) 26 + #define DRA7_TIMER5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x58) 27 + #define DRA7_TIMER6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x60) 28 + #define DRA7_TIMER7_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x68) 29 + #define DRA7_TIMER8_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x70) 30 + #define DRA7_I2C5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x78) 31 + #define DRA7_UART6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x80) 32 + 33 + /* rtc clocks */ 34 + #define DRA7_RTC_CLKCTRL_OFFSET 0x40 35 + #define DRA7_RTC_CLKCTRL_INDEX(offset) ((offset) - DRA7_RTC_CLKCTRL_OFFSET) 36 + #define DRA7_RTCSS_CLKCTRL DRA7_RTC_CLKCTRL_INDEX(0x44) 37 + 38 + /* coreaon clocks */ 39 + #define DRA7_SMARTREFLEX_MPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x28) 40 + #define DRA7_SMARTREFLEX_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x38) 41 + 42 + /* l3main1 clocks */ 43 + #define DRA7_L3_MAIN_1_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 44 + #define DRA7_GPMC_CLKCTRL DRA7_CLKCTRL_INDEX(0x28) 45 + #define DRA7_TPCC_CLKCTRL DRA7_CLKCTRL_INDEX(0x70) 46 + #define DRA7_TPTC0_CLKCTRL DRA7_CLKCTRL_INDEX(0x78) 47 + #define DRA7_TPTC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x80) 48 + #define DRA7_VCP1_CLKCTRL DRA7_CLKCTRL_INDEX(0x88) 49 + #define DRA7_VCP2_CLKCTRL DRA7_CLKCTRL_INDEX(0x90) 50 + 51 + /* dma clocks */ 52 + #define DRA7_DMA_SYSTEM_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 53 + 54 + /* emif clocks */ 55 + #define DRA7_DMM_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 56 + 57 + /* atl clocks */ 58 + #define DRA7_ATL_CLKCTRL_OFFSET 0x0 59 + #define DRA7_ATL_CLKCTRL_INDEX(offset) ((offset) - DRA7_ATL_CLKCTRL_OFFSET) 60 + #define DRA7_ATL_CLKCTRL DRA7_ATL_CLKCTRL_INDEX(0x0) 61 + 62 + /* l4cfg clocks */ 63 + #define DRA7_L4_CFG_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 64 + #define DRA7_SPINLOCK_CLKCTRL DRA7_CLKCTRL_INDEX(0x28) 65 + #define DRA7_MAILBOX1_CLKCTRL DRA7_CLKCTRL_INDEX(0x30) 66 + #define DRA7_MAILBOX2_CLKCTRL DRA7_CLKCTRL_INDEX(0x48) 67 + #define DRA7_MAILBOX3_CLKCTRL DRA7_CLKCTRL_INDEX(0x50) 68 + #define DRA7_MAILBOX4_CLKCTRL DRA7_CLKCTRL_INDEX(0x58) 69 + #define DRA7_MAILBOX5_CLKCTRL DRA7_CLKCTRL_INDEX(0x60) 70 + #define DRA7_MAILBOX6_CLKCTRL DRA7_CLKCTRL_INDEX(0x68) 71 + #define DRA7_MAILBOX7_CLKCTRL DRA7_CLKCTRL_INDEX(0x70) 72 + #define DRA7_MAILBOX8_CLKCTRL DRA7_CLKCTRL_INDEX(0x78) 73 + #define DRA7_MAILBOX9_CLKCTRL DRA7_CLKCTRL_INDEX(0x80) 74 + #define DRA7_MAILBOX10_CLKCTRL DRA7_CLKCTRL_INDEX(0x88) 75 + #define DRA7_MAILBOX11_CLKCTRL DRA7_CLKCTRL_INDEX(0x90) 76 + #define DRA7_MAILBOX12_CLKCTRL DRA7_CLKCTRL_INDEX(0x98) 77 + #define DRA7_MAILBOX13_CLKCTRL DRA7_CLKCTRL_INDEX(0xa0) 78 + 79 + /* l3instr clocks */ 80 + #define DRA7_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 81 + #define DRA7_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28) 82 + 83 + /* dss clocks */ 84 + #define DRA7_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 85 + #define DRA7_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30) 86 + 87 + /* l3init clocks */ 88 + #define DRA7_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28) 89 + #define DRA7_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30) 90 + #define DRA7_USB_OTG_SS2_CLKCTRL DRA7_CLKCTRL_INDEX(0x40) 91 + #define DRA7_USB_OTG_SS3_CLKCTRL DRA7_CLKCTRL_INDEX(0x48) 92 + #define DRA7_USB_OTG_SS4_CLKCTRL DRA7_CLKCTRL_INDEX(0x50) 93 + #define DRA7_SATA_CLKCTRL DRA7_CLKCTRL_INDEX(0x88) 94 + #define DRA7_PCIE1_CLKCTRL DRA7_CLKCTRL_INDEX(0xb0) 95 + #define DRA7_PCIE2_CLKCTRL DRA7_CLKCTRL_INDEX(0xb8) 96 + #define DRA7_GMAC_CLKCTRL DRA7_CLKCTRL_INDEX(0xd0) 97 + #define DRA7_OCP2SCP1_CLKCTRL DRA7_CLKCTRL_INDEX(0xe0) 98 + #define DRA7_OCP2SCP3_CLKCTRL DRA7_CLKCTRL_INDEX(0xe8) 99 + #define DRA7_USB_OTG_SS1_CLKCTRL DRA7_CLKCTRL_INDEX(0xf0) 100 + 101 + /* l4per clocks */ 102 + #define DRA7_L4PER_CLKCTRL_OFFSET 0x0 103 + #define DRA7_L4PER_CLKCTRL_INDEX(offset) ((offset) - DRA7_L4PER_CLKCTRL_OFFSET) 104 + #define DRA7_L4_PER2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc) 105 + #define DRA7_L4_PER3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x14) 106 + #define DRA7_TIMER10_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x28) 107 + #define DRA7_TIMER11_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x30) 108 + #define DRA7_TIMER2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x38) 109 + #define DRA7_TIMER3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x40) 110 + #define DRA7_TIMER4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x48) 111 + #define DRA7_TIMER9_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x50) 112 + #define DRA7_ELM_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x58) 113 + #define DRA7_GPIO2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x60) 114 + #define DRA7_GPIO3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x68) 115 + #define DRA7_GPIO4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x70) 116 + #define DRA7_GPIO5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x78) 117 + #define DRA7_GPIO6_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x80) 118 + #define DRA7_HDQ1W_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x88) 119 + #define DRA7_EPWMSS1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x90) 120 + #define DRA7_EPWMSS2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x98) 121 + #define DRA7_I2C1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa0) 122 + #define DRA7_I2C2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa8) 123 + #define DRA7_I2C3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb0) 124 + #define DRA7_I2C4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb8) 125 + #define DRA7_L4_PER1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc0) 126 + #define DRA7_EPWMSS0_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc4) 127 + #define DRA7_TIMER13_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc8) 128 + #define DRA7_TIMER14_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xd0) 129 + #define DRA7_TIMER15_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xd8) 130 + #define DRA7_MCSPI1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf0) 131 + #define DRA7_MCSPI2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf8) 132 + #define DRA7_MCSPI3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x100) 133 + #define DRA7_MCSPI4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x108) 134 + #define DRA7_GPIO7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x110) 135 + #define DRA7_GPIO8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x118) 136 + #define DRA7_MMC3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x120) 137 + #define DRA7_MMC4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x128) 138 + #define DRA7_TIMER16_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x130) 139 + #define DRA7_QSPI_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x138) 140 + #define DRA7_UART1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x140) 141 + #define DRA7_UART2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x148) 142 + #define DRA7_UART3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x150) 143 + #define DRA7_UART4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x158) 144 + #define DRA7_MCASP2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x160) 145 + #define DRA7_MCASP3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x168) 146 + #define DRA7_UART5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x170) 147 + #define DRA7_MCASP5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x178) 148 + #define DRA7_MCASP8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x190) 149 + #define DRA7_MCASP4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x198) 150 + #define DRA7_AES1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1a0) 151 + #define DRA7_AES2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1a8) 152 + #define DRA7_DES_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1b0) 153 + #define DRA7_RNG_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1c0) 154 + #define DRA7_SHAM_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1c8) 155 + #define DRA7_UART7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1d0) 156 + #define DRA7_UART8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1e0) 157 + #define DRA7_UART9_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1e8) 158 + #define DRA7_DCAN2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1f0) 159 + #define DRA7_MCASP6_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x204) 160 + #define DRA7_MCASP7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x208) 161 + 162 + /* wkupaon clocks */ 163 + #define DRA7_L4_WKUP_CLKCTRL DRA7_CLKCTRL_INDEX(0x20) 164 + #define DRA7_WD_TIMER2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30) 165 + #define DRA7_GPIO1_CLKCTRL DRA7_CLKCTRL_INDEX(0x38) 166 + #define DRA7_TIMER1_CLKCTRL DRA7_CLKCTRL_INDEX(0x40) 167 + #define DRA7_TIMER12_CLKCTRL DRA7_CLKCTRL_INDEX(0x48) 168 + #define DRA7_COUNTER_32K_CLKCTRL DRA7_CLKCTRL_INDEX(0x50) 169 + #define DRA7_UART10_CLKCTRL DRA7_CLKCTRL_INDEX(0x80) 170 + #define DRA7_DCAN1_CLKCTRL DRA7_CLKCTRL_INDEX(0x88) 171 + 172 + #endif
+118
include/dt-bindings/clock/omap5.h
··· 1 + /* 2 + * Copyright 2017 Texas Instruments, Inc. 3 + * 4 + * This software is licensed under the terms of the GNU General Public 5 + * License version 2, as published by the Free Software Foundation, and 6 + * may be copied, distributed, and modified under those terms. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + #ifndef __DT_BINDINGS_CLK_OMAP5_H 14 + #define __DT_BINDINGS_CLK_OMAP5_H 15 + 16 + #define OMAP5_CLKCTRL_OFFSET 0x20 17 + #define OMAP5_CLKCTRL_INDEX(offset) ((offset) - OMAP5_CLKCTRL_OFFSET) 18 + 19 + /* mpu clocks */ 20 + #define OMAP5_MPU_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 21 + 22 + /* dsp clocks */ 23 + #define OMAP5_MMU_DSP_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 24 + 25 + /* abe clocks */ 26 + #define OMAP5_L4_ABE_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 27 + #define OMAP5_MCPDM_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 28 + #define OMAP5_DMIC_CLKCTRL OMAP5_CLKCTRL_INDEX(0x38) 29 + #define OMAP5_MCBSP1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x48) 30 + #define OMAP5_MCBSP2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x50) 31 + #define OMAP5_MCBSP3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x58) 32 + #define OMAP5_TIMER5_CLKCTRL OMAP5_CLKCTRL_INDEX(0x68) 33 + #define OMAP5_TIMER6_CLKCTRL OMAP5_CLKCTRL_INDEX(0x70) 34 + #define OMAP5_TIMER7_CLKCTRL OMAP5_CLKCTRL_INDEX(0x78) 35 + #define OMAP5_TIMER8_CLKCTRL OMAP5_CLKCTRL_INDEX(0x80) 36 + 37 + /* l3main1 clocks */ 38 + #define OMAP5_L3_MAIN_1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 39 + 40 + /* l3main2 clocks */ 41 + #define OMAP5_L3_MAIN_2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 42 + 43 + /* ipu clocks */ 44 + #define OMAP5_MMU_IPU_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 45 + 46 + /* dma clocks */ 47 + #define OMAP5_DMA_SYSTEM_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 48 + 49 + /* emif clocks */ 50 + #define OMAP5_DMM_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 51 + #define OMAP5_EMIF1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 52 + #define OMAP5_EMIF2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x38) 53 + 54 + /* l4cfg clocks */ 55 + #define OMAP5_L4_CFG_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 56 + #define OMAP5_SPINLOCK_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28) 57 + #define OMAP5_MAILBOX_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 58 + 59 + /* l3instr clocks */ 60 + #define OMAP5_L3_MAIN_3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 61 + #define OMAP5_L3_INSTR_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28) 62 + 63 + /* l4per clocks */ 64 + #define OMAP5_TIMER10_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28) 65 + #define OMAP5_TIMER11_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 66 + #define OMAP5_TIMER2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x38) 67 + #define OMAP5_TIMER3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x40) 68 + #define OMAP5_TIMER4_CLKCTRL OMAP5_CLKCTRL_INDEX(0x48) 69 + #define OMAP5_TIMER9_CLKCTRL OMAP5_CLKCTRL_INDEX(0x50) 70 + #define OMAP5_GPIO2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x60) 71 + #define OMAP5_GPIO3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x68) 72 + #define OMAP5_GPIO4_CLKCTRL OMAP5_CLKCTRL_INDEX(0x70) 73 + #define OMAP5_GPIO5_CLKCTRL OMAP5_CLKCTRL_INDEX(0x78) 74 + #define OMAP5_GPIO6_CLKCTRL OMAP5_CLKCTRL_INDEX(0x80) 75 + #define OMAP5_I2C1_CLKCTRL OMAP5_CLKCTRL_INDEX(0xa0) 76 + #define OMAP5_I2C2_CLKCTRL OMAP5_CLKCTRL_INDEX(0xa8) 77 + #define OMAP5_I2C3_CLKCTRL OMAP5_CLKCTRL_INDEX(0xb0) 78 + #define OMAP5_I2C4_CLKCTRL OMAP5_CLKCTRL_INDEX(0xb8) 79 + #define OMAP5_L4_PER_CLKCTRL OMAP5_CLKCTRL_INDEX(0xc0) 80 + #define OMAP5_MCSPI1_CLKCTRL OMAP5_CLKCTRL_INDEX(0xf0) 81 + #define OMAP5_MCSPI2_CLKCTRL OMAP5_CLKCTRL_INDEX(0xf8) 82 + #define OMAP5_MCSPI3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x100) 83 + #define OMAP5_MCSPI4_CLKCTRL OMAP5_CLKCTRL_INDEX(0x108) 84 + #define OMAP5_GPIO7_CLKCTRL OMAP5_CLKCTRL_INDEX(0x110) 85 + #define OMAP5_GPIO8_CLKCTRL OMAP5_CLKCTRL_INDEX(0x118) 86 + #define OMAP5_MMC3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x120) 87 + #define OMAP5_MMC4_CLKCTRL OMAP5_CLKCTRL_INDEX(0x128) 88 + #define OMAP5_UART1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x140) 89 + #define OMAP5_UART2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x148) 90 + #define OMAP5_UART3_CLKCTRL OMAP5_CLKCTRL_INDEX(0x150) 91 + #define OMAP5_UART4_CLKCTRL OMAP5_CLKCTRL_INDEX(0x158) 92 + #define OMAP5_MMC5_CLKCTRL OMAP5_CLKCTRL_INDEX(0x160) 93 + #define OMAP5_I2C5_CLKCTRL OMAP5_CLKCTRL_INDEX(0x168) 94 + #define OMAP5_UART5_CLKCTRL OMAP5_CLKCTRL_INDEX(0x170) 95 + #define OMAP5_UART6_CLKCTRL OMAP5_CLKCTRL_INDEX(0x178) 96 + 97 + /* dss clocks */ 98 + #define OMAP5_DSS_CORE_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 99 + 100 + /* l3init clocks */ 101 + #define OMAP5_MMC1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28) 102 + #define OMAP5_MMC2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 103 + #define OMAP5_USB_HOST_HS_CLKCTRL OMAP5_CLKCTRL_INDEX(0x58) 104 + #define OMAP5_USB_TLL_HS_CLKCTRL OMAP5_CLKCTRL_INDEX(0x68) 105 + #define OMAP5_SATA_CLKCTRL OMAP5_CLKCTRL_INDEX(0x88) 106 + #define OMAP5_OCP2SCP1_CLKCTRL OMAP5_CLKCTRL_INDEX(0xe0) 107 + #define OMAP5_OCP2SCP3_CLKCTRL OMAP5_CLKCTRL_INDEX(0xe8) 108 + #define OMAP5_USB_OTG_SS_CLKCTRL OMAP5_CLKCTRL_INDEX(0xf0) 109 + 110 + /* wkupaon clocks */ 111 + #define OMAP5_L4_WKUP_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 112 + #define OMAP5_WD_TIMER2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 113 + #define OMAP5_GPIO1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x38) 114 + #define OMAP5_TIMER1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x40) 115 + #define OMAP5_COUNTER_32K_CLKCTRL OMAP5_CLKCTRL_INDEX(0x50) 116 + #define OMAP5_KBD_CLKCTRL OMAP5_CLKCTRL_INDEX(0x78) 117 + 118 + #endif