18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * OMAP4 Clock domains framework 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2009-2011 Texas Instruments, Inc. 68c2ecf20Sopenharmony_ci * Copyright (C) 2009-2011 Nokia Corporation 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * Abhijit Pagare (abhijitpagare@ti.com) 98c2ecf20Sopenharmony_ci * Benoit Cousson (b-cousson@ti.com) 108c2ecf20Sopenharmony_ci * Paul Walmsley (paul@pwsan.com) 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci * This file is automatically generated from the OMAP hardware databases. 138c2ecf20Sopenharmony_ci * We respectfully ask that any modifications to this file be coordinated 148c2ecf20Sopenharmony_ci * with the public linux-omap@vger.kernel.org mailing list and the 158c2ecf20Sopenharmony_ci * authors above to ensure that the autogeneration scripts are kept 168c2ecf20Sopenharmony_ci * up-to-date with the file contents. 178c2ecf20Sopenharmony_ci */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#include <linux/kernel.h> 208c2ecf20Sopenharmony_ci#include <linux/io.h> 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#include "clockdomain.h" 238c2ecf20Sopenharmony_ci#include "cm1_44xx.h" 248c2ecf20Sopenharmony_ci#include "cm2_44xx.h" 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci#include "cm-regbits-44xx.h" 278c2ecf20Sopenharmony_ci#include "prm44xx.h" 288c2ecf20Sopenharmony_ci#include "prcm44xx.h" 298c2ecf20Sopenharmony_ci#include "prcm_mpu44xx.h" 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci/* Static Dependencies for OMAP4 Clock Domains */ 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_cistatic struct clkdm_dep d2d_wkup_sleep_deps[] = { 348c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 358c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 368c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 378c2ecf20Sopenharmony_ci { .clkdm_name = "l3_2_clkdm" }, 388c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 398c2ecf20Sopenharmony_ci { .clkdm_name = "l3_init_clkdm" }, 408c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 418c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 428c2ecf20Sopenharmony_ci { NULL }, 438c2ecf20Sopenharmony_ci}; 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cistatic struct clkdm_dep ducati_wkup_sleep_deps[] = { 468c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 478c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 488c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 498c2ecf20Sopenharmony_ci { .clkdm_name = "l3_2_clkdm" }, 508c2ecf20Sopenharmony_ci { .clkdm_name = "l3_dss_clkdm" }, 518c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 528c2ecf20Sopenharmony_ci { .clkdm_name = "l3_gfx_clkdm" }, 538c2ecf20Sopenharmony_ci { .clkdm_name = "l3_init_clkdm" }, 548c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 558c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 568c2ecf20Sopenharmony_ci { .clkdm_name = "l4_secure_clkdm" }, 578c2ecf20Sopenharmony_ci { .clkdm_name = "l4_wkup_clkdm" }, 588c2ecf20Sopenharmony_ci { .clkdm_name = "tesla_clkdm" }, 598c2ecf20Sopenharmony_ci { NULL }, 608c2ecf20Sopenharmony_ci}; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_cistatic struct clkdm_dep iss_wkup_sleep_deps[] = { 638c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 648c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 658c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 668c2ecf20Sopenharmony_ci { NULL }, 678c2ecf20Sopenharmony_ci}; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_cistatic struct clkdm_dep ivahd_wkup_sleep_deps[] = { 708c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 718c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 728c2ecf20Sopenharmony_ci { NULL }, 738c2ecf20Sopenharmony_ci}; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_cistatic struct clkdm_dep l3_dma_wkup_sleep_deps[] = { 768c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 778c2ecf20Sopenharmony_ci { .clkdm_name = "ducati_clkdm" }, 788c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 798c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 808c2ecf20Sopenharmony_ci { .clkdm_name = "l3_dss_clkdm" }, 818c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 828c2ecf20Sopenharmony_ci { .clkdm_name = "l3_init_clkdm" }, 838c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 848c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 858c2ecf20Sopenharmony_ci { .clkdm_name = "l4_secure_clkdm" }, 868c2ecf20Sopenharmony_ci { .clkdm_name = "l4_wkup_clkdm" }, 878c2ecf20Sopenharmony_ci { NULL }, 888c2ecf20Sopenharmony_ci}; 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_cistatic struct clkdm_dep l3_dss_wkup_sleep_deps[] = { 918c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 928c2ecf20Sopenharmony_ci { .clkdm_name = "l3_2_clkdm" }, 938c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 948c2ecf20Sopenharmony_ci { NULL }, 958c2ecf20Sopenharmony_ci}; 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_cistatic struct clkdm_dep l3_gfx_wkup_sleep_deps[] = { 988c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 998c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 1008c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 1018c2ecf20Sopenharmony_ci { NULL }, 1028c2ecf20Sopenharmony_ci}; 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_cistatic struct clkdm_dep l3_init_wkup_sleep_deps[] = { 1058c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 1068c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 1078c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 1088c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 1098c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 1108c2ecf20Sopenharmony_ci { .clkdm_name = "l4_secure_clkdm" }, 1118c2ecf20Sopenharmony_ci { .clkdm_name = "l4_wkup_clkdm" }, 1128c2ecf20Sopenharmony_ci { NULL }, 1138c2ecf20Sopenharmony_ci}; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_cistatic struct clkdm_dep l4_secure_wkup_sleep_deps[] = { 1168c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 1178c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 1188c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 1198c2ecf20Sopenharmony_ci { NULL }, 1208c2ecf20Sopenharmony_ci}; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_cistatic struct clkdm_dep mpu_wkup_sleep_deps[] = { 1238c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 1248c2ecf20Sopenharmony_ci { .clkdm_name = "ducati_clkdm" }, 1258c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 1268c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 1278c2ecf20Sopenharmony_ci { .clkdm_name = "l3_2_clkdm" }, 1288c2ecf20Sopenharmony_ci { .clkdm_name = "l3_dss_clkdm" }, 1298c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 1308c2ecf20Sopenharmony_ci { .clkdm_name = "l3_gfx_clkdm" }, 1318c2ecf20Sopenharmony_ci { .clkdm_name = "l3_init_clkdm" }, 1328c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 1338c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 1348c2ecf20Sopenharmony_ci { .clkdm_name = "l4_secure_clkdm" }, 1358c2ecf20Sopenharmony_ci { .clkdm_name = "l4_wkup_clkdm" }, 1368c2ecf20Sopenharmony_ci { .clkdm_name = "tesla_clkdm" }, 1378c2ecf20Sopenharmony_ci { NULL }, 1388c2ecf20Sopenharmony_ci}; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_cistatic struct clkdm_dep tesla_wkup_sleep_deps[] = { 1418c2ecf20Sopenharmony_ci { .clkdm_name = "abe_clkdm" }, 1428c2ecf20Sopenharmony_ci { .clkdm_name = "ivahd_clkdm" }, 1438c2ecf20Sopenharmony_ci { .clkdm_name = "l3_1_clkdm" }, 1448c2ecf20Sopenharmony_ci { .clkdm_name = "l3_2_clkdm" }, 1458c2ecf20Sopenharmony_ci { .clkdm_name = "l3_emif_clkdm" }, 1468c2ecf20Sopenharmony_ci { .clkdm_name = "l3_init_clkdm" }, 1478c2ecf20Sopenharmony_ci { .clkdm_name = "l4_cfg_clkdm" }, 1488c2ecf20Sopenharmony_ci { .clkdm_name = "l4_per_clkdm" }, 1498c2ecf20Sopenharmony_ci { .clkdm_name = "l4_wkup_clkdm" }, 1508c2ecf20Sopenharmony_ci { NULL }, 1518c2ecf20Sopenharmony_ci}; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_cistatic struct clockdomain l4_cefuse_44xx_clkdm = { 1548c2ecf20Sopenharmony_ci .name = "l4_cefuse_clkdm", 1558c2ecf20Sopenharmony_ci .pwrdm = { .name = "cefuse_pwrdm" }, 1568c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 1578c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CEFUSE_INST, 1588c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS, 1598c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 1608c2ecf20Sopenharmony_ci}; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_cistatic struct clockdomain l4_cfg_44xx_clkdm = { 1638c2ecf20Sopenharmony_ci .name = "l4_cfg_clkdm", 1648c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 1658c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 1668c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 1678c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_L4CFG_CDOFFS, 1688c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L4CFG_STATDEP_SHIFT, 1698c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP, 1708c2ecf20Sopenharmony_ci}; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_cistatic struct clockdomain tesla_44xx_clkdm = { 1738c2ecf20Sopenharmony_ci .name = "tesla_clkdm", 1748c2ecf20Sopenharmony_ci .pwrdm = { .name = "tesla_pwrdm" }, 1758c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM1_PARTITION, 1768c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM1_TESLA_INST, 1778c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM1_TESLA_TESLA_CDOFFS, 1788c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_TESLA_STATDEP_SHIFT, 1798c2ecf20Sopenharmony_ci .wkdep_srcs = tesla_wkup_sleep_deps, 1808c2ecf20Sopenharmony_ci .sleepdep_srcs = tesla_wkup_sleep_deps, 1818c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 1828c2ecf20Sopenharmony_ci}; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_cistatic struct clockdomain l3_gfx_44xx_clkdm = { 1858c2ecf20Sopenharmony_ci .name = "l3_gfx_clkdm", 1868c2ecf20Sopenharmony_ci .pwrdm = { .name = "gfx_pwrdm" }, 1878c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 1888c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_GFX_INST, 1898c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_GFX_GFX_CDOFFS, 1908c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_GFX_STATDEP_SHIFT, 1918c2ecf20Sopenharmony_ci .wkdep_srcs = l3_gfx_wkup_sleep_deps, 1928c2ecf20Sopenharmony_ci .sleepdep_srcs = l3_gfx_wkup_sleep_deps, 1938c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 1948c2ecf20Sopenharmony_ci}; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_cistatic struct clockdomain ivahd_44xx_clkdm = { 1978c2ecf20Sopenharmony_ci .name = "ivahd_clkdm", 1988c2ecf20Sopenharmony_ci .pwrdm = { .name = "ivahd_pwrdm" }, 1998c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2008c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_IVAHD_INST, 2018c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_IVAHD_IVAHD_CDOFFS, 2028c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_IVAHD_STATDEP_SHIFT, 2038c2ecf20Sopenharmony_ci .wkdep_srcs = ivahd_wkup_sleep_deps, 2048c2ecf20Sopenharmony_ci .sleepdep_srcs = ivahd_wkup_sleep_deps, 2058c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 2068c2ecf20Sopenharmony_ci}; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_cistatic struct clockdomain l4_secure_44xx_clkdm = { 2098c2ecf20Sopenharmony_ci .name = "l4_secure_clkdm", 2108c2ecf20Sopenharmony_ci .pwrdm = { .name = "l4per_pwrdm" }, 2118c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2128c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_L4PER_INST, 2138c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_L4PER_L4SEC_CDOFFS, 2148c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L4SEC_STATDEP_SHIFT, 2158c2ecf20Sopenharmony_ci .wkdep_srcs = l4_secure_wkup_sleep_deps, 2168c2ecf20Sopenharmony_ci .sleepdep_srcs = l4_secure_wkup_sleep_deps, 2178c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_SWSUP, 2188c2ecf20Sopenharmony_ci}; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_cistatic struct clockdomain l4_per_44xx_clkdm = { 2218c2ecf20Sopenharmony_ci .name = "l4_per_clkdm", 2228c2ecf20Sopenharmony_ci .pwrdm = { .name = "l4per_pwrdm" }, 2238c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2248c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_L4PER_INST, 2258c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_L4PER_L4PER_CDOFFS, 2268c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L4PER_STATDEP_SHIFT, 2278c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 2288c2ecf20Sopenharmony_ci}; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cistatic struct clockdomain abe_44xx_clkdm = { 2318c2ecf20Sopenharmony_ci .name = "abe_clkdm", 2328c2ecf20Sopenharmony_ci .pwrdm = { .name = "abe_pwrdm" }, 2338c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM1_PARTITION, 2348c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM1_ABE_INST, 2358c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM1_ABE_ABE_CDOFFS, 2368c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_ABE_STATDEP_SHIFT, 2378c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 2388c2ecf20Sopenharmony_ci}; 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_cistatic struct clockdomain l3_instr_44xx_clkdm = { 2418c2ecf20Sopenharmony_ci .name = "l3_instr_clkdm", 2428c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 2438c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2448c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 2458c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_L3INSTR_CDOFFS, 2468c2ecf20Sopenharmony_ci}; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_cistatic struct clockdomain l3_init_44xx_clkdm = { 2498c2ecf20Sopenharmony_ci .name = "l3_init_clkdm", 2508c2ecf20Sopenharmony_ci .pwrdm = { .name = "l3init_pwrdm" }, 2518c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2528c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_L3INIT_INST, 2538c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_L3INIT_L3INIT_CDOFFS, 2548c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L3INIT_STATDEP_SHIFT, 2558c2ecf20Sopenharmony_ci .wkdep_srcs = l3_init_wkup_sleep_deps, 2568c2ecf20Sopenharmony_ci .sleepdep_srcs = l3_init_wkup_sleep_deps, 2578c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 2588c2ecf20Sopenharmony_ci}; 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_cistatic struct clockdomain d2d_44xx_clkdm = { 2618c2ecf20Sopenharmony_ci .name = "d2d_clkdm", 2628c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 2638c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2648c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 2658c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_D2D_CDOFFS, 2668c2ecf20Sopenharmony_ci .wkdep_srcs = d2d_wkup_sleep_deps, 2678c2ecf20Sopenharmony_ci .sleepdep_srcs = d2d_wkup_sleep_deps, 2688c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 2698c2ecf20Sopenharmony_ci}; 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_cistatic struct clockdomain mpu0_44xx_clkdm = { 2728c2ecf20Sopenharmony_ci .name = "mpu0_clkdm", 2738c2ecf20Sopenharmony_ci .pwrdm = { .name = "cpu0_pwrdm" }, 2748c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 2758c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_PRCM_MPU_CPU0_INST, 2768c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_PRCM_MPU_CPU0_CPU0_CDOFFS, 2778c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 2788c2ecf20Sopenharmony_ci}; 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_cistatic struct clockdomain mpu1_44xx_clkdm = { 2818c2ecf20Sopenharmony_ci .name = "mpu1_clkdm", 2828c2ecf20Sopenharmony_ci .pwrdm = { .name = "cpu1_pwrdm" }, 2838c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 2848c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_PRCM_MPU_CPU1_INST, 2858c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_PRCM_MPU_CPU1_CPU1_CDOFFS, 2868c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 2878c2ecf20Sopenharmony_ci}; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_cistatic struct clockdomain l3_emif_44xx_clkdm = { 2908c2ecf20Sopenharmony_ci .name = "l3_emif_clkdm", 2918c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 2928c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 2938c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 2948c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_MEMIF_CDOFFS, 2958c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_MEMIF_STATDEP_SHIFT, 2968c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 2978c2ecf20Sopenharmony_ci}; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_cistatic struct clockdomain l4_ao_44xx_clkdm = { 3008c2ecf20Sopenharmony_ci .name = "l4_ao_clkdm", 3018c2ecf20Sopenharmony_ci .pwrdm = { .name = "always_on_core_pwrdm" }, 3028c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3038c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_ALWAYS_ON_INST, 3048c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS, 3058c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 3068c2ecf20Sopenharmony_ci}; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_cistatic struct clockdomain ducati_44xx_clkdm = { 3098c2ecf20Sopenharmony_ci .name = "ducati_clkdm", 3108c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 3118c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3128c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 3138c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_DUCATI_CDOFFS, 3148c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_DUCATI_STATDEP_SHIFT, 3158c2ecf20Sopenharmony_ci .wkdep_srcs = ducati_wkup_sleep_deps, 3168c2ecf20Sopenharmony_ci .sleepdep_srcs = ducati_wkup_sleep_deps, 3178c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 3188c2ecf20Sopenharmony_ci}; 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_cistatic struct clockdomain mpu_44xx_clkdm = { 3218c2ecf20Sopenharmony_ci .name = "mpuss_clkdm", 3228c2ecf20Sopenharmony_ci .pwrdm = { .name = "mpu_pwrdm" }, 3238c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM1_PARTITION, 3248c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM1_MPU_INST, 3258c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM1_MPU_MPU_CDOFFS, 3268c2ecf20Sopenharmony_ci .wkdep_srcs = mpu_wkup_sleep_deps, 3278c2ecf20Sopenharmony_ci .sleepdep_srcs = mpu_wkup_sleep_deps, 3288c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 3298c2ecf20Sopenharmony_ci}; 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_cistatic struct clockdomain l3_2_44xx_clkdm = { 3328c2ecf20Sopenharmony_ci .name = "l3_2_clkdm", 3338c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 3348c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3358c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 3368c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_L3_2_CDOFFS, 3378c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L3_2_STATDEP_SHIFT, 3388c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP, 3398c2ecf20Sopenharmony_ci}; 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_cistatic struct clockdomain l3_1_44xx_clkdm = { 3428c2ecf20Sopenharmony_ci .name = "l3_1_clkdm", 3438c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 3448c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3458c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 3468c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_L3_1_CDOFFS, 3478c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L3_1_STATDEP_SHIFT, 3488c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP, 3498c2ecf20Sopenharmony_ci}; 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_cistatic struct clockdomain iss_44xx_clkdm = { 3528c2ecf20Sopenharmony_ci .name = "iss_clkdm", 3538c2ecf20Sopenharmony_ci .pwrdm = { .name = "cam_pwrdm" }, 3548c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3558c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CAM_INST, 3568c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CAM_CAM_CDOFFS, 3578c2ecf20Sopenharmony_ci .wkdep_srcs = iss_wkup_sleep_deps, 3588c2ecf20Sopenharmony_ci .sleepdep_srcs = iss_wkup_sleep_deps, 3598c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_SWSUP, 3608c2ecf20Sopenharmony_ci}; 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_cistatic struct clockdomain l3_dss_44xx_clkdm = { 3638c2ecf20Sopenharmony_ci .name = "l3_dss_clkdm", 3648c2ecf20Sopenharmony_ci .pwrdm = { .name = "dss_pwrdm" }, 3658c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3668c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_DSS_INST, 3678c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_DSS_DSS_CDOFFS, 3688c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_DSS_STATDEP_SHIFT, 3698c2ecf20Sopenharmony_ci .wkdep_srcs = l3_dss_wkup_sleep_deps, 3708c2ecf20Sopenharmony_ci .sleepdep_srcs = l3_dss_wkup_sleep_deps, 3718c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP_SWSUP, 3728c2ecf20Sopenharmony_ci}; 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_cistatic struct clockdomain l4_wkup_44xx_clkdm = { 3758c2ecf20Sopenharmony_ci .name = "l4_wkup_clkdm", 3768c2ecf20Sopenharmony_ci .pwrdm = { .name = "wkup_pwrdm" }, 3778c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_PRM_PARTITION, 3788c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_PRM_WKUP_CM_INST, 3798c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS, 3808c2ecf20Sopenharmony_ci .dep_bit = OMAP4430_L4WKUP_STATDEP_SHIFT, 3818c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_HWSUP | CLKDM_ACTIVE_WITH_MPU, 3828c2ecf20Sopenharmony_ci}; 3838c2ecf20Sopenharmony_ci 3848c2ecf20Sopenharmony_cistatic struct clockdomain emu_sys_44xx_clkdm = { 3858c2ecf20Sopenharmony_ci .name = "emu_sys_clkdm", 3868c2ecf20Sopenharmony_ci .pwrdm = { .name = "emu_pwrdm" }, 3878c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_PRM_PARTITION, 3888c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_PRM_EMU_CM_INST, 3898c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_PRM_EMU_CM_EMU_CDOFFS, 3908c2ecf20Sopenharmony_ci .flags = (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_FORCE_WAKEUP | 3918c2ecf20Sopenharmony_ci CLKDM_MISSING_IDLE_REPORTING), 3928c2ecf20Sopenharmony_ci}; 3938c2ecf20Sopenharmony_ci 3948c2ecf20Sopenharmony_cistatic struct clockdomain l3_dma_44xx_clkdm = { 3958c2ecf20Sopenharmony_ci .name = "l3_dma_clkdm", 3968c2ecf20Sopenharmony_ci .pwrdm = { .name = "core_pwrdm" }, 3978c2ecf20Sopenharmony_ci .prcm_partition = OMAP4430_CM2_PARTITION, 3988c2ecf20Sopenharmony_ci .cm_inst = OMAP4430_CM2_CORE_INST, 3998c2ecf20Sopenharmony_ci .clkdm_offs = OMAP4430_CM2_CORE_SDMA_CDOFFS, 4008c2ecf20Sopenharmony_ci .wkdep_srcs = l3_dma_wkup_sleep_deps, 4018c2ecf20Sopenharmony_ci .sleepdep_srcs = l3_dma_wkup_sleep_deps, 4028c2ecf20Sopenharmony_ci .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, 4038c2ecf20Sopenharmony_ci}; 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_ci/* As clockdomains are added or removed above, this list must also be changed */ 4068c2ecf20Sopenharmony_cistatic struct clockdomain *clockdomains_omap44xx[] __initdata = { 4078c2ecf20Sopenharmony_ci &l4_cefuse_44xx_clkdm, 4088c2ecf20Sopenharmony_ci &l4_cfg_44xx_clkdm, 4098c2ecf20Sopenharmony_ci &tesla_44xx_clkdm, 4108c2ecf20Sopenharmony_ci &l3_gfx_44xx_clkdm, 4118c2ecf20Sopenharmony_ci &ivahd_44xx_clkdm, 4128c2ecf20Sopenharmony_ci &l4_secure_44xx_clkdm, 4138c2ecf20Sopenharmony_ci &l4_per_44xx_clkdm, 4148c2ecf20Sopenharmony_ci &abe_44xx_clkdm, 4158c2ecf20Sopenharmony_ci &l3_instr_44xx_clkdm, 4168c2ecf20Sopenharmony_ci &l3_init_44xx_clkdm, 4178c2ecf20Sopenharmony_ci &d2d_44xx_clkdm, 4188c2ecf20Sopenharmony_ci &mpu0_44xx_clkdm, 4198c2ecf20Sopenharmony_ci &mpu1_44xx_clkdm, 4208c2ecf20Sopenharmony_ci &l3_emif_44xx_clkdm, 4218c2ecf20Sopenharmony_ci &l4_ao_44xx_clkdm, 4228c2ecf20Sopenharmony_ci &ducati_44xx_clkdm, 4238c2ecf20Sopenharmony_ci &mpu_44xx_clkdm, 4248c2ecf20Sopenharmony_ci &l3_2_44xx_clkdm, 4258c2ecf20Sopenharmony_ci &l3_1_44xx_clkdm, 4268c2ecf20Sopenharmony_ci &iss_44xx_clkdm, 4278c2ecf20Sopenharmony_ci &l3_dss_44xx_clkdm, 4288c2ecf20Sopenharmony_ci &l4_wkup_44xx_clkdm, 4298c2ecf20Sopenharmony_ci &emu_sys_44xx_clkdm, 4308c2ecf20Sopenharmony_ci &l3_dma_44xx_clkdm, 4318c2ecf20Sopenharmony_ci NULL 4328c2ecf20Sopenharmony_ci}; 4338c2ecf20Sopenharmony_ci 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_civoid __init omap44xx_clockdomains_init(void) 4368c2ecf20Sopenharmony_ci{ 4378c2ecf20Sopenharmony_ci clkdm_register_platform_funcs(&omap4_clkdm_operations); 4388c2ecf20Sopenharmony_ci clkdm_register_clkdms(clockdomains_omap44xx); 4398c2ecf20Sopenharmony_ci clkdm_complete_init(); 4408c2ecf20Sopenharmony_ci} 441