Add the needed hwmod entries which is needed for AESS (Audio Engine SubSystem) and ABE. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> --- arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c index e829664e6a6c..3e20c025b5a4 100644 --- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c @@ -146,6 +146,7 @@ static struct omap_hwmod omap54xx_l4_abe_hwmod = { .prcm = { .omap4 = { .clkctrl_offs = OMAP54XX_CM_ABE_L4_ABE_CLKCTRL_OFFSET, + .context_offs = OMAP54XX_RM_ABE_AESS_CONTEXT_OFFSET, .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, }, }, @@ -211,6 +212,42 @@ static struct omap_hwmod omap54xx_mpu_private_hwmod = { }; /* + * 'aess' class + * audio engine sub system + */ + +static struct omap_hwmod_class_sysconfig omap54xx_aess_sysc = { + .rev_offs = 0x0000, + .sysc_offs = 0x0010, + .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE), + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | + MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART | + MSTANDBY_SMART_WKUP), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap54xx_aess_hwmod_class = { + .name = "aess", + .sysc = &omap54xx_aess_sysc, + .enable_preprogram = omap_hwmod_aess_preprogram, +}; + +/* aess */ +static struct omap_hwmod omap54xx_aess_hwmod = { + .name = "aess", + .class = &omap54xx_aess_hwmod_class, + .clkdm_name = "abe_clkdm", + .main_clk = "aess_fclk", + .prcm = { + .omap4 = { + .clkctrl_offs = OMAP54XX_CM_ABE_AESS_CLKCTRL_OFFSET, + .context_offs = OMAP54XX_RM_ABE_AESS_CONTEXT_OFFSET, + .modulemode = MODULEMODE_SWCTRL, + }, + }, +}; + +/* * 'counter' class * 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock */ @@ -1892,6 +1929,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_3 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* aess -> l4_abe */ +static struct omap_hwmod_ocp_if __maybe_unused omap54xx_aess__l4_abe = { + .master = &omap54xx_aess_hwmod, + .slave = &omap54xx_l4_abe_hwmod, + .clk = "abe_iclk", + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + /* l3_main_1 -> l4_abe */ static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l4_abe = { .master = &omap54xx_l3_main_1_hwmod, @@ -1966,6 +2011,22 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__dma_system = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l4_abe -> aess */ +static struct omap_hwmod_ocp_if __maybe_unused omap54xx_l4_abe__aess = { + .master = &omap54xx_l4_abe_hwmod, + .slave = &omap54xx_aess_hwmod, + .clk = "abe_iclk", + .user = OCP_USER_MPU, +}; + +/* l4_abe -> aess (dma) */ +static struct omap_hwmod_ocp_if __maybe_unused omap54xx_l4_abe__aess_dma = { + .master = &omap54xx_l4_abe_hwmod, + .slave = &omap54xx_aess_hwmod, + .clk = "abe_iclk", + .user = OCP_USER_SDMA, +}; + /* l4_abe -> dmic */ static struct omap_hwmod_ocp_if omap54xx_l4_abe__dmic = { .master = &omap54xx_l4_abe_hwmod, @@ -2417,6 +2478,9 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = { &omap54xx_l3_main_1__l3_main_3, &omap54xx_l3_main_2__l3_main_3, &omap54xx_l4_cfg__l3_main_3, + &omap54xx_l4_abe__aess, + &omap54xx_l4_abe__aess_dma, + &omap54xx_aess__l4_abe, &omap54xx_l3_main_1__l4_abe, &omap54xx_mpu__l4_abe, &omap54xx_l3_main_1__l4_cfg, -- 1.9.2 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html