diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_44xx_data.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 491 | 
1 files changed, 398 insertions, 93 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index e01143725b0..6201422c060 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -22,11 +22,13 @@  #include <plat/omap_hwmod.h>  #include <plat/cpu.h> +#include <plat/i2c.h>  #include <plat/gpio.h>  #include <plat/dma.h>  #include <plat/mcspi.h>  #include <plat/mcbsp.h>  #include <plat/mmc.h> +#include <plat/i2c.h>  #include "omap_hwmod_common_data.h" @@ -121,9 +123,16 @@ static struct omap_hwmod_ocp_if *omap44xx_dmm_slaves[] = {  static struct omap_hwmod omap44xx_dmm_hwmod = {  	.name		= "dmm",  	.class		= &omap44xx_dmm_hwmod_class, -	.mpu_irqs	= omap44xx_dmm_irqs, +	.clkdm_name	= "l3_emif_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_MEMIF_DMM_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_MEMIF_DMM_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_dmm_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dmm_slaves), +	.mpu_irqs	= omap44xx_dmm_irqs,  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),  }; @@ -171,6 +180,13 @@ static struct omap_hwmod_ocp_if *omap44xx_emif_fw_slaves[] = {  static struct omap_hwmod omap44xx_emif_fw_hwmod = {  	.name		= "emif_fw",  	.class		= &omap44xx_emif_fw_hwmod_class, +	.clkdm_name	= "l3_emif_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_MEMIF_EMIF_FW_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_MEMIF_EMIF_FW_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_emif_fw_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_emif_fw_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -210,6 +226,14 @@ static struct omap_hwmod_ocp_if *omap44xx_l3_instr_slaves[] = {  static struct omap_hwmod omap44xx_l3_instr_hwmod = {  	.name		= "l3_instr",  	.class		= &omap44xx_l3_hwmod_class, +	.clkdm_name	= "l3_instr_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL, +		}, +	},  	.slaves		= omap44xx_l3_instr_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_instr_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -302,7 +326,14 @@ static struct omap_hwmod_ocp_if *omap44xx_l3_main_1_slaves[] = {  static struct omap_hwmod omap44xx_l3_main_1_hwmod = {  	.name		= "l3_main_1",  	.class		= &omap44xx_l3_hwmod_class, +	.clkdm_name	= "l3_1_clkdm",  	.mpu_irqs	= omap44xx_l3_main_1_irqs, +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L3_1_L3_1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3_1_L3_1_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_l3_main_1_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -398,6 +429,13 @@ static struct omap_hwmod_ocp_if *omap44xx_l3_main_2_slaves[] = {  static struct omap_hwmod omap44xx_l3_main_2_hwmod = {  	.name		= "l3_main_2",  	.class		= &omap44xx_l3_hwmod_class, +	.clkdm_name	= "l3_2_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L3_2_L3_2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3_2_L3_2_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_l3_main_2_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_2_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -448,6 +486,14 @@ static struct omap_hwmod_ocp_if *omap44xx_l3_main_3_slaves[] = {  static struct omap_hwmod omap44xx_l3_main_3_hwmod = {  	.name		= "l3_main_3",  	.class		= &omap44xx_l3_hwmod_class, +	.clkdm_name	= "l3_instr_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INSTR_L3_3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL, +		}, +	},  	.slaves		= omap44xx_l3_main_3_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_3_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -505,6 +551,12 @@ static struct omap_hwmod_ocp_if *omap44xx_l4_abe_slaves[] = {  static struct omap_hwmod omap44xx_l4_abe_hwmod = {  	.name		= "l4_abe",  	.class		= &omap44xx_l4_hwmod_class, +	.clkdm_name	= "abe_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET, +		}, +	},  	.slaves		= omap44xx_l4_abe_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_abe_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -527,6 +579,13 @@ static struct omap_hwmod_ocp_if *omap44xx_l4_cfg_slaves[] = {  static struct omap_hwmod omap44xx_l4_cfg_hwmod = {  	.name		= "l4_cfg",  	.class		= &omap44xx_l4_hwmod_class, +	.clkdm_name	= "l4_cfg_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4CFG_L4_CFG_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_l4_cfg_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_cfg_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -549,6 +608,13 @@ static struct omap_hwmod_ocp_if *omap44xx_l4_per_slaves[] = {  static struct omap_hwmod omap44xx_l4_per_hwmod = {  	.name		= "l4_per",  	.class		= &omap44xx_l4_hwmod_class, +	.clkdm_name	= "l4_per_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_L4PER_L4PER_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_L4_PER_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_l4_per_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_per_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -571,6 +637,13 @@ static struct omap_hwmod_ocp_if *omap44xx_l4_wkup_slaves[] = {  static struct omap_hwmod omap44xx_l4_wkup_hwmod = {  	.name		= "l4_wkup",  	.class		= &omap44xx_l4_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm", +	.prcm = { +		.omap4 = { +			.clkctrl_offs = OMAP4_CM_WKUP_L4WKUP_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_L4WKUP_CONTEXT_OFFSET, +		}, +	},  	.slaves		= omap44xx_l4_wkup_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_wkup_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -601,6 +674,7 @@ static struct omap_hwmod_ocp_if *omap44xx_mpu_private_slaves[] = {  static struct omap_hwmod omap44xx_mpu_private_hwmod = {  	.name		= "mpu_private",  	.class		= &omap44xx_mpu_bus_hwmod_class, +	.clkdm_name	= "mpuss_clkdm",  	.slaves		= omap44xx_mpu_private_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_mpu_private_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -739,12 +813,15 @@ static struct omap_hwmod_ocp_if *omap44xx_aess_slaves[] = {  static struct omap_hwmod omap44xx_aess_hwmod = {  	.name		= "aess",  	.class		= &omap44xx_aess_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_aess_irqs,  	.sdma_reqs	= omap44xx_aess_sdma_reqs,  	.main_clk	= "aess_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_AESS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_AESS_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_aess_slaves, @@ -771,9 +848,10 @@ static struct omap_hwmod_opt_clk bandgap_opt_clks[] = {  static struct omap_hwmod omap44xx_bandgap_hwmod = {  	.name		= "bandgap",  	.class		= &omap44xx_bandgap_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_BANDGAP_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_BANDGAP_CLKCTRL_OFFSET,  		},  	},  	.opt_clks	= bandgap_opt_clks, @@ -828,11 +906,13 @@ static struct omap_hwmod_ocp_if *omap44xx_counter_32k_slaves[] = {  static struct omap_hwmod omap44xx_counter_32k_hwmod = {  	.name		= "counter_32k",  	.class		= &omap44xx_counter_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.flags		= HWMOD_SWSUP_SIDLE,  	.main_clk	= "sys_32k_ck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_SYNCTIMER_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_SYNCTIMER_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_SYNCTIMER_CONTEXT_OFFSET,  		},  	},  	.slaves		= omap44xx_counter_32k_slaves, @@ -911,11 +991,13 @@ static struct omap_hwmod_ocp_if *omap44xx_dma_system_slaves[] = {  static struct omap_hwmod omap44xx_dma_system_hwmod = {  	.name		= "dma_system",  	.class		= &omap44xx_dma_hwmod_class, +	.clkdm_name	= "l3_dma_clkdm",  	.mpu_irqs	= omap44xx_dma_system_irqs,  	.main_clk	= "l3_div_ck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_SDMA_SDMA_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_SDMA_SDMA_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_SDMA_SDMA_CONTEXT_OFFSET,  		},  	},  	.dev_attr	= &dma_dev_attr, @@ -1003,12 +1085,15 @@ static struct omap_hwmod_ocp_if *omap44xx_dmic_slaves[] = {  static struct omap_hwmod omap44xx_dmic_hwmod = {  	.name		= "dmic",  	.class		= &omap44xx_dmic_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_dmic_irqs,  	.sdma_reqs	= omap44xx_dmic_sdma_reqs,  	.main_clk	= "dmic_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_DMIC_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_DMIC_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_dmic_slaves, @@ -1070,12 +1155,13 @@ static struct omap_hwmod_ocp_if *omap44xx_dsp_slaves[] = {  static struct omap_hwmod omap44xx_dsp_c0_hwmod = {  	.name		= "dsp_c0",  	.class		= &omap44xx_dsp_hwmod_class, +	.clkdm_name	= "tesla_clkdm",  	.flags		= HWMOD_INIT_NO_RESET,  	.rst_lines	= omap44xx_dsp_c0_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_c0_resets),  	.prcm = {  		.omap4 = { -			.rstctrl_reg = OMAP4430_RM_TESLA_RSTCTRL, +			.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET,  		},  	},  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1084,14 +1170,17 @@ static struct omap_hwmod omap44xx_dsp_c0_hwmod = {  static struct omap_hwmod omap44xx_dsp_hwmod = {  	.name		= "dsp",  	.class		= &omap44xx_dsp_hwmod_class, +	.clkdm_name	= "tesla_clkdm",  	.mpu_irqs	= omap44xx_dsp_irqs,  	.rst_lines	= omap44xx_dsp_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_resets),  	.main_clk	= "dsp_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_TESLA_TESLA_CLKCTRL, -			.rstctrl_reg = OMAP4430_RM_TESLA_RSTCTRL, +			.clkctrl_offs = OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET, +			.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET, +			.context_offs = OMAP4_RM_TESLA_TESLA_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.slaves		= omap44xx_dsp_slaves, @@ -1136,7 +1225,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1175,10 +1264,12 @@ static struct omap_hwmod_opt_clk dss_opt_clks[] = {  static struct omap_hwmod omap44xx_dss_hwmod = {  	.name		= "dss_core",  	.class		= &omap44xx_dss_hwmod_class, -	.main_clk	= "dss_fck", +	.clkdm_name	= "l3_dss_clkdm", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	},  	.opt_clks	= dss_opt_clks, @@ -1238,7 +1329,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_dispc_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dispc = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_dispc_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_dispc_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1267,17 +1358,27 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dispc_slaves[] = {  	&omap44xx_l4_per__dss_dispc,  }; +static struct omap_hwmod_opt_clk dss_dispc_opt_clks[] = { +	{ .role = "sys_clk", .clk = "dss_sys_clk" }, +	{ .role = "tv_clk", .clk = "dss_tv_clk" }, +	{ .role = "hdmi_clk", .clk = "dss_48mhz_clk" }, +}; +  static struct omap_hwmod omap44xx_dss_dispc_hwmod = {  	.name		= "dss_dispc",  	.class		= &omap44xx_dispc_hwmod_class, +	.clkdm_name	= "l3_dss_clkdm",  	.mpu_irqs	= omap44xx_dss_dispc_irqs,  	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs, -	.main_clk	= "dss_fck", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	}, +	.opt_clks	= dss_dispc_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(dss_dispc_opt_clks),  	.slaves		= omap44xx_dss_dispc_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1329,7 +1430,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_dsi1_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dsi1 = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_dsi1_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_dsi1_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1358,17 +1459,25 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dsi1_slaves[] = {  	&omap44xx_l4_per__dss_dsi1,  }; +static struct omap_hwmod_opt_clk dss_dsi1_opt_clks[] = { +	{ .role = "sys_clk", .clk = "dss_sys_clk" }, +}; +  static struct omap_hwmod omap44xx_dss_dsi1_hwmod = {  	.name		= "dss_dsi1",  	.class		= &omap44xx_dsi_hwmod_class, +	.clkdm_name	= "l3_dss_clkdm",  	.mpu_irqs	= omap44xx_dss_dsi1_irqs,  	.sdma_reqs	= omap44xx_dss_dsi1_sdma_reqs, -	.main_clk	= "dss_fck", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	}, +	.opt_clks	= dss_dsi1_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(dss_dsi1_opt_clks),  	.slaves		= omap44xx_dss_dsi1_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1399,7 +1508,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_dsi2_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dsi2 = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_dsi2_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_dsi2_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1428,17 +1537,25 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dsi2_slaves[] = {  	&omap44xx_l4_per__dss_dsi2,  }; +static struct omap_hwmod_opt_clk dss_dsi2_opt_clks[] = { +	{ .role = "sys_clk", .clk = "dss_sys_clk" }, +}; +  static struct omap_hwmod omap44xx_dss_dsi2_hwmod = {  	.name		= "dss_dsi2",  	.class		= &omap44xx_dsi_hwmod_class, +	.clkdm_name	= "l3_dss_clkdm",  	.mpu_irqs	= omap44xx_dss_dsi2_irqs,  	.sdma_reqs	= omap44xx_dss_dsi2_sdma_reqs, -	.main_clk	= "dss_fck", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	}, +	.opt_clks	= dss_dsi2_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(dss_dsi2_opt_clks),  	.slaves		= omap44xx_dss_dsi2_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1489,7 +1606,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_hdmi_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_hdmi = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_hdmi_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_hdmi_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1518,17 +1635,25 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_hdmi_slaves[] = {  	&omap44xx_l4_per__dss_hdmi,  }; +static struct omap_hwmod_opt_clk dss_hdmi_opt_clks[] = { +	{ .role = "sys_clk", .clk = "dss_sys_clk" }, +}; +  static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {  	.name		= "dss_hdmi",  	.class		= &omap44xx_hdmi_hwmod_class, +	.clkdm_name	= "l3_dss_clkdm",  	.mpu_irqs	= omap44xx_dss_hdmi_irqs,  	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs, -	.main_clk	= "dss_fck", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	}, +	.opt_clks	= dss_hdmi_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(dss_hdmi_opt_clks),  	.slaves		= omap44xx_dss_hdmi_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1574,7 +1699,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_rfbi_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_rfbi = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_rfbi_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_rfbi_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1603,16 +1728,24 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_rfbi_slaves[] = {  	&omap44xx_l4_per__dss_rfbi,  }; +static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = { +	{ .role = "ick", .clk = "dss_fck" }, +}; +  static struct omap_hwmod omap44xx_dss_rfbi_hwmod = {  	.name		= "dss_rfbi",  	.class		= &omap44xx_rfbi_hwmod_class, +	.clkdm_name	= "l3_dss_clkdm",  	.sdma_reqs	= omap44xx_dss_rfbi_sdma_reqs, -	.main_clk	= "dss_fck", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	}, +	.opt_clks	= dss_rfbi_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(dss_rfbi_opt_clks),  	.slaves		= omap44xx_dss_rfbi_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_rfbi_slaves),  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -1642,7 +1775,7 @@ static struct omap_hwmod_addr_space omap44xx_dss_venc_dma_addrs[] = {  static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_venc = {  	.master		= &omap44xx_l3_main_2_hwmod,  	.slave		= &omap44xx_dss_venc_hwmod, -	.clk		= "l3_div_ck", +	.clk		= "dss_fck",  	.addr		= omap44xx_dss_venc_dma_addrs,  	.user		= OCP_USER_SDMA,  }; @@ -1674,10 +1807,12 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_venc_slaves[] = {  static struct omap_hwmod omap44xx_dss_venc_hwmod = {  	.name		= "dss_venc",  	.class		= &omap44xx_venc_hwmod_class, -	.main_clk	= "dss_fck", +	.clkdm_name	= "l3_dss_clkdm", +	.main_clk	= "dss_dss_clk",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,  		},  	},  	.slaves		= omap44xx_dss_venc_slaves, @@ -1751,11 +1886,14 @@ static struct omap_hwmod_opt_clk gpio1_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio1_hwmod = {  	.name		= "gpio1",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.mpu_irqs	= omap44xx_gpio1_irqs,  	.main_clk	= "gpio1_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_GPIO1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_GPIO1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio1_opt_clks, @@ -1803,12 +1941,15 @@ static struct omap_hwmod_opt_clk gpio2_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio2_hwmod = {  	.name		= "gpio2",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,  	.mpu_irqs	= omap44xx_gpio2_irqs,  	.main_clk	= "gpio2_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_GPIO2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_GPIO2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio2_opt_clks, @@ -1856,12 +1997,15 @@ static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio3_hwmod = {  	.name		= "gpio3",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,  	.mpu_irqs	= omap44xx_gpio3_irqs,  	.main_clk	= "gpio3_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_GPIO3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_GPIO3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio3_opt_clks, @@ -1909,12 +2053,15 @@ static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio4_hwmod = {  	.name		= "gpio4",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,  	.mpu_irqs	= omap44xx_gpio4_irqs,  	.main_clk	= "gpio4_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_GPIO4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_GPIO4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio4_opt_clks, @@ -1962,12 +2109,15 @@ static struct omap_hwmod_opt_clk gpio5_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio5_hwmod = {  	.name		= "gpio5",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,  	.mpu_irqs	= omap44xx_gpio5_irqs,  	.main_clk	= "gpio5_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_GPIO5_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_GPIO5_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio5_opt_clks, @@ -2015,12 +2165,15 @@ static struct omap_hwmod_opt_clk gpio6_opt_clks[] = {  static struct omap_hwmod omap44xx_gpio6_hwmod = {  	.name		= "gpio6",  	.class		= &omap44xx_gpio_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,  	.mpu_irqs	= omap44xx_gpio6_irqs,  	.main_clk	= "gpio6_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_GPIO6_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_GPIO6_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_GPIO6_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= gpio6_opt_clks, @@ -2094,11 +2247,14 @@ static struct omap_hwmod_ocp_if *omap44xx_hsi_slaves[] = {  static struct omap_hwmod omap44xx_hsi_hwmod = {  	.name		= "hsi",  	.class		= &omap44xx_hsi_hwmod_class, +	.clkdm_name	= "l3_init_clkdm",  	.mpu_irqs	= omap44xx_hsi_irqs,  	.main_clk	= "hsi_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L3INIT_HSI_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INIT_HSI_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.slaves		= omap44xx_hsi_slaves, @@ -2127,6 +2283,12 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = {  static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {  	.name	= "i2c",  	.sysc	= &omap44xx_i2c_sysc, +	.rev	= OMAP_I2C_IP_VERSION_2, +	.reset	= &omap_i2c_reset, +}; + +static struct omap_i2c_dev_attr i2c_dev_attr = { +	.flags	= OMAP_I2C_FLAG_BUS_SHIFT_NONE,  };  /* i2c1 */ @@ -2168,17 +2330,21 @@ static struct omap_hwmod_ocp_if *omap44xx_i2c1_slaves[] = {  static struct omap_hwmod omap44xx_i2c1_hwmod = {  	.name		= "i2c1",  	.class		= &omap44xx_i2c_hwmod_class, -	.flags		= HWMOD_INIT_NO_RESET, +	.clkdm_name	= "l4_per_clkdm", +	.flags		= HWMOD_16BIT_REG,  	.mpu_irqs	= omap44xx_i2c1_irqs,  	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,  	.main_clk	= "i2c1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_I2C1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_I2C1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_i2c1_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c1_slaves), +	.dev_attr	= &i2c_dev_attr,  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),  }; @@ -2221,17 +2387,21 @@ static struct omap_hwmod_ocp_if *omap44xx_i2c2_slaves[] = {  static struct omap_hwmod omap44xx_i2c2_hwmod = {  	.name		= "i2c2",  	.class		= &omap44xx_i2c_hwmod_class, -	.flags		= HWMOD_INIT_NO_RESET, +	.clkdm_name	= "l4_per_clkdm", +	.flags		= HWMOD_16BIT_REG,  	.mpu_irqs	= omap44xx_i2c2_irqs,  	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,  	.main_clk	= "i2c2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_I2C2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_I2C2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_i2c2_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c2_slaves), +	.dev_attr	= &i2c_dev_attr,  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),  }; @@ -2274,17 +2444,21 @@ static struct omap_hwmod_ocp_if *omap44xx_i2c3_slaves[] = {  static struct omap_hwmod omap44xx_i2c3_hwmod = {  	.name		= "i2c3",  	.class		= &omap44xx_i2c_hwmod_class, -	.flags		= HWMOD_INIT_NO_RESET, +	.clkdm_name	= "l4_per_clkdm", +	.flags		= HWMOD_16BIT_REG,  	.mpu_irqs	= omap44xx_i2c3_irqs,  	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,  	.main_clk	= "i2c3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_I2C3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_I2C3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_i2c3_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c3_slaves), +	.dev_attr	= &i2c_dev_attr,  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),  }; @@ -2327,17 +2501,21 @@ static struct omap_hwmod_ocp_if *omap44xx_i2c4_slaves[] = {  static struct omap_hwmod omap44xx_i2c4_hwmod = {  	.name		= "i2c4",  	.class		= &omap44xx_i2c_hwmod_class, -	.flags		= HWMOD_INIT_NO_RESET, +	.clkdm_name	= "l4_per_clkdm", +	.flags		= HWMOD_16BIT_REG,  	.mpu_irqs	= omap44xx_i2c4_irqs,  	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,  	.main_clk	= "i2c4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_I2C4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_I2C4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_I2C4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_i2c4_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c4_slaves), +	.dev_attr	= &i2c_dev_attr,  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),  }; @@ -2390,12 +2568,13 @@ static struct omap_hwmod_ocp_if *omap44xx_ipu_slaves[] = {  static struct omap_hwmod omap44xx_ipu_c0_hwmod = {  	.name		= "ipu_c0",  	.class		= &omap44xx_ipu_hwmod_class, +	.clkdm_name	= "ducati_clkdm",  	.flags		= HWMOD_INIT_NO_RESET,  	.rst_lines	= omap44xx_ipu_c0_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c0_resets),  	.prcm = {  		.omap4 = { -			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL, +			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,  		},  	},  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -2405,12 +2584,13 @@ static struct omap_hwmod omap44xx_ipu_c0_hwmod = {  static struct omap_hwmod omap44xx_ipu_c1_hwmod = {  	.name		= "ipu_c1",  	.class		= &omap44xx_ipu_hwmod_class, +	.clkdm_name	= "ducati_clkdm",  	.flags		= HWMOD_INIT_NO_RESET,  	.rst_lines	= omap44xx_ipu_c1_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c1_resets),  	.prcm = {  		.omap4 = { -			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL, +			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,  		},  	},  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -2419,14 +2599,17 @@ static struct omap_hwmod omap44xx_ipu_c1_hwmod = {  static struct omap_hwmod omap44xx_ipu_hwmod = {  	.name		= "ipu",  	.class		= &omap44xx_ipu_hwmod_class, +	.clkdm_name	= "ducati_clkdm",  	.mpu_irqs	= omap44xx_ipu_irqs,  	.rst_lines	= omap44xx_ipu_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_resets),  	.main_clk	= "ipu_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_DUCATI_DUCATI_CLKCTRL, -			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL, +			.clkctrl_offs = OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET, +			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET, +			.context_offs = OMAP4_RM_DUCATI_DUCATI_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.slaves		= omap44xx_ipu_slaves, @@ -2506,12 +2689,15 @@ static struct omap_hwmod_opt_clk iss_opt_clks[] = {  static struct omap_hwmod omap44xx_iss_hwmod = {  	.name		= "iss",  	.class		= &omap44xx_iss_hwmod_class, +	.clkdm_name	= "iss_clkdm",  	.mpu_irqs	= omap44xx_iss_irqs,  	.sdma_reqs	= omap44xx_iss_sdma_reqs,  	.main_clk	= "iss_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_CAM_ISS_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_CAM_ISS_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.opt_clks	= iss_opt_clks, @@ -2586,12 +2772,13 @@ static struct omap_hwmod_ocp_if *omap44xx_iva_slaves[] = {  static struct omap_hwmod omap44xx_iva_seq0_hwmod = {  	.name		= "iva_seq0",  	.class		= &omap44xx_iva_hwmod_class, +	.clkdm_name	= "ivahd_clkdm",  	.flags		= HWMOD_INIT_NO_RESET,  	.rst_lines	= omap44xx_iva_seq0_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq0_resets),  	.prcm = {  		.omap4 = { -			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL, +			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,  		},  	},  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -2601,12 +2788,13 @@ static struct omap_hwmod omap44xx_iva_seq0_hwmod = {  static struct omap_hwmod omap44xx_iva_seq1_hwmod = {  	.name		= "iva_seq1",  	.class		= &omap44xx_iva_hwmod_class, +	.clkdm_name	= "ivahd_clkdm",  	.flags		= HWMOD_INIT_NO_RESET,  	.rst_lines	= omap44xx_iva_seq1_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq1_resets),  	.prcm = {  		.omap4 = { -			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL, +			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,  		},  	},  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430), @@ -2615,14 +2803,17 @@ static struct omap_hwmod omap44xx_iva_seq1_hwmod = {  static struct omap_hwmod omap44xx_iva_hwmod = {  	.name		= "iva",  	.class		= &omap44xx_iva_hwmod_class, +	.clkdm_name	= "ivahd_clkdm",  	.mpu_irqs	= omap44xx_iva_irqs,  	.rst_lines	= omap44xx_iva_resets,  	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_resets),  	.main_clk	= "iva_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_IVAHD_IVAHD_CLKCTRL, -			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL, +			.clkctrl_offs = OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET, +			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET, +			.context_offs = OMAP4_RM_IVAHD_IVAHD_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.slaves		= omap44xx_iva_slaves, @@ -2687,11 +2878,14 @@ static struct omap_hwmod_ocp_if *omap44xx_kbd_slaves[] = {  static struct omap_hwmod omap44xx_kbd_hwmod = {  	.name		= "kbd",  	.class		= &omap44xx_kbd_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.mpu_irqs	= omap44xx_kbd_irqs,  	.main_clk	= "kbd_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_KEYBOARD_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_KEYBOARD_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_kbd_slaves, @@ -2752,10 +2946,12 @@ static struct omap_hwmod_ocp_if *omap44xx_mailbox_slaves[] = {  static struct omap_hwmod omap44xx_mailbox_hwmod = {  	.name		= "mailbox",  	.class		= &omap44xx_mailbox_hwmod_class, +	.clkdm_name	= "l4_cfg_clkdm",  	.mpu_irqs	= omap44xx_mailbox_irqs,  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4CFG_MAILBOX_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4CFG_MAILBOX_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4CFG_MAILBOX_CONTEXT_OFFSET,  		},  	},  	.slaves		= omap44xx_mailbox_slaves, @@ -2842,12 +3038,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp1_slaves[] = {  static struct omap_hwmod omap44xx_mcbsp1_hwmod = {  	.name		= "mcbsp1",  	.class		= &omap44xx_mcbsp_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_mcbsp1_irqs,  	.sdma_reqs	= omap44xx_mcbsp1_sdma_reqs,  	.main_clk	= "mcbsp1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_MCBSP1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_MCBSP1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_MCBSP1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mcbsp1_slaves, @@ -2915,12 +3114,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp2_slaves[] = {  static struct omap_hwmod omap44xx_mcbsp2_hwmod = {  	.name		= "mcbsp2",  	.class		= &omap44xx_mcbsp_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_mcbsp2_irqs,  	.sdma_reqs	= omap44xx_mcbsp2_sdma_reqs,  	.main_clk	= "mcbsp2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_MCBSP2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_MCBSP2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_MCBSP2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mcbsp2_slaves, @@ -2988,12 +3190,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp3_slaves[] = {  static struct omap_hwmod omap44xx_mcbsp3_hwmod = {  	.name		= "mcbsp3",  	.class		= &omap44xx_mcbsp_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_mcbsp3_irqs,  	.sdma_reqs	= omap44xx_mcbsp3_sdma_reqs,  	.main_clk	= "mcbsp3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_MCBSP3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_MCBSP3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_MCBSP3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mcbsp3_slaves, @@ -3040,12 +3245,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp4_slaves[] = {  static struct omap_hwmod omap44xx_mcbsp4_hwmod = {  	.name		= "mcbsp4",  	.class		= &omap44xx_mcbsp_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mcbsp4_irqs,  	.sdma_reqs	= omap44xx_mcbsp4_sdma_reqs,  	.main_clk	= "mcbsp4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MCBSP4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MCBSP4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MCBSP4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mcbsp4_slaves, @@ -3132,12 +3340,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mcpdm_slaves[] = {  static struct omap_hwmod omap44xx_mcpdm_hwmod = {  	.name		= "mcpdm",  	.class		= &omap44xx_mcpdm_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_mcpdm_irqs,  	.sdma_reqs	= omap44xx_mcpdm_sdma_reqs,  	.main_clk	= "mcpdm_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_PDM_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_PDM_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mcpdm_slaves, @@ -3217,12 +3428,15 @@ static struct omap2_mcspi_dev_attr mcspi1_dev_attr = {  static struct omap_hwmod omap44xx_mcspi1_hwmod = {  	.name		= "mcspi1",  	.class		= &omap44xx_mcspi_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mcspi1_irqs,  	.sdma_reqs	= omap44xx_mcspi1_sdma_reqs,  	.main_clk	= "mcspi1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MCSPI1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MCSPI1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MCSPI1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.dev_attr	= &mcspi1_dev_attr, @@ -3277,12 +3491,15 @@ static struct omap2_mcspi_dev_attr mcspi2_dev_attr = {  static struct omap_hwmod omap44xx_mcspi2_hwmod = {  	.name		= "mcspi2",  	.class		= &omap44xx_mcspi_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mcspi2_irqs,  	.sdma_reqs	= omap44xx_mcspi2_sdma_reqs,  	.main_clk	= "mcspi2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MCSPI2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MCSPI2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MCSPI2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.dev_attr	= &mcspi2_dev_attr, @@ -3337,12 +3554,15 @@ static struct omap2_mcspi_dev_attr mcspi3_dev_attr = {  static struct omap_hwmod omap44xx_mcspi3_hwmod = {  	.name		= "mcspi3",  	.class		= &omap44xx_mcspi_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mcspi3_irqs,  	.sdma_reqs	= omap44xx_mcspi3_sdma_reqs,  	.main_clk	= "mcspi3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MCSPI3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MCSPI3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MCSPI3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.dev_attr	= &mcspi3_dev_attr, @@ -3395,12 +3615,15 @@ static struct omap2_mcspi_dev_attr mcspi4_dev_attr = {  static struct omap_hwmod omap44xx_mcspi4_hwmod = {  	.name		= "mcspi4",  	.class		= &omap44xx_mcspi_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mcspi4_irqs,  	.sdma_reqs	= omap44xx_mcspi4_sdma_reqs,  	.main_clk	= "mcspi4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MCSPI4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MCSPI4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MCSPI4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.dev_attr	= &mcspi4_dev_attr, @@ -3479,12 +3702,15 @@ static struct omap_mmc_dev_attr mmc1_dev_attr = {  static struct omap_hwmod omap44xx_mmc1_hwmod = {  	.name		= "mmc1",  	.class		= &omap44xx_mmc_hwmod_class, +	.clkdm_name	= "l3_init_clkdm",  	.mpu_irqs	= omap44xx_mmc1_irqs,  	.sdma_reqs	= omap44xx_mmc1_sdma_reqs,  	.main_clk	= "mmc1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L3INIT_MMC1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L3INIT_MMC1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INIT_MMC1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.dev_attr	= &mmc1_dev_attr, @@ -3538,12 +3764,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mmc2_slaves[] = {  static struct omap_hwmod omap44xx_mmc2_hwmod = {  	.name		= "mmc2",  	.class		= &omap44xx_mmc_hwmod_class, +	.clkdm_name	= "l3_init_clkdm",  	.mpu_irqs	= omap44xx_mmc2_irqs,  	.sdma_reqs	= omap44xx_mmc2_sdma_reqs,  	.main_clk	= "mmc2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L3INIT_MMC2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L3INIT_MMC2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INIT_MMC2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mmc2_slaves, @@ -3592,12 +3821,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mmc3_slaves[] = {  static struct omap_hwmod omap44xx_mmc3_hwmod = {  	.name		= "mmc3",  	.class		= &omap44xx_mmc_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mmc3_irqs,  	.sdma_reqs	= omap44xx_mmc3_sdma_reqs,  	.main_clk	= "mmc3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MMCSD3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MMCSD3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MMCSD3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mmc3_slaves, @@ -3644,13 +3876,16 @@ static struct omap_hwmod_ocp_if *omap44xx_mmc4_slaves[] = {  static struct omap_hwmod omap44xx_mmc4_hwmod = {  	.name		= "mmc4",  	.class		= &omap44xx_mmc_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mmc4_irqs,  	.sdma_reqs	= omap44xx_mmc4_sdma_reqs,  	.main_clk	= "mmc4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MMCSD4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MMCSD4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MMCSD4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mmc4_slaves, @@ -3697,12 +3932,15 @@ static struct omap_hwmod_ocp_if *omap44xx_mmc5_slaves[] = {  static struct omap_hwmod omap44xx_mmc5_hwmod = {  	.name		= "mmc5",  	.class		= &omap44xx_mmc_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_mmc5_irqs,  	.sdma_reqs	= omap44xx_mmc5_sdma_reqs,  	.main_clk	= "mmc5_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_MMCSD5_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_MMCSD5_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_MMCSD5_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_mmc5_slaves, @@ -3737,12 +3975,14 @@ static struct omap_hwmod_ocp_if *omap44xx_mpu_masters[] = {  static struct omap_hwmod omap44xx_mpu_hwmod = {  	.name		= "mpu",  	.class		= &omap44xx_mpu_hwmod_class, +	.clkdm_name	= "mpuss_clkdm",  	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,  	.mpu_irqs	= omap44xx_mpu_irqs,  	.main_clk	= "dpll_mpu_m2_ck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_MPU_MPU_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_MPU_MPU_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_MPU_MPU_CONTEXT_OFFSET,  		},  	},  	.masters	= omap44xx_mpu_masters, @@ -3809,13 +4049,16 @@ static struct omap_hwmod_ocp_if *omap44xx_smartreflex_core_slaves[] = {  static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {  	.name		= "smartreflex_core",  	.class		= &omap44xx_smartreflex_hwmod_class, +	.clkdm_name	= "l4_ao_clkdm",  	.mpu_irqs	= omap44xx_smartreflex_core_irqs,  	.main_clk	= "smartreflex_core_fck",  	.vdd_name	= "core",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ALWON_SR_CORE_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_smartreflex_core_slaves, @@ -3856,12 +4099,15 @@ static struct omap_hwmod_ocp_if *omap44xx_smartreflex_iva_slaves[] = {  static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {  	.name		= "smartreflex_iva",  	.class		= &omap44xx_smartreflex_hwmod_class, +	.clkdm_name	= "l4_ao_clkdm",  	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,  	.main_clk	= "smartreflex_iva_fck",  	.vdd_name	= "iva",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ALWON_SR_IVA_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_smartreflex_iva_slaves, @@ -3902,12 +4148,15 @@ static struct omap_hwmod_ocp_if *omap44xx_smartreflex_mpu_slaves[] = {  static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {  	.name		= "smartreflex_mpu",  	.class		= &omap44xx_smartreflex_hwmod_class, +	.clkdm_name	= "l4_ao_clkdm",  	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,  	.main_clk	= "smartreflex_mpu_fck",  	.vdd_name	= "mpu",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ALWON_SR_MPU_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_smartreflex_mpu_slaves, @@ -3966,9 +4215,11 @@ static struct omap_hwmod_ocp_if *omap44xx_spinlock_slaves[] = {  static struct omap_hwmod omap44xx_spinlock_hwmod = {  	.name		= "spinlock",  	.class		= &omap44xx_spinlock_hwmod_class, +	.clkdm_name	= "l4_cfg_clkdm",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4CFG_HW_SEM_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4CFG_HW_SEM_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4CFG_HW_SEM_CONTEXT_OFFSET,  		},  	},  	.slaves		= omap44xx_spinlock_slaves, @@ -4047,11 +4298,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer1_slaves[] = {  static struct omap_hwmod omap44xx_timer1_hwmod = {  	.name		= "timer1",  	.class		= &omap44xx_timer_1ms_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.mpu_irqs	= omap44xx_timer1_irqs,  	.main_clk	= "timer1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_TIMER1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_TIMER1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_TIMER1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer1_slaves, @@ -4092,11 +4346,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer2_slaves[] = {  static struct omap_hwmod omap44xx_timer2_hwmod = {  	.name		= "timer2",  	.class		= &omap44xx_timer_1ms_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer2_irqs,  	.main_clk	= "timer2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer2_slaves, @@ -4137,11 +4394,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer3_slaves[] = {  static struct omap_hwmod omap44xx_timer3_hwmod = {  	.name		= "timer3",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer3_irqs,  	.main_clk	= "timer3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer3_slaves, @@ -4182,11 +4442,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer4_slaves[] = {  static struct omap_hwmod omap44xx_timer4_hwmod = {  	.name		= "timer4",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer4_irqs,  	.main_clk	= "timer4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer4_slaves, @@ -4246,11 +4509,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer5_slaves[] = {  static struct omap_hwmod omap44xx_timer5_hwmod = {  	.name		= "timer5",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_timer5_irqs,  	.main_clk	= "timer5_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_TIMER5_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_TIMER5_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer5_slaves, @@ -4310,12 +4576,15 @@ static struct omap_hwmod_ocp_if *omap44xx_timer6_slaves[] = {  static struct omap_hwmod omap44xx_timer6_hwmod = {  	.name		= "timer6",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_timer6_irqs,  	.main_clk	= "timer6_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_TIMER6_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_TIMER6_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer6_slaves, @@ -4375,11 +4644,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer7_slaves[] = {  static struct omap_hwmod omap44xx_timer7_hwmod = {  	.name		= "timer7",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_timer7_irqs,  	.main_clk	= "timer7_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_TIMER7_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_TIMER7_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer7_slaves, @@ -4439,11 +4711,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer8_slaves[] = {  static struct omap_hwmod omap44xx_timer8_hwmod = {  	.name		= "timer8",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_timer8_irqs,  	.main_clk	= "timer8_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_TIMER8_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_TIMER8_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer8_slaves, @@ -4484,11 +4759,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer9_slaves[] = {  static struct omap_hwmod omap44xx_timer9_hwmod = {  	.name		= "timer9",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer9_irqs,  	.main_clk	= "timer9_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER9_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER9_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer9_slaves, @@ -4529,11 +4807,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer10_slaves[] = {  static struct omap_hwmod omap44xx_timer10_hwmod = {  	.name		= "timer10",  	.class		= &omap44xx_timer_1ms_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer10_irqs,  	.main_clk	= "timer10_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER10_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER10_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer10_slaves, @@ -4574,11 +4855,14 @@ static struct omap_hwmod_ocp_if *omap44xx_timer11_slaves[] = {  static struct omap_hwmod omap44xx_timer11_hwmod = {  	.name		= "timer11",  	.class		= &omap44xx_timer_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_timer11_irqs,  	.main_clk	= "timer11_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_DMTIMER11_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_DMTIMER11_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_timer11_slaves, @@ -4647,12 +4931,15 @@ static struct omap_hwmod_ocp_if *omap44xx_uart1_slaves[] = {  static struct omap_hwmod omap44xx_uart1_hwmod = {  	.name		= "uart1",  	.class		= &omap44xx_uart_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_uart1_irqs,  	.sdma_reqs	= omap44xx_uart1_sdma_reqs,  	.main_clk	= "uart1_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_UART1_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_UART1_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_UART1_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_uart1_slaves, @@ -4699,12 +4986,15 @@ static struct omap_hwmod_ocp_if *omap44xx_uart2_slaves[] = {  static struct omap_hwmod omap44xx_uart2_hwmod = {  	.name		= "uart2",  	.class		= &omap44xx_uart_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_uart2_irqs,  	.sdma_reqs	= omap44xx_uart2_sdma_reqs,  	.main_clk	= "uart2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_UART2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_UART2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_UART2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_uart2_slaves, @@ -4751,13 +5041,16 @@ static struct omap_hwmod_ocp_if *omap44xx_uart3_slaves[] = {  static struct omap_hwmod omap44xx_uart3_hwmod = {  	.name		= "uart3",  	.class		= &omap44xx_uart_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,  	.mpu_irqs	= omap44xx_uart3_irqs,  	.sdma_reqs	= omap44xx_uart3_sdma_reqs,  	.main_clk	= "uart3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_UART3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_UART3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_UART3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_uart3_slaves, @@ -4804,12 +5097,15 @@ static struct omap_hwmod_ocp_if *omap44xx_uart4_slaves[] = {  static struct omap_hwmod omap44xx_uart4_hwmod = {  	.name		= "uart4",  	.class		= &omap44xx_uart_hwmod_class, +	.clkdm_name	= "l4_per_clkdm",  	.mpu_irqs	= omap44xx_uart4_irqs,  	.sdma_reqs	= omap44xx_uart4_sdma_reqs,  	.main_clk	= "uart4_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L4PER_UART4_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L4PER_UART4_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L4PER_UART4_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_uart4_slaves, @@ -4882,12 +5178,15 @@ static struct omap_hwmod_opt_clk usb_otg_hs_opt_clks[] = {  static struct omap_hwmod omap44xx_usb_otg_hs_hwmod = {  	.name		= "usb_otg_hs",  	.class		= &omap44xx_usb_otg_hs_hwmod_class, +	.clkdm_name	= "l3_init_clkdm",  	.flags		= HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,  	.mpu_irqs	= omap44xx_usb_otg_hs_irqs,  	.main_clk	= "usb_otg_hs_ick",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_L3INIT_USB_OTG_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_L3INIT_USB_OTG_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_L3INIT_USB_OTG_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_HWCTRL,  		},  	},  	.opt_clks	= usb_otg_hs_opt_clks, @@ -4955,11 +5254,14 @@ static struct omap_hwmod_ocp_if *omap44xx_wd_timer2_slaves[] = {  static struct omap_hwmod omap44xx_wd_timer2_hwmod = {  	.name		= "wd_timer2",  	.class		= &omap44xx_wd_timer_hwmod_class, +	.clkdm_name	= "l4_wkup_clkdm",  	.mpu_irqs	= omap44xx_wd_timer2_irqs,  	.main_clk	= "wd_timer2_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM_WKUP_WDT2_CLKCTRL, +			.clkctrl_offs = OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_WKUP_WDT2_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_wd_timer2_slaves, @@ -5019,11 +5321,14 @@ static struct omap_hwmod_ocp_if *omap44xx_wd_timer3_slaves[] = {  static struct omap_hwmod omap44xx_wd_timer3_hwmod = {  	.name		= "wd_timer3",  	.class		= &omap44xx_wd_timer_hwmod_class, +	.clkdm_name	= "abe_clkdm",  	.mpu_irqs	= omap44xx_wd_timer3_irqs,  	.main_clk	= "wd_timer3_fck",  	.prcm = {  		.omap4 = { -			.clkctrl_reg = OMAP4430_CM1_ABE_WDT3_CLKCTRL, +			.clkctrl_offs = OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET, +			.context_offs = OMAP4_RM_ABE_WDT3_CONTEXT_OFFSET, +			.modulemode   = MODULEMODE_SWCTRL,  		},  	},  	.slaves		= omap44xx_wd_timer3_slaves,  |