]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-omap2/clockdomains44xx_data.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / mach-omap2 / clockdomains44xx_data.c
similarity index 58%
rename from arch/arm/mach-omap2/clockdomains44xx.h
rename to arch/arm/mach-omap2/clockdomains44xx_data.c
index 7e5ba0f679255de8b18a4f2f49d0b20be1bde40e..10622c914abcbf338675316fc600928bd8251c50 100644 (file)
  * -> Populate the Sleep/Wakeup dependencies for the domains
  */
 
-#ifndef __ARCH_ARM_MACH_OMAP2_CLOCKDOMAINS44XX_H
-#define __ARCH_ARM_MACH_OMAP2_CLOCKDOMAINS44XX_H
+#include <linux/kernel.h>
+#include <linux/io.h>
 
-#include <plat/clockdomain.h>
+#include "clockdomain.h"
+#include "cm1_44xx.h"
+#include "cm2_44xx.h"
+
+#include "cm-regbits-44xx.h"
+#include "prm44xx.h"
+#include "prcm44xx.h"
+#include "prcm_mpu44xx.h"
 
-#if defined(CONFIG_ARCH_OMAP4)
 
 static struct clockdomain l4_cefuse_44xx_clkdm = {
        .name             = "l4_cefuse_clkdm",
        .pwrdm            = { .name = "cefuse_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_CEFUSE_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CEFUSE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -42,8 +49,9 @@ static struct clockdomain l4_cefuse_44xx_clkdm = {
 static struct clockdomain l4_cfg_44xx_clkdm = {
        .name             = "l4_cfg_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L4CFG_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_L4CFG_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -51,8 +59,9 @@ static struct clockdomain l4_cfg_44xx_clkdm = {
 static struct clockdomain tesla_44xx_clkdm = {
        .name             = "tesla_clkdm",
        .pwrdm            = { .name = "tesla_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_TESLA_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM1_PARTITION,
+       .cm_inst          = OMAP4430_CM1_TESLA_INST,
+       .clkdm_offs       = OMAP4430_CM1_TESLA_TESLA_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -60,8 +69,9 @@ static struct clockdomain tesla_44xx_clkdm = {
 static struct clockdomain l3_gfx_44xx_clkdm = {
        .name             = "l3_gfx_clkdm",
        .pwrdm            = { .name = "gfx_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_GFX_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_GFX_INST,
+       .clkdm_offs       = OMAP4430_CM2_GFX_GFX_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -69,8 +79,9 @@ static struct clockdomain l3_gfx_44xx_clkdm = {
 static struct clockdomain ivahd_44xx_clkdm = {
        .name             = "ivahd_clkdm",
        .pwrdm            = { .name = "ivahd_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_IVAHD_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_IVAHD_INST,
+       .clkdm_offs       = OMAP4430_CM2_IVAHD_IVAHD_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -78,8 +89,9 @@ static struct clockdomain ivahd_44xx_clkdm = {
 static struct clockdomain l4_secure_44xx_clkdm = {
        .name             = "l4_secure_clkdm",
        .pwrdm            = { .name = "l4per_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L4SEC_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_L4PER_INST,
+       .clkdm_offs       = OMAP4430_CM2_L4PER_L4SEC_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -87,8 +99,9 @@ static struct clockdomain l4_secure_44xx_clkdm = {
 static struct clockdomain l4_per_44xx_clkdm = {
        .name             = "l4_per_clkdm",
        .pwrdm            = { .name = "l4per_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L4PER_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_L4PER_INST,
+       .clkdm_offs       = OMAP4430_CM2_L4PER_L4PER_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -96,8 +109,9 @@ static struct clockdomain l4_per_44xx_clkdm = {
 static struct clockdomain abe_44xx_clkdm = {
        .name             = "abe_clkdm",
        .pwrdm            = { .name = "abe_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM1_ABE_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM1_PARTITION,
+       .cm_inst          = OMAP4430_CM1_ABE_INST,
+       .clkdm_offs       = OMAP4430_CM1_ABE_ABE_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -105,16 +119,18 @@ static struct clockdomain abe_44xx_clkdm = {
 static struct clockdomain l3_instr_44xx_clkdm = {
        .name             = "l3_instr_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L3INSTR_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_L3INSTR_CDOFFS,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
 
 static struct clockdomain l3_init_44xx_clkdm = {
        .name             = "l3_init_clkdm",
        .pwrdm            = { .name = "l3init_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L3INIT_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_L3INIT_INST,
+       .clkdm_offs       = OMAP4430_CM2_L3INIT_L3INIT_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -122,8 +138,9 @@ static struct clockdomain l3_init_44xx_clkdm = {
 static struct clockdomain mpuss_44xx_clkdm = {
        .name             = "mpuss_clkdm",
        .pwrdm            = { .name = "mpu_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_MPU_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM1_PARTITION,
+       .cm_inst          = OMAP4430_CM1_MPU_INST,
+       .clkdm_offs       = OMAP4430_CM1_MPU_MPU_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -131,8 +148,9 @@ static struct clockdomain mpuss_44xx_clkdm = {
 static struct clockdomain mpu0_44xx_clkdm = {
        .name             = "mpu0_clkdm",
        .pwrdm            = { .name = "cpu0_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_CPU0_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_PRCM_MPU_PARTITION,
+       .cm_inst          = OMAP4430_PRCM_MPU_CPU0_INST,
+       .clkdm_offs       = OMAP4430_PRCM_MPU_CPU0_MPU_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -140,8 +158,9 @@ static struct clockdomain mpu0_44xx_clkdm = {
 static struct clockdomain mpu1_44xx_clkdm = {
        .name             = "mpu1_clkdm",
        .pwrdm            = { .name = "cpu1_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_CPU1_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_PRCM_MPU_PARTITION,
+       .cm_inst          = OMAP4430_PRCM_MPU_CPU1_INST,
+       .clkdm_offs       = OMAP4430_PRCM_MPU_CPU1_MPU_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -149,8 +168,9 @@ static struct clockdomain mpu1_44xx_clkdm = {
 static struct clockdomain l3_emif_44xx_clkdm = {
        .name             = "l3_emif_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_MEMIF_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_MEMIF_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -158,8 +178,9 @@ static struct clockdomain l3_emif_44xx_clkdm = {
 static struct clockdomain l4_ao_44xx_clkdm = {
        .name             = "l4_ao_clkdm",
        .pwrdm            = { .name = "always_on_core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_ALWON_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_ALWAYS_ON_INST,
+       .clkdm_offs       = OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -167,8 +188,9 @@ static struct clockdomain l4_ao_44xx_clkdm = {
 static struct clockdomain ducati_44xx_clkdm = {
        .name             = "ducati_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_DUCATI_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_DUCATI_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -176,8 +198,9 @@ static struct clockdomain ducati_44xx_clkdm = {
 static struct clockdomain l3_2_44xx_clkdm = {
        .name             = "l3_2_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L3_2_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_L3_2_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -185,8 +208,9 @@ static struct clockdomain l3_2_44xx_clkdm = {
 static struct clockdomain l3_1_44xx_clkdm = {
        .name             = "l3_1_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_L3_1_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_L3_1_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -194,8 +218,9 @@ static struct clockdomain l3_1_44xx_clkdm = {
 static struct clockdomain l3_d2d_44xx_clkdm = {
        .name             = "l3_d2d_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_D2D_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_D2D_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -203,8 +228,9 @@ static struct clockdomain l3_d2d_44xx_clkdm = {
 static struct clockdomain iss_44xx_clkdm = {
        .name             = "iss_clkdm",
        .pwrdm            = { .name = "cam_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_CAM_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CAM_INST,
+       .clkdm_offs       = OMAP4430_CM2_CAM_CAM_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -212,8 +238,9 @@ static struct clockdomain iss_44xx_clkdm = {
 static struct clockdomain l3_dss_44xx_clkdm = {
        .name             = "l3_dss_clkdm",
        .pwrdm            = { .name = "dss_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_DSS_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_DSS_INST,
+       .clkdm_offs       = OMAP4430_CM2_DSS_DSS_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP_SWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -221,8 +248,9 @@ static struct clockdomain l3_dss_44xx_clkdm = {
 static struct clockdomain l4_wkup_44xx_clkdm = {
        .name             = "l4_wkup_clkdm",
        .pwrdm            = { .name = "wkup_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_WKUP_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_PRM_PARTITION,
+       .cm_inst          = OMAP4430_PRM_WKUP_CM_INST,
+       .clkdm_offs       = OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -230,8 +258,9 @@ static struct clockdomain l4_wkup_44xx_clkdm = {
 static struct clockdomain emu_sys_44xx_clkdm = {
        .name             = "emu_sys_clkdm",
        .pwrdm            = { .name = "emu_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_EMU_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_PRM_PARTITION,
+       .cm_inst          = OMAP4430_PRM_EMU_CM_INST,
+       .clkdm_offs       = OMAP4430_PRM_EMU_CM_EMU_CDOFFS,
        .flags            = CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
@@ -239,12 +268,42 @@ static struct clockdomain emu_sys_44xx_clkdm = {
 static struct clockdomain l3_dma_44xx_clkdm = {
        .name             = "l3_dma_clkdm",
        .pwrdm            = { .name = "core_pwrdm" },
-       .clkstctrl_reg    = OMAP4430_CM_SDMA_CLKSTCTRL,
-       .clktrctrl_mask   = OMAP4430_CLKTRCTRL_MASK,
+       .prcm_partition   = OMAP4430_CM2_PARTITION,
+       .cm_inst          = OMAP4430_CM2_CORE_INST,
+       .clkdm_offs       = OMAP4430_CM2_CORE_SDMA_CDOFFS,
        .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
        .omap_chip        = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
 
-#endif
+static struct clockdomain *clockdomains_omap44xx[] __initdata = {
+       &l4_cefuse_44xx_clkdm,
+       &l4_cfg_44xx_clkdm,
+       &tesla_44xx_clkdm,
+       &l3_gfx_44xx_clkdm,
+       &ivahd_44xx_clkdm,
+       &l4_secure_44xx_clkdm,
+       &l4_per_44xx_clkdm,
+       &abe_44xx_clkdm,
+       &l3_instr_44xx_clkdm,
+       &l3_init_44xx_clkdm,
+       &mpuss_44xx_clkdm,
+       &mpu0_44xx_clkdm,
+       &mpu1_44xx_clkdm,
+       &l3_emif_44xx_clkdm,
+       &l4_ao_44xx_clkdm,
+       &ducati_44xx_clkdm,
+       &l3_2_44xx_clkdm,
+       &l3_1_44xx_clkdm,
+       &l3_d2d_44xx_clkdm,
+       &iss_44xx_clkdm,
+       &l3_dss_44xx_clkdm,
+       &l4_wkup_44xx_clkdm,
+       &emu_sys_44xx_clkdm,
+       &l3_dma_44xx_clkdm,
+       NULL,
+};
 
-#endif
+void __init omap44xx_clockdomains_init(void)
+{
+       clkdm_init(clockdomains_omap44xx, NULL);
+}