X-Git-Url: https://git.ti.com/gitweb?p=sitara-epos%2Fsitara-epos-kernel.git;a=blobdiff_plain;f=arch%2Farm%2Fmach-omap2%2Fomap_hwmod_33xx_data.c;h=c847bc1d9c802d28520fd0bee7d4c77a873757fa;hp=3ced291a5c3c441a6eb1d9498334bdbbfd11b32f;hb=6aeef6fd4d50bb7297d964b2352a3cad9307b59b;hpb=d7c6220f7796321ac27ceef4946f98ffe92a90a7 diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c index 3ced291a5c3c..c847bc1d9c80 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c @@ -65,6 +65,7 @@ static struct omap_hwmod am33xx_mmc1_hwmod; static struct omap_hwmod am33xx_mmc2_hwmod; static struct omap_hwmod am33xx_spi0_hwmod; static struct omap_hwmod am33xx_spi1_hwmod; +static struct omap_hwmod am33xx_elm_hwmod; /* * Interconnects hwmod structures @@ -442,17 +443,56 @@ static struct omap_hwmod am33xx_debugss_hwmod = { }, }; +static struct omap_hwmod_class_sysconfig am33xx_elm_sysc = { + .rev_offs = 0x0000, + .sysc_offs = 0x0010, + .syss_offs = 0x0014, + .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE | + SYSC_HAS_SOFTRESET | + SYSS_HAS_RESET_STATUS), + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), + .sysc_fields = &omap_hwmod_sysc_type1, +}; /* 'elm' class */ static struct omap_hwmod_class am33xx_elm_hwmod_class = { .name = "elm", + .sysc = &am33xx_elm_sysc, +}; + +static struct omap_hwmod_irq_info am33xx_elm_irqs[] = { + { .irq = AM33XX_IRQ_ELM }, + { .irq = -1 } +}; + +struct omap_hwmod_addr_space am33xx_elm_addr_space[] = { + { + .pa_start = AM33XX_ELM_BASE, + .pa_end = AM33XX_ELM_BASE + SZ_8K - 1, + .flags = ADDR_MAP_ON_INIT | ADDR_TYPE_RT, + }, + { } +}; + +struct omap_hwmod_ocp_if am33xx_l4_core__elm = { + .master = &am33xx_l4per_hwmod, + .slave = &am33xx_elm_hwmod, + .addr = am33xx_elm_addr_space, + .user = OCP_USER_MPU, +}; + +static struct omap_hwmod_ocp_if *am33xx_elm_slaves[] = { + &am33xx_l4_core__elm, }; /* elm */ static struct omap_hwmod am33xx_elm_hwmod = { .name = "elm", .class = &am33xx_elm_hwmod_class, + .mpu_irqs = am33xx_elm_irqs, .main_clk = "elm_fck", .clkdm_name = "l4ls_clkdm", + .slaves = am33xx_elm_slaves, + .slaves_cnt = ARRAY_SIZE(am33xx_elm_slaves), .prcm = { .omap4 = { .clkctrl_offs = AM33XX_CM_PER_ELM_CLKCTRL_OFFSET, @@ -1138,8 +1178,8 @@ static struct omap_hwmod_irq_info am33xx_mmc2_irqs[] = { }; static struct omap_hwmod_dma_info am33xx_mmc2_edma_reqs[] = { - { .name = "tx", .dma_req = 64, }, - { .name = "rx", .dma_req = 65, }, + { .name = "tx", .dma_req = AM33XX_DMA_MMCHS2_W, }, + { .name = "rx", .dma_req = AM33XX_DMA_MMCHS2_R, }, { .dma_req = -1 } };