cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

clockdomains7xx_data.c (22881B)


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