| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * OMAP5 Clock init |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2013 Texas Instruments, Inc. |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Tero Kristo (t-kristo@ti.com) |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 10 | | - * published by the Free Software Foundation. |
|---|
| 11 | 8 | */ |
|---|
| 12 | 9 | |
|---|
| 13 | 10 | #include <linux/kernel.h> |
|---|
| .. | .. |
|---|
| 34 | 31 | }; |
|---|
| 35 | 32 | |
|---|
| 36 | 33 | static const struct omap_clkctrl_reg_data omap5_dsp_clkctrl_regs[] __initconst = { |
|---|
| 37 | | - { OMAP5_MMU_DSP_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_h11x2_ck" }, |
|---|
| 34 | + { OMAP5_MMU_DSP_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_NO_IDLEST, "dpll_iva_h11x2_ck" }, |
|---|
| 35 | + { 0 }, |
|---|
| 36 | +}; |
|---|
| 37 | + |
|---|
| 38 | +static const char * const omap5_aess_fclk_parents[] __initconst = { |
|---|
| 39 | + "abe_clk", |
|---|
| 40 | + NULL, |
|---|
| 41 | +}; |
|---|
| 42 | + |
|---|
| 43 | +static const struct omap_clkctrl_div_data omap5_aess_fclk_data __initconst = { |
|---|
| 44 | + .max_div = 2, |
|---|
| 45 | +}; |
|---|
| 46 | + |
|---|
| 47 | +static const struct omap_clkctrl_bit_data omap5_aess_bit_data[] __initconst = { |
|---|
| 48 | + { 24, TI_CLK_DIVIDER, omap5_aess_fclk_parents, &omap5_aess_fclk_data }, |
|---|
| 38 | 49 | { 0 }, |
|---|
| 39 | 50 | }; |
|---|
| 40 | 51 | |
|---|
| .. | .. |
|---|
| 125 | 136 | |
|---|
| 126 | 137 | static const struct omap_clkctrl_reg_data omap5_abe_clkctrl_regs[] __initconst = { |
|---|
| 127 | 138 | { OMAP5_L4_ABE_CLKCTRL, NULL, 0, "abe_iclk" }, |
|---|
| 139 | + { OMAP5_AESS_CLKCTRL, omap5_aess_bit_data, CLKF_SW_SUP, "abe_cm:clk:0008:24" }, |
|---|
| 128 | 140 | { OMAP5_MCPDM_CLKCTRL, NULL, CLKF_SW_SUP, "pad_clks_ck" }, |
|---|
| 129 | 141 | { OMAP5_DMIC_CLKCTRL, omap5_dmic_bit_data, CLKF_SW_SUP, "abe_cm:clk:0018:24" }, |
|---|
| 130 | 142 | { OMAP5_MCBSP1_CLKCTRL, omap5_mcbsp1_bit_data, CLKF_SW_SUP, "abe_cm:clk:0028:24" }, |
|---|
| .. | .. |
|---|
| 148 | 160 | }; |
|---|
| 149 | 161 | |
|---|
| 150 | 162 | static const struct omap_clkctrl_reg_data omap5_ipu_clkctrl_regs[] __initconst = { |
|---|
| 151 | | - { OMAP5_MMU_IPU_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_core_h22x2_ck" }, |
|---|
| 163 | + { OMAP5_MMU_IPU_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_NO_IDLEST, "dpll_core_h22x2_ck" }, |
|---|
| 152 | 164 | { 0 }, |
|---|
| 153 | 165 | }; |
|---|
| 154 | 166 | |
|---|
| .. | .. |
|---|
| 289 | 301 | { 0 }, |
|---|
| 290 | 302 | }; |
|---|
| 291 | 303 | |
|---|
| 304 | +static const struct |
|---|
| 305 | +omap_clkctrl_reg_data omap5_l4_secure_clkctrl_regs[] __initconst = { |
|---|
| 306 | + { OMAP5_AES1_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, |
|---|
| 307 | + { OMAP5_AES2_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, |
|---|
| 308 | + { OMAP5_DES3DES_CLKCTRL, NULL, CLKF_HW_SUP, "l4_root_clk_div" }, |
|---|
| 309 | + { OMAP5_FPKA_CLKCTRL, NULL, CLKF_SW_SUP, "l4_root_clk_div" }, |
|---|
| 310 | + { OMAP5_RNG_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_SOC_NONSEC, "l4_root_clk_div" }, |
|---|
| 311 | + { OMAP5_SHA2MD5_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, |
|---|
| 312 | + { OMAP5_DMA_CRYPTO_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_SOC_NONSEC, "l3_iclk_div" }, |
|---|
| 313 | + { 0 }, |
|---|
| 314 | +}; |
|---|
| 315 | + |
|---|
| 316 | +static const struct omap_clkctrl_reg_data omap5_iva_clkctrl_regs[] __initconst = { |
|---|
| 317 | + { OMAP5_IVA_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_h12x2_ck" }, |
|---|
| 318 | + { OMAP5_SL2IF_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_h12x2_ck" }, |
|---|
| 319 | + { 0 }, |
|---|
| 320 | +}; |
|---|
| 321 | + |
|---|
| 292 | 322 | static const char * const omap5_dss_dss_clk_parents[] __initconst = { |
|---|
| 293 | 323 | "dpll_per_h12x2_ck", |
|---|
| 294 | 324 | NULL, |
|---|
| .. | .. |
|---|
| 314 | 344 | |
|---|
| 315 | 345 | static const struct omap_clkctrl_reg_data omap5_dss_clkctrl_regs[] __initconst = { |
|---|
| 316 | 346 | { OMAP5_DSS_CORE_CLKCTRL, omap5_dss_core_bit_data, CLKF_SW_SUP, "dss_cm:clk:0000:8" }, |
|---|
| 347 | + { 0 }, |
|---|
| 348 | +}; |
|---|
| 349 | + |
|---|
| 350 | +static const char * const omap5_gpu_core_mux_parents[] __initconst = { |
|---|
| 351 | + "dpll_core_h14x2_ck", |
|---|
| 352 | + "dpll_per_h14x2_ck", |
|---|
| 353 | + NULL, |
|---|
| 354 | +}; |
|---|
| 355 | + |
|---|
| 356 | +static const char * const omap5_gpu_hyd_mux_parents[] __initconst = { |
|---|
| 357 | + "dpll_core_h14x2_ck", |
|---|
| 358 | + "dpll_per_h14x2_ck", |
|---|
| 359 | + NULL, |
|---|
| 360 | +}; |
|---|
| 361 | + |
|---|
| 362 | +static const char * const omap5_gpu_sys_clk_parents[] __initconst = { |
|---|
| 363 | + "sys_clkin", |
|---|
| 364 | + NULL, |
|---|
| 365 | +}; |
|---|
| 366 | + |
|---|
| 367 | +static const struct omap_clkctrl_div_data omap5_gpu_sys_clk_data __initconst = { |
|---|
| 368 | + .max_div = 2, |
|---|
| 369 | +}; |
|---|
| 370 | + |
|---|
| 371 | +static const struct omap_clkctrl_bit_data omap5_gpu_core_bit_data[] __initconst = { |
|---|
| 372 | + { 24, TI_CLK_MUX, omap5_gpu_core_mux_parents, NULL }, |
|---|
| 373 | + { 25, TI_CLK_MUX, omap5_gpu_hyd_mux_parents, NULL }, |
|---|
| 374 | + { 26, TI_CLK_DIVIDER, omap5_gpu_sys_clk_parents, &omap5_gpu_sys_clk_data }, |
|---|
| 375 | + { 0 }, |
|---|
| 376 | +}; |
|---|
| 377 | + |
|---|
| 378 | +static const struct omap_clkctrl_reg_data omap5_gpu_clkctrl_regs[] __initconst = { |
|---|
| 379 | + { OMAP5_GPU_CLKCTRL, omap5_gpu_core_bit_data, CLKF_SW_SUP, "gpu_cm:clk:0000:24" }, |
|---|
| 317 | 380 | { 0 }, |
|---|
| 318 | 381 | }; |
|---|
| 319 | 382 | |
|---|
| .. | .. |
|---|
| 472 | 535 | { 0x4a008d20, omap5_l4cfg_clkctrl_regs }, |
|---|
| 473 | 536 | { 0x4a008e20, omap5_l3instr_clkctrl_regs }, |
|---|
| 474 | 537 | { 0x4a009020, omap5_l4per_clkctrl_regs }, |
|---|
| 538 | + { 0x4a0091a0, omap5_l4_secure_clkctrl_regs }, |
|---|
| 539 | + { 0x4a009220, omap5_iva_clkctrl_regs }, |
|---|
| 475 | 540 | { 0x4a009420, omap5_dss_clkctrl_regs }, |
|---|
| 541 | + { 0x4a009520, omap5_gpu_clkctrl_regs }, |
|---|
| 476 | 542 | { 0x4a009620, omap5_l3init_clkctrl_regs }, |
|---|
| 477 | 543 | { 0x4ae07920, omap5_wkupaon_clkctrl_regs }, |
|---|
| 478 | 544 | { 0 }, |
|---|