]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/blobdiff - arch/arm/mach-omap2/omap_hwmod_7xx_data.c
arm: dra7: hwmod: remove opt clks enable flag from hwmod
[android-sdk/kernel-video.git] / arch / arm / mach-omap2 / omap_hwmod_7xx_data.c
index 08d4db4a4d6cb3c63349f7efa40a5bac80a8619d..77803511fbc7141444d2fdcc46dadcb498e10f1f 100644 (file)
@@ -729,6 +729,73 @@ static struct omap_hwmod dra7xx_dma_system_hwmod = {
        .dev_attr       = &dma_dev_attr,
 };
 
+/* tpcc */
+static struct omap_hwmod_class dra7xx_tpcc_hwmod_class = {
+       .name           = "tpcc",
+};
+
+struct omap_hwmod dra7xx_tpcc_hwmod = {
+       .name           = "tpcc",
+       .class          = &dra7xx_tpcc_hwmod_class,
+       .clkdm_name     = "l3main1_clkdm",
+       .main_clk       = "l3_iclk_div",
+       .prcm           = {
+               .omap4  = {
+                       .modulemode     = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
+/* 'tptc' class */
+static struct omap_hwmod_class dra7xx_tptc_hwmod_class = {
+       .name           = "tptc",
+};
+
+/* tptc0 */
+struct omap_hwmod dra7xx_tptc0_hwmod = {
+       .name           = "tptc0",
+       .class          = &dra7xx_tptc_hwmod_class,
+       .clkdm_name     = "l3main1_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY |
+                         HWMOD_NEEDS_REIDLE,
+       .main_clk       = "l3_iclk_div",
+       .prcm           = {
+               .omap4  = {
+                       .modulemode     = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
+/* tptc1 */
+struct omap_hwmod dra7xx_tptc1_hwmod = {
+       .name           = "tptc1",
+       .class          = &dra7xx_tptc_hwmod_class,
+       .clkdm_name     = "l3main1_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY |
+                         HWMOD_NEEDS_REIDLE,
+       .main_clk       = "l3_iclk_div",
+       .prcm           = {
+               .omap4  = {
+                       .modulemode     = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
+/* tptc2 */
+struct omap_hwmod dra7xx_tptc2_hwmod = {
+       .name           = "tptc2",
+       .class          = &dra7xx_tptc_hwmod_class,
+       .clkdm_name     = "l3main1_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY |
+                         HWMOD_NEEDS_REIDLE,
+       .main_clk       = "l3_iclk_div",
+       .prcm           = {
+               .omap4  = {
+                       .modulemode     = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
 /*
  * 'dsp' class
  * dsp sub-system
@@ -812,7 +879,6 @@ static struct omap_hwmod dra7xx_dss_hwmod = {
        .name           = "dss_core",
        .class          = &dra7xx_dss_hwmod_class,
        .clkdm_name     = "dss_clkdm",
-       .flags          = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
        .sdma_reqs      = dra7xx_dss_sdma_reqs,
        .main_clk       = "dss_dss_clk",
        .prcm = {
@@ -927,9 +993,9 @@ static struct omap_hwmod_class dra7xx_aes_hwmod_class = {
        .rev    = 2,
 };
 
-/* AES */
-static struct omap_hwmod dra7xx_aes_hwmod = {
-       .name           = "aes",
+/* AES1 */
+static struct omap_hwmod dra7xx_aes1_hwmod = {
+       .name           = "aes1",
        .class          = &dra7xx_aes_hwmod_class,
        .clkdm_name     = "l4sec_clkdm",
        .main_clk       = "l3_iclk_div",
@@ -942,6 +1008,21 @@ static struct omap_hwmod dra7xx_aes_hwmod = {
        },
 };
 
+/* AES2 */
+static struct omap_hwmod dra7xx_aes2_hwmod = {
+       .name           = "aes2",
+       .class          = &dra7xx_aes_hwmod_class,
+       .clkdm_name     = "l4sec_clkdm",
+       .main_clk       = "l3_iclk_div",
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4SEC_AES2_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4SEC_AES2_CONTEXT_OFFSET,
+                       .modulemode   = MODULEMODE_HWCTRL,
+               },
+       },
+};
+
 /* sha0 HIB2 (the 'P' (public) device) */
 static struct omap_hwmod_class_sysconfig dra7xx_sha0_sysc = {
        .rev_offs       = 0x100,
@@ -1230,8 +1311,7 @@ static struct omap_hwmod_class_sysconfig dra7xx_gpmc_sysc = {
        .syss_offs      = 0x0014,
        .sysc_flags     = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
                           SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
-       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
-                          SIDLE_SMART_WKUP),
+       .idlemodes      = SIDLE_FORCE | SIDLE_NO | SIDLE_SMART,
        .sysc_fields    = &omap_hwmod_sysc_type1,
 };
 
@@ -1246,8 +1326,6 @@ static struct omap_hwmod dra7xx_gpmc_hwmod = {
        .name           = "gpmc",
        .class          = &dra7xx_gpmc_hwmod_class,
        .clkdm_name     = "l3main1_clkdm",
-       .flags          = (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET |
-                          HWMOD_SWSUP_SIDLE),
        .main_clk       = "l3_iclk_div",
        .prcm = {
                .omap4 = {
@@ -1858,6 +1936,22 @@ static struct omap_hwmod dra7xx_mcasp7_hwmod = {
                .omap4 = {
                        .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP7_CLKCTRL_OFFSET,
                        .context_offs = DRA7XX_RM_L4PER2_MCASP7_CONTEXT_OFFSET,
+                       .modulemode = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
+/* mcasp8 */
+static struct omap_hwmod dra7xx_mcasp8_hwmod = {
+       .name           = "mcasp8",
+       .class          = &dra7xx_mcasp_hwmod_class,
+       .clkdm_name     = "l4per2_clkdm",
+       .main_clk       = "mcasp8_ahclkx_mux",
+       .flags          = HWMOD_SWSUP_SIDLE_ACT,
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP8_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4PER2_MCASP8_CONTEXT_OFFSET,
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
@@ -3423,6 +3517,51 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__dma_system = {
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
+
+/* l4_cfg -> tpcc */
+struct omap_hwmod_ocp_if dra7xx_l4_cfg__tpcc = {
+       .master         = &dra7xx_l4_cfg_hwmod,
+       .slave          = &dra7xx_tpcc_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU,
+};
+
+/* l4_cfg -> tptc0 */
+static struct omap_hwmod_addr_space dra7xx_tptc0_addr_space[] = {
+       {
+               .pa_start       = 0x43400000,
+               .pa_end         = 0x43400212,
+               .flags          = ADDR_TYPE_RT,
+       },
+       { }
+};
+
+struct omap_hwmod_ocp_if dra7xx_l4_cfg__tptc0 = {
+       .master         = &dra7xx_l4_cfg_hwmod,
+       .slave          = &dra7xx_tptc0_hwmod,
+       .clk            = "l3_iclk_div",
+       .addr           = dra7xx_tptc0_addr_space,
+       .user           = OCP_USER_MPU,
+};
+
+/* l4_cfg -> tptc1 */
+static struct omap_hwmod_addr_space dra7xx_tptc1_addr_space[] = {
+       {
+               .pa_start       = 0x43500000,
+               .pa_end         = 0x43500212,
+               .flags          = ADDR_TYPE_RT,
+       },
+       { }
+};
+
+struct omap_hwmod_ocp_if dra7xx_l4_cfg__tptc1 = {
+       .master         = &dra7xx_l4_cfg_hwmod,
+       .slave          = &dra7xx_tptc1_hwmod,
+       .clk            = "l3_iclk_div",
+       .addr           = dra7xx_tptc1_addr_space,
+       .user           = OCP_USER_MPU,
+};
+
 /* dsp1 -> l3_main_1 */
 static struct omap_hwmod_ocp_if dra7xx_dsp1__l3_main_1 = {
        .master         = &dra7xx_dsp1_hwmod,
@@ -3494,10 +3633,18 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__hdmi = {
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
-/* l3_main_1 -> aes */
-static struct omap_hwmod_ocp_if dra7xx_l3_main_1__aes = {
+/* l3_main_1 -> aes1 */
+static struct omap_hwmod_ocp_if dra7xx_l3_main_1__aes1 = {
+       .master         = &dra7xx_l3_main_1_hwmod,
+       .slave          = &dra7xx_aes1_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
+/* l3_main_1 -> aes2 */
+static struct omap_hwmod_ocp_if dra7xx_l3_main_1__aes2 = {
        .master         = &dra7xx_l3_main_1_hwmod,
-       .slave          = &dra7xx_aes_hwmod,
+       .slave          = &dra7xx_aes2_hwmod,
        .clk            = "l3_iclk_div",
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
@@ -3542,6 +3689,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp7 = {
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
+/* l4_per2 -> mcasp8 */
+static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp8 = {
+       .master         = &dra7xx_l4_per2_hwmod,
+       .slave          = &dra7xx_mcasp8_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
 static struct omap_hwmod_addr_space dra7xx_elm_addrs[] = {
        {
                .pa_start       = 0x48078000,
@@ -4535,16 +4690,21 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
        &dra7xx_l4_per2__cpgmac0,
        &dra7xx_gmac__mdio,
        &dra7xx_l4_cfg__dma_system,
+       &dra7xx_l4_cfg__tpcc,
+       &dra7xx_l4_cfg__tptc0,
+       &dra7xx_l4_cfg__tptc1,
        &dra7xx_l3_main_1__dss,
        &dra7xx_l3_main_1__dispc,
        &dra7xx_dsp1__l3_main_1,
        &dra7xx_l3_main_1__hdmi,
-       &dra7xx_l3_main_1__aes,
+       &dra7xx_l3_main_1__aes1,
+       &dra7xx_l3_main_1__aes2,
        &dra7xx_l3_main_1__sha0,
        &dra7xx_l4_per2__mcasp2,
        &dra7xx_l4_per2__mcasp3,
        &dra7xx_l4_per2__mcasp6,
        &dra7xx_l4_per2__mcasp7,
+       &dra7xx_l4_per2__mcasp8,
        &dra7xx_l4_per1__elm,
        &dra7xx_l4_wkup__gpio1,
        &dra7xx_l4_per1__gpio2,
@@ -4615,7 +4775,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
        &dra7xx_l4_per1__timer9,
        &dra7xx_l4_per1__timer10,
        &dra7xx_l4_per1__timer11,
-       &dra7xx_l4_wkup__timer12,
        &dra7xx_l4_per3__timer13,
        &dra7xx_l4_per3__timer14,
        &dra7xx_l4_per3__timer15,
@@ -4672,6 +4831,11 @@ static struct omap_hwmod_ocp_if *dra72x_hwmod_ocp_ifs[] __initdata = {
        NULL,
 };
 
+static struct omap_hwmod_ocp_if *dra7xx_gp_hwmod_ocp_ifs[] __initdata = {
+       &dra7xx_l4_wkup__timer12,
+       NULL,
+};
+
 int __init dra7xx_hwmod_init(void)
 {
        int ret;
@@ -4685,7 +4849,8 @@ int __init dra7xx_hwmod_init(void)
                */
                dra7xx_aes_hwmod_class.sysc = NULL;
                dra7xx_aes_hwmod_class.rev = 0;
-               dra7xx_aes_hwmod.prcm.omap4.modulemode = 0;
+               dra7xx_aes1_hwmod.prcm.omap4.modulemode = 0;
+               dra7xx_aes2_hwmod.prcm.omap4.modulemode = 0;
 
                dra7xx_des_hwmod_class.sysc = NULL;
                dra7xx_des_hwmod_class.rev = 0;
@@ -4702,6 +4867,9 @@ int __init dra7xx_hwmod_init(void)
 
        ret = omap_hwmod_register_links(dra7xx_hwmod_ocp_ifs);
 
+       if (!ret && OMAP2_DEVICE_TYPE_GP == omap_type())
+               ret = omap_hwmod_register_links(dra7xx_gp_hwmod_ocp_ifs);
+
        if (!ret && soc_is_dra74x())
                return omap_hwmod_register_links(dra74x_hwmod_ocp_ifs);
        else if (!ret && soc_is_dra72x())