Path: blob/master/arch/arm/mach-omap2/clockdomains7xx_data.c
26292 views
// SPDX-License-Identifier: GPL-2.0-only1/*2* DRA7xx Clock domains framework3*4* Copyright (C) 2009-2013 Texas Instruments, Inc.5* Copyright (C) 2009-2011 Nokia Corporation6*7* Generated by code originally written by:8* Abhijit Pagare ([email protected])9* Benoit Cousson ([email protected])10* Paul Walmsley ([email protected])11*12* This file is automatically generated from the OMAP hardware databases.13* We respectfully ask that any modifications to this file be coordinated14* with the public [email protected] mailing list and the15* authors above to ensure that the autogeneration scripts are kept16* up-to-date with the file contents.17*/1819#include <linux/kernel.h>20#include <linux/io.h>2122#include "clockdomain.h"23#include "cm1_7xx.h"24#include "cm2_7xx.h"2526#include "cm-regbits-7xx.h"27#include "prm7xx.h"28#include "prcm44xx.h"29#include "prcm_mpu7xx.h"3031/* Static Dependencies for DRA7xx Clock Domains */3233static struct clkdm_dep cam_wkup_sleep_deps[] = {34{ .clkdm_name = "emif_clkdm" },35{ NULL },36};3738static struct clkdm_dep dma_wkup_sleep_deps[] = {39{ .clkdm_name = "dss_clkdm" },40{ .clkdm_name = "emif_clkdm" },41{ .clkdm_name = "ipu_clkdm" },42{ .clkdm_name = "ipu1_clkdm" },43{ .clkdm_name = "ipu2_clkdm" },44{ .clkdm_name = "iva_clkdm" },45{ .clkdm_name = "l3init_clkdm" },46{ .clkdm_name = "l4cfg_clkdm" },47{ .clkdm_name = "l4per_clkdm" },48{ .clkdm_name = "l4per2_clkdm" },49{ .clkdm_name = "l4per3_clkdm" },50{ .clkdm_name = "l4sec_clkdm" },51{ .clkdm_name = "pcie_clkdm" },52{ .clkdm_name = "wkupaon_clkdm" },53{ NULL },54};5556static struct clkdm_dep dsp1_wkup_sleep_deps[] = {57{ .clkdm_name = "atl_clkdm" },58{ .clkdm_name = "cam_clkdm" },59{ .clkdm_name = "dsp2_clkdm" },60{ .clkdm_name = "dss_clkdm" },61{ .clkdm_name = "emif_clkdm" },62{ .clkdm_name = "eve1_clkdm" },63{ .clkdm_name = "eve2_clkdm" },64{ .clkdm_name = "eve3_clkdm" },65{ .clkdm_name = "eve4_clkdm" },66{ .clkdm_name = "gmac_clkdm" },67{ .clkdm_name = "gpu_clkdm" },68{ .clkdm_name = "ipu_clkdm" },69{ .clkdm_name = "ipu1_clkdm" },70{ .clkdm_name = "ipu2_clkdm" },71{ .clkdm_name = "iva_clkdm" },72{ .clkdm_name = "l3init_clkdm" },73{ .clkdm_name = "l4per_clkdm" },74{ .clkdm_name = "l4per2_clkdm" },75{ .clkdm_name = "l4per3_clkdm" },76{ .clkdm_name = "l4sec_clkdm" },77{ .clkdm_name = "pcie_clkdm" },78{ .clkdm_name = "vpe_clkdm" },79{ .clkdm_name = "wkupaon_clkdm" },80{ NULL },81};8283static struct clkdm_dep dsp2_wkup_sleep_deps[] = {84{ .clkdm_name = "atl_clkdm" },85{ .clkdm_name = "cam_clkdm" },86{ .clkdm_name = "dsp1_clkdm" },87{ .clkdm_name = "dss_clkdm" },88{ .clkdm_name = "emif_clkdm" },89{ .clkdm_name = "eve1_clkdm" },90{ .clkdm_name = "eve2_clkdm" },91{ .clkdm_name = "eve3_clkdm" },92{ .clkdm_name = "eve4_clkdm" },93{ .clkdm_name = "gmac_clkdm" },94{ .clkdm_name = "gpu_clkdm" },95{ .clkdm_name = "ipu_clkdm" },96{ .clkdm_name = "ipu1_clkdm" },97{ .clkdm_name = "ipu2_clkdm" },98{ .clkdm_name = "iva_clkdm" },99{ .clkdm_name = "l3init_clkdm" },100{ .clkdm_name = "l4per_clkdm" },101{ .clkdm_name = "l4per2_clkdm" },102{ .clkdm_name = "l4per3_clkdm" },103{ .clkdm_name = "l4sec_clkdm" },104{ .clkdm_name = "pcie_clkdm" },105{ .clkdm_name = "vpe_clkdm" },106{ .clkdm_name = "wkupaon_clkdm" },107{ NULL },108};109110static struct clkdm_dep dss_wkup_sleep_deps[] = {111{ .clkdm_name = "emif_clkdm" },112{ .clkdm_name = "iva_clkdm" },113{ NULL },114};115116static struct clkdm_dep eve1_wkup_sleep_deps[] = {117{ .clkdm_name = "emif_clkdm" },118{ .clkdm_name = "eve2_clkdm" },119{ .clkdm_name = "eve3_clkdm" },120{ .clkdm_name = "eve4_clkdm" },121{ .clkdm_name = "iva_clkdm" },122{ NULL },123};124125static struct clkdm_dep eve2_wkup_sleep_deps[] = {126{ .clkdm_name = "emif_clkdm" },127{ .clkdm_name = "eve1_clkdm" },128{ .clkdm_name = "eve3_clkdm" },129{ .clkdm_name = "eve4_clkdm" },130{ .clkdm_name = "iva_clkdm" },131{ NULL },132};133134static struct clkdm_dep eve3_wkup_sleep_deps[] = {135{ .clkdm_name = "emif_clkdm" },136{ .clkdm_name = "eve1_clkdm" },137{ .clkdm_name = "eve2_clkdm" },138{ .clkdm_name = "eve4_clkdm" },139{ .clkdm_name = "iva_clkdm" },140{ NULL },141};142143static struct clkdm_dep eve4_wkup_sleep_deps[] = {144{ .clkdm_name = "emif_clkdm" },145{ .clkdm_name = "eve1_clkdm" },146{ .clkdm_name = "eve2_clkdm" },147{ .clkdm_name = "eve3_clkdm" },148{ .clkdm_name = "iva_clkdm" },149{ NULL },150};151152static struct clkdm_dep gmac_wkup_sleep_deps[] = {153{ .clkdm_name = "emif_clkdm" },154{ .clkdm_name = "l4per2_clkdm" },155{ NULL },156};157158static struct clkdm_dep gpu_wkup_sleep_deps[] = {159{ .clkdm_name = "emif_clkdm" },160{ .clkdm_name = "iva_clkdm" },161{ NULL },162};163164static struct clkdm_dep ipu1_wkup_sleep_deps[] = {165{ .clkdm_name = "atl_clkdm" },166{ .clkdm_name = "dsp1_clkdm" },167{ .clkdm_name = "dsp2_clkdm" },168{ .clkdm_name = "dss_clkdm" },169{ .clkdm_name = "emif_clkdm" },170{ .clkdm_name = "eve1_clkdm" },171{ .clkdm_name = "eve2_clkdm" },172{ .clkdm_name = "eve3_clkdm" },173{ .clkdm_name = "eve4_clkdm" },174{ .clkdm_name = "gmac_clkdm" },175{ .clkdm_name = "gpu_clkdm" },176{ .clkdm_name = "ipu_clkdm" },177{ .clkdm_name = "ipu2_clkdm" },178{ .clkdm_name = "iva_clkdm" },179{ .clkdm_name = "l3init_clkdm" },180{ .clkdm_name = "l3main1_clkdm" },181{ .clkdm_name = "l4cfg_clkdm" },182{ .clkdm_name = "l4per_clkdm" },183{ .clkdm_name = "l4per2_clkdm" },184{ .clkdm_name = "l4per3_clkdm" },185{ .clkdm_name = "l4sec_clkdm" },186{ .clkdm_name = "pcie_clkdm" },187{ .clkdm_name = "vpe_clkdm" },188{ .clkdm_name = "wkupaon_clkdm" },189{ NULL },190};191192static struct clkdm_dep ipu2_wkup_sleep_deps[] = {193{ .clkdm_name = "atl_clkdm" },194{ .clkdm_name = "dsp1_clkdm" },195{ .clkdm_name = "dsp2_clkdm" },196{ .clkdm_name = "dss_clkdm" },197{ .clkdm_name = "emif_clkdm" },198{ .clkdm_name = "eve1_clkdm" },199{ .clkdm_name = "eve2_clkdm" },200{ .clkdm_name = "eve3_clkdm" },201{ .clkdm_name = "eve4_clkdm" },202{ .clkdm_name = "gmac_clkdm" },203{ .clkdm_name = "gpu_clkdm" },204{ .clkdm_name = "ipu_clkdm" },205{ .clkdm_name = "ipu1_clkdm" },206{ .clkdm_name = "iva_clkdm" },207{ .clkdm_name = "l3init_clkdm" },208{ .clkdm_name = "l3main1_clkdm" },209{ .clkdm_name = "l4cfg_clkdm" },210{ .clkdm_name = "l4per_clkdm" },211{ .clkdm_name = "l4per2_clkdm" },212{ .clkdm_name = "l4per3_clkdm" },213{ .clkdm_name = "l4sec_clkdm" },214{ .clkdm_name = "pcie_clkdm" },215{ .clkdm_name = "vpe_clkdm" },216{ .clkdm_name = "wkupaon_clkdm" },217{ NULL },218};219220static struct clkdm_dep iva_wkup_sleep_deps[] = {221{ .clkdm_name = "emif_clkdm" },222{ NULL },223};224225static struct clkdm_dep l3init_wkup_sleep_deps[] = {226{ .clkdm_name = "emif_clkdm" },227{ .clkdm_name = "iva_clkdm" },228{ .clkdm_name = "l4cfg_clkdm" },229{ .clkdm_name = "l4per_clkdm" },230{ .clkdm_name = "l4per3_clkdm" },231{ .clkdm_name = "l4sec_clkdm" },232{ .clkdm_name = "wkupaon_clkdm" },233{ NULL },234};235236static struct clkdm_dep l4per2_wkup_sleep_deps[] = {237{ .clkdm_name = "dsp1_clkdm" },238{ .clkdm_name = "dsp2_clkdm" },239{ .clkdm_name = "ipu1_clkdm" },240{ .clkdm_name = "ipu2_clkdm" },241{ NULL },242};243244static struct clkdm_dep l4sec_wkup_sleep_deps[] = {245{ .clkdm_name = "emif_clkdm" },246{ .clkdm_name = "l4per_clkdm" },247{ NULL },248};249250static struct clkdm_dep mpu_wkup_sleep_deps[] = {251{ .clkdm_name = "cam_clkdm" },252{ .clkdm_name = "dsp1_clkdm" },253{ .clkdm_name = "dsp2_clkdm" },254{ .clkdm_name = "dss_clkdm" },255{ .clkdm_name = "emif_clkdm" },256{ .clkdm_name = "eve1_clkdm" },257{ .clkdm_name = "eve2_clkdm" },258{ .clkdm_name = "eve3_clkdm" },259{ .clkdm_name = "eve4_clkdm" },260{ .clkdm_name = "gmac_clkdm" },261{ .clkdm_name = "gpu_clkdm" },262{ .clkdm_name = "ipu_clkdm" },263{ .clkdm_name = "ipu1_clkdm" },264{ .clkdm_name = "ipu2_clkdm" },265{ .clkdm_name = "iva_clkdm" },266{ .clkdm_name = "l3init_clkdm" },267{ .clkdm_name = "l3main1_clkdm" },268{ .clkdm_name = "l4cfg_clkdm" },269{ .clkdm_name = "l4per_clkdm" },270{ .clkdm_name = "l4per2_clkdm" },271{ .clkdm_name = "l4per3_clkdm" },272{ .clkdm_name = "l4sec_clkdm" },273{ .clkdm_name = "pcie_clkdm" },274{ .clkdm_name = "vpe_clkdm" },275{ .clkdm_name = "wkupaon_clkdm" },276{ NULL },277};278279static struct clkdm_dep pcie_wkup_sleep_deps[] = {280{ .clkdm_name = "atl_clkdm" },281{ .clkdm_name = "cam_clkdm" },282{ .clkdm_name = "dsp1_clkdm" },283{ .clkdm_name = "dsp2_clkdm" },284{ .clkdm_name = "dss_clkdm" },285{ .clkdm_name = "emif_clkdm" },286{ .clkdm_name = "eve1_clkdm" },287{ .clkdm_name = "eve2_clkdm" },288{ .clkdm_name = "eve3_clkdm" },289{ .clkdm_name = "eve4_clkdm" },290{ .clkdm_name = "gmac_clkdm" },291{ .clkdm_name = "gpu_clkdm" },292{ .clkdm_name = "ipu_clkdm" },293{ .clkdm_name = "ipu1_clkdm" },294{ .clkdm_name = "iva_clkdm" },295{ .clkdm_name = "l3init_clkdm" },296{ .clkdm_name = "l4cfg_clkdm" },297{ .clkdm_name = "l4per_clkdm" },298{ .clkdm_name = "l4per2_clkdm" },299{ .clkdm_name = "l4per3_clkdm" },300{ .clkdm_name = "l4sec_clkdm" },301{ .clkdm_name = "vpe_clkdm" },302{ NULL },303};304305static struct clkdm_dep vpe_wkup_sleep_deps[] = {306{ .clkdm_name = "emif_clkdm" },307{ .clkdm_name = "l4per3_clkdm" },308{ NULL },309};310311static struct clockdomain l4per3_7xx_clkdm = {312.name = "l4per3_clkdm",313.pwrdm = { .name = "l4per_pwrdm" },314.prcm_partition = DRA7XX_CM_CORE_PARTITION,315.cm_inst = DRA7XX_CM_CORE_L4PER_INST,316.clkdm_offs = DRA7XX_CM_CORE_L4PER_L4PER3_CDOFFS,317.dep_bit = DRA7XX_L4PER3_STATDEP_SHIFT,318.flags = CLKDM_CAN_HWSUP_SWSUP,319};320321static struct clockdomain l4per2_7xx_clkdm = {322.name = "l4per2_clkdm",323.pwrdm = { .name = "l4per_pwrdm" },324.prcm_partition = DRA7XX_CM_CORE_PARTITION,325.cm_inst = DRA7XX_CM_CORE_L4PER_INST,326.clkdm_offs = DRA7XX_CM_CORE_L4PER_L4PER2_CDOFFS,327.dep_bit = DRA7XX_L4PER2_STATDEP_SHIFT,328.wkdep_srcs = l4per2_wkup_sleep_deps,329.sleepdep_srcs = l4per2_wkup_sleep_deps,330.flags = CLKDM_CAN_SWSUP,331};332333static struct clockdomain mpu0_7xx_clkdm = {334.name = "mpu0_clkdm",335.pwrdm = { .name = "cpu0_pwrdm" },336.prcm_partition = DRA7XX_MPU_PRCM_PARTITION,337.cm_inst = DRA7XX_MPU_PRCM_CM_C0_INST,338.clkdm_offs = DRA7XX_MPU_PRCM_CM_C0_CPU0_CDOFFS,339.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,340};341342static struct clockdomain iva_7xx_clkdm = {343.name = "iva_clkdm",344.pwrdm = { .name = "iva_pwrdm" },345.prcm_partition = DRA7XX_CM_CORE_PARTITION,346.cm_inst = DRA7XX_CM_CORE_IVA_INST,347.clkdm_offs = DRA7XX_CM_CORE_IVA_IVA_CDOFFS,348.dep_bit = DRA7XX_IVA_STATDEP_SHIFT,349.wkdep_srcs = iva_wkup_sleep_deps,350.sleepdep_srcs = iva_wkup_sleep_deps,351.flags = CLKDM_CAN_HWSUP_SWSUP,352};353354static struct clockdomain coreaon_7xx_clkdm = {355.name = "coreaon_clkdm",356.pwrdm = { .name = "coreaon_pwrdm" },357.prcm_partition = DRA7XX_CM_CORE_PARTITION,358.cm_inst = DRA7XX_CM_CORE_COREAON_INST,359.clkdm_offs = DRA7XX_CM_CORE_COREAON_COREAON_CDOFFS,360.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,361};362363static struct clockdomain ipu1_7xx_clkdm = {364.name = "ipu1_clkdm",365.pwrdm = { .name = "ipu_pwrdm" },366.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,367.cm_inst = DRA7XX_CM_CORE_AON_IPU_INST,368.clkdm_offs = DRA7XX_CM_CORE_AON_IPU_IPU1_CDOFFS,369.dep_bit = DRA7XX_IPU1_STATDEP_SHIFT,370.wkdep_srcs = ipu1_wkup_sleep_deps,371.sleepdep_srcs = ipu1_wkup_sleep_deps,372.flags = CLKDM_CAN_HWSUP_SWSUP,373};374375static struct clockdomain ipu2_7xx_clkdm = {376.name = "ipu2_clkdm",377.pwrdm = { .name = "core_pwrdm" },378.prcm_partition = DRA7XX_CM_CORE_PARTITION,379.cm_inst = DRA7XX_CM_CORE_CORE_INST,380.clkdm_offs = DRA7XX_CM_CORE_CORE_IPU2_CDOFFS,381.dep_bit = DRA7XX_IPU2_STATDEP_SHIFT,382.wkdep_srcs = ipu2_wkup_sleep_deps,383.sleepdep_srcs = ipu2_wkup_sleep_deps,384.flags = CLKDM_CAN_HWSUP_SWSUP,385};386387static struct clockdomain l3init_7xx_clkdm = {388.name = "l3init_clkdm",389.pwrdm = { .name = "l3init_pwrdm" },390.prcm_partition = DRA7XX_CM_CORE_PARTITION,391.cm_inst = DRA7XX_CM_CORE_L3INIT_INST,392.clkdm_offs = DRA7XX_CM_CORE_L3INIT_L3INIT_CDOFFS,393.dep_bit = DRA7XX_L3INIT_STATDEP_SHIFT,394.wkdep_srcs = l3init_wkup_sleep_deps,395.sleepdep_srcs = l3init_wkup_sleep_deps,396.flags = CLKDM_CAN_HWSUP_SWSUP,397};398399static struct clockdomain l4sec_7xx_clkdm = {400.name = "l4sec_clkdm",401.pwrdm = { .name = "l4per_pwrdm" },402.prcm_partition = DRA7XX_CM_CORE_PARTITION,403.cm_inst = DRA7XX_CM_CORE_L4PER_INST,404.clkdm_offs = DRA7XX_CM_CORE_L4PER_L4SEC_CDOFFS,405.dep_bit = DRA7XX_L4SEC_STATDEP_SHIFT,406.wkdep_srcs = l4sec_wkup_sleep_deps,407.sleepdep_srcs = l4sec_wkup_sleep_deps,408.flags = CLKDM_CAN_SWSUP,409};410411static struct clockdomain l3main1_7xx_clkdm = {412.name = "l3main1_clkdm",413.pwrdm = { .name = "core_pwrdm" },414.prcm_partition = DRA7XX_CM_CORE_PARTITION,415.cm_inst = DRA7XX_CM_CORE_CORE_INST,416.clkdm_offs = DRA7XX_CM_CORE_CORE_L3MAIN1_CDOFFS,417.dep_bit = DRA7XX_L3MAIN1_STATDEP_SHIFT,418.flags = CLKDM_CAN_HWSUP,419};420421static struct clockdomain vpe_7xx_clkdm = {422.name = "vpe_clkdm",423.pwrdm = { .name = "vpe_pwrdm" },424.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,425.cm_inst = DRA7XX_CM_CORE_AON_VPE_INST,426.clkdm_offs = DRA7XX_CM_CORE_AON_VPE_VPE_CDOFFS,427.dep_bit = DRA7XX_VPE_STATDEP_SHIFT,428.wkdep_srcs = vpe_wkup_sleep_deps,429.sleepdep_srcs = vpe_wkup_sleep_deps,430.flags = CLKDM_CAN_HWSUP_SWSUP,431};432433static struct clockdomain mpu_7xx_clkdm = {434.name = "mpu_clkdm",435.pwrdm = { .name = "mpu_pwrdm" },436.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,437.cm_inst = DRA7XX_CM_CORE_AON_MPU_INST,438.clkdm_offs = DRA7XX_CM_CORE_AON_MPU_MPU_CDOFFS,439.wkdep_srcs = mpu_wkup_sleep_deps,440.sleepdep_srcs = mpu_wkup_sleep_deps,441.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,442};443444static struct clockdomain custefuse_7xx_clkdm = {445.name = "custefuse_clkdm",446.pwrdm = { .name = "custefuse_pwrdm" },447.prcm_partition = DRA7XX_CM_CORE_PARTITION,448.cm_inst = DRA7XX_CM_CORE_CUSTEFUSE_INST,449.clkdm_offs = DRA7XX_CM_CORE_CUSTEFUSE_CUSTEFUSE_CDOFFS,450.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,451};452453static struct clockdomain ipu_7xx_clkdm = {454.name = "ipu_clkdm",455.pwrdm = { .name = "ipu_pwrdm" },456.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,457.cm_inst = DRA7XX_CM_CORE_AON_IPU_INST,458.clkdm_offs = DRA7XX_CM_CORE_AON_IPU_IPU_CDOFFS,459.dep_bit = DRA7XX_IPU_STATDEP_SHIFT,460.flags = CLKDM_CAN_SWSUP,461};462463static struct clockdomain mpu1_7xx_clkdm = {464.name = "mpu1_clkdm",465.pwrdm = { .name = "cpu1_pwrdm" },466.prcm_partition = DRA7XX_MPU_PRCM_PARTITION,467.cm_inst = DRA7XX_MPU_PRCM_CM_C1_INST,468.clkdm_offs = DRA7XX_MPU_PRCM_CM_C1_CPU1_CDOFFS,469.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,470};471472static struct clockdomain gmac_7xx_clkdm = {473.name = "gmac_clkdm",474.pwrdm = { .name = "l3init_pwrdm" },475.prcm_partition = DRA7XX_CM_CORE_PARTITION,476.cm_inst = DRA7XX_CM_CORE_L3INIT_INST,477.clkdm_offs = DRA7XX_CM_CORE_L3INIT_GMAC_CDOFFS,478.dep_bit = DRA7XX_GMAC_STATDEP_SHIFT,479.wkdep_srcs = gmac_wkup_sleep_deps,480.sleepdep_srcs = gmac_wkup_sleep_deps,481.flags = CLKDM_CAN_HWSUP_SWSUP,482};483484static struct clockdomain l4cfg_7xx_clkdm = {485.name = "l4cfg_clkdm",486.pwrdm = { .name = "core_pwrdm" },487.prcm_partition = DRA7XX_CM_CORE_PARTITION,488.cm_inst = DRA7XX_CM_CORE_CORE_INST,489.clkdm_offs = DRA7XX_CM_CORE_CORE_L4CFG_CDOFFS,490.dep_bit = DRA7XX_L4CFG_STATDEP_SHIFT,491.flags = CLKDM_CAN_HWSUP,492};493494static struct clockdomain dma_7xx_clkdm = {495.name = "dma_clkdm",496.pwrdm = { .name = "core_pwrdm" },497.prcm_partition = DRA7XX_CM_CORE_PARTITION,498.cm_inst = DRA7XX_CM_CORE_CORE_INST,499.clkdm_offs = DRA7XX_CM_CORE_CORE_DMA_CDOFFS,500.wkdep_srcs = dma_wkup_sleep_deps,501.sleepdep_srcs = dma_wkup_sleep_deps,502.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,503};504505static struct clockdomain rtc_7xx_clkdm = {506.name = "rtc_clkdm",507.pwrdm = { .name = "rtc_pwrdm" },508.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,509.cm_inst = DRA7XX_CM_CORE_AON_RTC_INST,510.clkdm_offs = DRA7XX_CM_CORE_AON_RTC_RTC_CDOFFS,511.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,512};513514static struct clockdomain pcie_7xx_clkdm = {515.name = "pcie_clkdm",516.pwrdm = { .name = "l3init_pwrdm" },517.prcm_partition = DRA7XX_CM_CORE_PARTITION,518.cm_inst = DRA7XX_CM_CORE_L3INIT_INST,519.clkdm_offs = DRA7XX_CM_CORE_L3INIT_PCIE_CDOFFS,520.dep_bit = DRA7XX_PCIE_STATDEP_SHIFT,521.wkdep_srcs = pcie_wkup_sleep_deps,522.sleepdep_srcs = pcie_wkup_sleep_deps,523.flags = CLKDM_CAN_SWSUP,524};525526static struct clockdomain atl_7xx_clkdm = {527.name = "atl_clkdm",528.pwrdm = { .name = "core_pwrdm" },529.prcm_partition = DRA7XX_CM_CORE_PARTITION,530.cm_inst = DRA7XX_CM_CORE_CORE_INST,531.clkdm_offs = DRA7XX_CM_CORE_CORE_ATL_CDOFFS,532.dep_bit = DRA7XX_ATL_STATDEP_SHIFT,533.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,534};535536static struct clockdomain l3instr_7xx_clkdm = {537.name = "l3instr_clkdm",538.pwrdm = { .name = "core_pwrdm" },539.prcm_partition = DRA7XX_CM_CORE_PARTITION,540.cm_inst = DRA7XX_CM_CORE_CORE_INST,541.clkdm_offs = DRA7XX_CM_CORE_CORE_L3INSTR_CDOFFS,542};543544static struct clockdomain dss_7xx_clkdm = {545.name = "dss_clkdm",546.pwrdm = { .name = "dss_pwrdm" },547.prcm_partition = DRA7XX_CM_CORE_PARTITION,548.cm_inst = DRA7XX_CM_CORE_DSS_INST,549.clkdm_offs = DRA7XX_CM_CORE_DSS_DSS_CDOFFS,550.dep_bit = DRA7XX_DSS_STATDEP_SHIFT,551.wkdep_srcs = dss_wkup_sleep_deps,552.sleepdep_srcs = dss_wkup_sleep_deps,553.flags = CLKDM_CAN_HWSUP_SWSUP,554};555556static struct clockdomain emif_7xx_clkdm = {557.name = "emif_clkdm",558.pwrdm = { .name = "core_pwrdm" },559.prcm_partition = DRA7XX_CM_CORE_PARTITION,560.cm_inst = DRA7XX_CM_CORE_CORE_INST,561.clkdm_offs = DRA7XX_CM_CORE_CORE_EMIF_CDOFFS,562.dep_bit = DRA7XX_EMIF_STATDEP_SHIFT,563.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,564};565566static struct clockdomain emu_7xx_clkdm = {567.name = "emu_clkdm",568.pwrdm = { .name = "emu_pwrdm" },569.prcm_partition = DRA7XX_PRM_PARTITION,570.cm_inst = DRA7XX_PRM_EMU_CM_INST,571.clkdm_offs = DRA7XX_PRM_EMU_CM_EMU_CDOFFS,572.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,573};574575static struct clockdomain dsp2_7xx_clkdm = {576.name = "dsp2_clkdm",577.pwrdm = { .name = "dsp2_pwrdm" },578.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,579.cm_inst = DRA7XX_CM_CORE_AON_DSP2_INST,580.clkdm_offs = DRA7XX_CM_CORE_AON_DSP2_DSP2_CDOFFS,581.dep_bit = DRA7XX_DSP2_STATDEP_SHIFT,582.wkdep_srcs = dsp2_wkup_sleep_deps,583.sleepdep_srcs = dsp2_wkup_sleep_deps,584.flags = CLKDM_CAN_HWSUP_SWSUP,585};586587static struct clockdomain dsp1_7xx_clkdm = {588.name = "dsp1_clkdm",589.pwrdm = { .name = "dsp1_pwrdm" },590.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,591.cm_inst = DRA7XX_CM_CORE_AON_DSP1_INST,592.clkdm_offs = DRA7XX_CM_CORE_AON_DSP1_DSP1_CDOFFS,593.dep_bit = DRA7XX_DSP1_STATDEP_SHIFT,594.wkdep_srcs = dsp1_wkup_sleep_deps,595.sleepdep_srcs = dsp1_wkup_sleep_deps,596.flags = CLKDM_CAN_HWSUP_SWSUP,597};598599static struct clockdomain cam_7xx_clkdm = {600.name = "cam_clkdm",601.pwrdm = { .name = "cam_pwrdm" },602.prcm_partition = DRA7XX_CM_CORE_PARTITION,603.cm_inst = DRA7XX_CM_CORE_CAM_INST,604.clkdm_offs = DRA7XX_CM_CORE_CAM_CAM_CDOFFS,605.dep_bit = DRA7XX_CAM_STATDEP_SHIFT,606.wkdep_srcs = cam_wkup_sleep_deps,607.sleepdep_srcs = cam_wkup_sleep_deps,608.flags = CLKDM_CAN_SWSUP,609};610611static struct clockdomain l4per_7xx_clkdm = {612.name = "l4per_clkdm",613.pwrdm = { .name = "l4per_pwrdm" },614.prcm_partition = DRA7XX_CM_CORE_PARTITION,615.cm_inst = DRA7XX_CM_CORE_L4PER_INST,616.clkdm_offs = DRA7XX_CM_CORE_L4PER_L4PER_CDOFFS,617.dep_bit = DRA7XX_L4PER_STATDEP_SHIFT,618.flags = CLKDM_CAN_HWSUP_SWSUP,619};620621static struct clockdomain gpu_7xx_clkdm = {622.name = "gpu_clkdm",623.pwrdm = { .name = "gpu_pwrdm" },624.prcm_partition = DRA7XX_CM_CORE_PARTITION,625.cm_inst = DRA7XX_CM_CORE_GPU_INST,626.clkdm_offs = DRA7XX_CM_CORE_GPU_GPU_CDOFFS,627.dep_bit = DRA7XX_GPU_STATDEP_SHIFT,628.wkdep_srcs = gpu_wkup_sleep_deps,629.sleepdep_srcs = gpu_wkup_sleep_deps,630.flags = CLKDM_CAN_HWSUP_SWSUP,631};632633static struct clockdomain eve4_7xx_clkdm = {634.name = "eve4_clkdm",635.pwrdm = { .name = "eve4_pwrdm" },636.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,637.cm_inst = DRA7XX_CM_CORE_AON_EVE4_INST,638.clkdm_offs = DRA7XX_CM_CORE_AON_EVE4_EVE4_CDOFFS,639.dep_bit = DRA7XX_EVE4_STATDEP_SHIFT,640.wkdep_srcs = eve4_wkup_sleep_deps,641.sleepdep_srcs = eve4_wkup_sleep_deps,642.flags = CLKDM_CAN_HWSUP_SWSUP,643};644645static struct clockdomain eve2_7xx_clkdm = {646.name = "eve2_clkdm",647.pwrdm = { .name = "eve2_pwrdm" },648.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,649.cm_inst = DRA7XX_CM_CORE_AON_EVE2_INST,650.clkdm_offs = DRA7XX_CM_CORE_AON_EVE2_EVE2_CDOFFS,651.dep_bit = DRA7XX_EVE2_STATDEP_SHIFT,652.wkdep_srcs = eve2_wkup_sleep_deps,653.sleepdep_srcs = eve2_wkup_sleep_deps,654.flags = CLKDM_CAN_HWSUP_SWSUP,655};656657static struct clockdomain eve3_7xx_clkdm = {658.name = "eve3_clkdm",659.pwrdm = { .name = "eve3_pwrdm" },660.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,661.cm_inst = DRA7XX_CM_CORE_AON_EVE3_INST,662.clkdm_offs = DRA7XX_CM_CORE_AON_EVE3_EVE3_CDOFFS,663.dep_bit = DRA7XX_EVE3_STATDEP_SHIFT,664.wkdep_srcs = eve3_wkup_sleep_deps,665.sleepdep_srcs = eve3_wkup_sleep_deps,666.flags = CLKDM_CAN_HWSUP_SWSUP,667};668669static struct clockdomain wkupaon_7xx_clkdm = {670.name = "wkupaon_clkdm",671.pwrdm = { .name = "wkupaon_pwrdm" },672.prcm_partition = DRA7XX_PRM_PARTITION,673.cm_inst = DRA7XX_PRM_WKUPAON_CM_INST,674.clkdm_offs = DRA7XX_PRM_WKUPAON_CM_WKUPAON_CDOFFS,675.dep_bit = DRA7XX_WKUPAON_STATDEP_SHIFT,676.flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,677};678679static struct clockdomain eve1_7xx_clkdm = {680.name = "eve1_clkdm",681.pwrdm = { .name = "eve1_pwrdm" },682.prcm_partition = DRA7XX_CM_CORE_AON_PARTITION,683.cm_inst = DRA7XX_CM_CORE_AON_EVE1_INST,684.clkdm_offs = DRA7XX_CM_CORE_AON_EVE1_EVE1_CDOFFS,685.dep_bit = DRA7XX_EVE1_STATDEP_SHIFT,686.wkdep_srcs = eve1_wkup_sleep_deps,687.sleepdep_srcs = eve1_wkup_sleep_deps,688.flags = CLKDM_CAN_HWSUP_SWSUP,689};690691/* As clockdomains are added or removed above, this list must also be changed */692static struct clockdomain *clockdomains_dra7xx[] __initdata = {693&l4per3_7xx_clkdm,694&l4per2_7xx_clkdm,695&mpu0_7xx_clkdm,696&iva_7xx_clkdm,697&coreaon_7xx_clkdm,698&ipu1_7xx_clkdm,699&ipu2_7xx_clkdm,700&l3init_7xx_clkdm,701&l4sec_7xx_clkdm,702&l3main1_7xx_clkdm,703&vpe_7xx_clkdm,704&mpu_7xx_clkdm,705&custefuse_7xx_clkdm,706&ipu_7xx_clkdm,707&mpu1_7xx_clkdm,708&gmac_7xx_clkdm,709&l4cfg_7xx_clkdm,710&dma_7xx_clkdm,711&rtc_7xx_clkdm,712&pcie_7xx_clkdm,713&atl_7xx_clkdm,714&l3instr_7xx_clkdm,715&dss_7xx_clkdm,716&emif_7xx_clkdm,717&emu_7xx_clkdm,718&dsp2_7xx_clkdm,719&dsp1_7xx_clkdm,720&cam_7xx_clkdm,721&l4per_7xx_clkdm,722&gpu_7xx_clkdm,723&eve4_7xx_clkdm,724&eve2_7xx_clkdm,725&eve3_7xx_clkdm,726&wkupaon_7xx_clkdm,727&eve1_7xx_clkdm,728NULL729};730731void __init dra7xx_clockdomains_init(void)732{733clkdm_register_platform_funcs(&omap4_clkdm_operations);734clkdm_register_clkdms(clockdomains_dra7xx);735clkdm_complete_init();736}737738739