ARM: OMAP4: hwmod data: add almost all remaining IP blocks
Subsystems (5)
Paul Walmsley
maintainercover ARM: OMAP4: hwmod data: add almost all remaining IP blocks
Hi
This series adds basic hwmods for all but one of the remaining OMAP4 IP blocks that can be meaningfully controlled by the kernel. (The remaining IP block is the USIM - there's a clocking problem that requires further investigation to resolve.)
There are a few new boot-time warnings added by this series:
[ 0.280548] omap_hwmod: trace_clk_div_ck: missing clockdomain for trace_clk_div_ck. [ 0.302429] omap_hwmod: ddrphy_ck: missing clockdomain for ddrphy_ck. [ 0.319519] omap_hwmod: sl2if: cannot be enabled for reset (3)
These messages will be resolved by subsequent patches, and, while annoying, should not affect the operation of the system.
These patches have been boot-tested and suspend-tested on a OMAP44xx PandaBoard.
The series is intended to apply on the 'hwmod_remove_link_arrays_cleanup_3.4' branch, posted previously.
These patches are also available via git from git://git.pwsan.com/linux-2.6
in the branch "hwmod_enable_remaining_hwmods_devel_3.4".
- Paul
---
hwmod_enable_remaining_hwmods_devel_3.4
text data bss dec hex filename
6590067 677452 5593500 12861019 c43e5b vmlinux.omap2plus_defconfig.orig
6594227 684620 5593500 12872347 c46a9b vmlinux.omap2plus_defconfig
Beno?t Cousson (6):
ARM: OMAP4: hwmod data: add GPMC
ARM: OMAP4: hwmod data: add the Slimbus IP blocks
ARM: OMAP4: hwmod data: add McASP
ARM: OMAP4: hwmod data: add remaining USB-related IP blocks
ARM: OMAP4: hwmod data: add the OCP-WP IP block
ARM: OMAP4: hwmod data: add DEBUGSS skeleton
Ming Lei (1):
ARM: OMAP4: hwmod data: introduce fdif(face detect module) hwmod
Paul Walmsley (8):
ARM: OMAP2+: clockdomains: make {prm,cm}_clkdm common
ARM: OMAP4: hwmod data: add HDQ/1-wire
ARM: OMAP4: hwmod data: add EMIF1 and 2
ARM: OMAP4: hwmod data: add GPU
ARM: OMAP4: hwmod data: add some interconnect-related IP blocks
ARM: OMAP4: hwmod data: add OCM RAM IP block
ARM: OMAP4: hwmod data: add System Control Module
ARM: OMAP4: hwmod data: add PRCM and related IP blocks
arch/arm/mach-omap2/Makefile | 8 arch/arm/mach-omap2/clockdomain44xx.c | 6 arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c | 10 arch/arm/mach-omap2/clockdomains44xx_data.c | 2 arch/arm/mach-omap2/clockdomains_common_data.c | 24 arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1473 +++++++++++++++++++++- arch/arm/plat-omap/include/plat/omap_hwmod.h | 1 7 files changed, 1443 insertions(+), 81 deletions(-) create mode 100644 arch/arm/mach-omap2/clockdomains_common_data.c
Paul Walmsley
maintainerPATCH 1/15 ARM: OMAP2+: clockdomains: make {prm,cm}_clkdm common
The PRM and CM implicit clockdomains will soon be used by OMAP44xx. So, make them common to OMAP2+ and modify the OMAP4 clockdomains code so use of these clockdomains doesn't crash the system.
--- arch/arm/mach-omap2/Makefile | 8 +++++-- arch/arm/mach-omap2/clockdomain44xx.c | 6 ++++++ arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c | 10 --------- arch/arm/mach-omap2/clockdomains44xx_data.c | 2 ++ arch/arm/mach-omap2/clockdomains_common_data.c | 24 ++++++++++++++++++++++ 5 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 arch/arm/mach-omap2/clockdomains_common_data.c
arch/arm/mach-omap2/Makefile +5 -3
@@ -117,16 +117,18 @@ obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) \ powerdomains44xx_data.o # PRCM clockdomain control -obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o \ +clockdomain-common += clockdomain.o \ + clockdomains_common_data.o +obj-$(CONFIG_ARCH_OMAP2) += $(clockdomain-common) \ clockdomain2xxx_3xxx.o \ clockdomains2xxx_3xxx_data.o obj-$(CONFIG_SOC_OMAP2420) += clockdomains2420_data.o obj-$(CONFIG_SOC_OMAP2430) += clockdomains2430_data.o -obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o \ +obj-$(CONFIG_ARCH_OMAP3) += $(clockdomain-common) \ clockdomain2xxx_3xxx.o \ clockdomains2xxx_3xxx_data.o \ clockdomains3xxx_data.o -obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o \ +obj-$(CONFIG_ARCH_OMAP4) += $(clockdomain-common) \ clockdomain44xx.o \ clockdomains44xx_data.o
arch/arm/mach-omap2/clockdomain44xx.c +6 -0
@@ -51,6 +51,9 @@ static int omap4_clkdm_clear_all_wkup_sleep_deps(struct clockdomain *clkdm)struct clkdm_dep *cd;u32 mask =0 ; +if (!clkdm->prcm_partition) +return 0 ; +for (cd = clkdm->wkdep_srcs; cd && cd->clkdm_name; cd++) {if (!cd->clkdm)continue ;/* only happens if data is erroneous */
@@ -103,6 +106,9 @@ static int omap4_clkdm_clk_disable(struct clockdomain *clkdm) {bool hwsup = false; +if (!clkdm->prcm_partition) +return 0 ; + hwsup =omap4_cminst_is_clkdm_in_hwsup (clkdm->prcm_partition, clkdm->cm_inst, clkdm->clkdm_offs);
arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c +0 -10
@@ -89,13 +89,3 @@ struct clockdomain wkup_common_clkdm = { .pwrdm = { .name = "wkup_pwrdm" }, .dep_bit = OMAP_EN_WKUP_SHIFT, }; - -struct clockdomain prm_common_clkdm = { - .name ="prm_clkdm" , - .pwrdm = { .name ="wkup_pwrdm" }, -}; - -struct clockdomain cm_common_clkdm = { - .name ="cm_clkdm" , - .pwrdm = { .name ="core_pwrdm" }, -};
arch/arm/mach-omap2/clockdomains44xx_data.c +2 -0
@@ -430,6 +430,8 @@ static struct clockdomain *clockdomains_omap44xx[] __initdata = { &l4_wkup_44xx_clkdm, &emu_sys_44xx_clkdm, &l3_dma_44xx_clkdm, + &prm_common_clkdm, + &cm_common_clkdm, NULL };
arch/arm/mach-omap2/clockdomains_common_data.c new file +24 -0
@@ -0,0 +1,24 @@ +/* +* OMAP2+-common clockdomain data +* +* Copyright (C) 2008-2012 Texas Instruments, Inc. +* Copyright (C) 2008-2010 Nokia Corporation +* +* Paul Walmsley, Jouni H?gander +*/ + +#include <linux/kernel.h> +#include <linux/io.h> + +#include "clockdomain.h" + +/* These are implicit clockdomains - they are never defined as such in TRM */ +struct clockdomain prm_common_clkdm = { + .name ="prm_clkdm" , + .pwrdm = { .name ="wkup_pwrdm" }, +}; + +struct clockdomain cm_common_clkdm = { + .name ="cm_clkdm" , + .pwrdm = { .name ="core_pwrdm" }, +};
Paul Walmsley
maintainerPATCH 2/15 ARM: OMAP4: hwmod data: introduce fdif(face detect module) hwmod
In reply to Paul WalmsleyFrom: Ming Lei <[email protected]>
Add hwmod data for the OMAP4 FDIF IP block.
[paul at pwsan.com: rearranged to match script output; fixed FDIF end address to
match script data; wrote trivial changelog]
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 70 ++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +69 -1
@@ -262,7 +262,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* elm * emif1 * emif2 -* fdif * gpmc * gpu * hdq1w
@@ -815,6 +814,47 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { };/* +* 'fdif' class +* face detection hw accelerator module +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_fdif_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0010 , + .sysc_flags = (SYSC_HAS_MIDLEMODE |SYSC_HAS_RESET_STATUS | +SYSC_HAS_SIDLEMODE |SYSC_HAS_SOFTRESET ), + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +MSTANDBY_FORCE |MSTANDBY_NO |MSTANDBY_SMART ), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap44xx_fdif_hwmod_class = { + .name ="fdif" , + .sysc = &omap44xx_fdif_sysc, +}; + +/* fdif */ +static struct omap_hwmod_irq_info omap44xx_fdif_irqs[] = { + { .irq =69 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_fdif_hwmod = { + .name ="fdif" , + .class = &omap44xx_fdif_hwmod_class, + .clkdm_name ="iss_clkdm" , + .mpu_irqs = omap44xx_fdif_irqs, + .main_clk ="fdif_fck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_CAM_FDIF_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_CAM_FDIF_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'gpio' class * general purpose io module */
@@ -2948,6 +2988,14 @@ static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* fdif -> l3_main_2 */ +static struct omap_hwmod_ocp_if omap44xx_fdif__l3_main_2 = { + .master = &omap44xx_fdif_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* hsi -> l3_main_2 */ static struct omap_hwmod_ocp_if omap44xx_hsi__l3_main_2 = { .master = &omap44xx_hsi_hwmod,
@@ -3498,6 +3546,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__dss_venc = { .user = OCP_USER_MPU, }; +static struct omap_hwmod_addr_space omap44xx_fdif_addrs[] = { + { + .pa_start =0x4a10a000 , + .pa_end =0x4a10a1ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> fdif */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__fdif = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_fdif_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_fdif_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_gpio1_addrs[] = { { .pa_start =0x4a310000 ,
@@ -4655,6 +4721,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_mmc2__l3_main_1, &omap44xx_mpu__l3_main_1, &omap44xx_dma_system__l3_main_2, + &omap44xx_fdif__l3_main_2, &omap44xx_hsi__l3_main_2, &omap44xx_ipu__l3_main_2, &omap44xx_iss__l3_main_2,
@@ -4696,6 +4763,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__dss_rfbi, &omap44xx_l3_main_2__dss_venc, &omap44xx_l4_per__dss_venc, + &omap44xx_l4_cfg__fdif, &omap44xx_l4_wkup__gpio1, &omap44xx_l4_per__gpio2, &omap44xx_l4_per__gpio3,
Paul Walmsley
maintainerPATCH 3/15 ARM: OMAP4: hwmod data: add HDQ/1-wire
In reply to Paul WalmsleyAdd the HDQ/1-wire hwmod and associated interconnect data. The HDQ/1-wire IP block is a low-speed serial interconnect.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 61 ++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +60 -1
@@ -264,7 +264,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* emif2 * gpmc * gpu -* hdq1w * mcasp * mpu_c0 * mpu_c1
@@ -1057,6 +1056,47 @@ static struct omap_hwmod omap44xx_gpio6_hwmod = { };/* +* 'hdq1w' class +* hdq / 1-wire serial interface controller +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_hdq1w_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0014 , + .syss_offs =0x0018 , + .sysc_flags = (SYSC_HAS_AUTOIDLE |SYSC_HAS_SOFTRESET | +SYSS_HAS_RESET_STATUS ), + .sysc_fields = &omap_hwmod_sysc_type1, +}; + +static struct omap_hwmod_class omap44xx_hdq1w_hwmod_class = { + .name ="hdq1w" , + .sysc = &omap44xx_hdq1w_sysc, +}; + +/* hdq1w */ +static struct omap_hwmod_irq_info omap44xx_hdq1w_irqs[] = { + { .irq =58 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_hdq1w_hwmod = { + .name ="hdq1w" , + .class = &omap44xx_hdq1w_hwmod_class, + .clkdm_name ="l4_per_clkdm" , + .flags =HWMOD_INIT_NO_RESET ,/* XXX temporary */ + .mpu_irqs = omap44xx_hdq1w_irqs, + .main_clk ="hdq1w_fck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L4PER_HDQ1W_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L4PER_HDQ1W_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'hsi' class * mipi high-speed synchronous serial interface (multichannel and full-duplex * serial if)
@@ -3672,6 +3712,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__gpio6 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_hdq1w_addrs[] = { + { + .pa_start =0x480b2000 , + .pa_end =0x480b201f , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_per -> hdq1w */ +static struct omap_hwmod_ocp_if omap44xx_l4_per__hdq1w = { + .master = &omap44xx_l4_per_hwmod, + .slave = &omap44xx_hdq1w_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_hdq1w_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_hsi_addrs[] = { { .pa_start =0x4a058000 ,
@@ -4770,6 +4828,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__gpio4, &omap44xx_l4_per__gpio5, &omap44xx_l4_per__gpio6, + &omap44xx_l4_per__hdq1w, &omap44xx_l4_cfg__hsi, &omap44xx_l4_per__i2c1, &omap44xx_l4_per__i2c2,
Paul Walmsley
maintainerPATCH 4/15 ARM: OMAP4: hwmod data: add GPMC
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add the GPMC hwmod and associated interconnect data. The GPMC is a
programmable parallel-bus memory controller.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 67 ++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +66 -1
@@ -262,7 +262,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* elm * emif1 * emif2 -* gpmc * gpu * mcasp * mpu_c0
@@ -1056,6 +1055,53 @@ static struct omap_hwmod omap44xx_gpio6_hwmod = { };/* +* 'gpmc' class +* general purpose memory controller +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_gpmc_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0010 , + .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 ), + .sysc_fields = &omap_hwmod_sysc_type1, +}; + +static struct omap_hwmod_class omap44xx_gpmc_hwmod_class = { + .name ="gpmc" , + .sysc = &omap44xx_gpmc_sysc, +}; + +/* gpmc */ +static struct omap_hwmod_irq_info omap44xx_gpmc_irqs[] = { + { .irq =20 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_dma_info omap44xx_gpmc_sdma_reqs[] = { + { .dma_req =3 +OMAP44XX_DMA_REQ_START }, + { .dma_req =-1 } +}; + +static struct omap_hwmod omap44xx_gpmc_hwmod = { + .name ="gpmc" , + .class = &omap44xx_gpmc_hwmod_class, + .clkdm_name ="l3_2_clkdm" , + .flags =HWMOD_INIT_NO_IDLE |HWMOD_INIT_NO_RESET , + .mpu_irqs = omap44xx_gpmc_irqs, + .sdma_reqs = omap44xx_gpmc_sdma_reqs, + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L3_2_GPMC_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, +}; + +/* * 'hdq1w' class * hdq / 1-wire serial interface controller */
@@ -3712,6 +3758,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__gpio6 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_gpmc_addrs[] = { + { + .pa_start =0x50000000 , + .pa_end =0x500003ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l3_main_2 -> gpmc */ +static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap44xx_gpmc_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_gpmc_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_hdq1w_addrs[] = { { .pa_start =0x480b2000 ,
@@ -4828,6 +4892,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__gpio4, &omap44xx_l4_per__gpio5, &omap44xx_l4_per__gpio6, + &omap44xx_l3_main_2__gpmc, &omap44xx_l4_per__hdq1w, &omap44xx_l4_cfg__hsi, &omap44xx_l4_per__i2c1,
Paul Walmsley
maintainerPATCH 5/15 ARM: OMAP4: hwmod data: add EMIF1 and 2
In reply to Paul WalmsleyAdd the EMIF1 and 2 hwmods and associated interconnect data. The EMIFs are SDRAM interface IP blocks.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 98 +++++++++++++++++++++++++++- 1 files changed, 96 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +96 -2
@@ -260,8 +260,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* efuse_ctrl_cust * efuse_ctrl_std * elm -* emif1 -* emif2 * gpu * mcasp * mpu_c0
@@ -812,6 +810,64 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { };/* +* 'emif' class +* external memory interface no1 +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_emif_sysc = { + .rev_offs =0x0000 , +}; + +static struct omap_hwmod_class omap44xx_emif_hwmod_class = { + .name ="emif" , + .sysc = &omap44xx_emif_sysc, +}; + +/* emif1 */ +static struct omap_hwmod_irq_info omap44xx_emif1_irqs[] = { + { .irq =110 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_emif1_hwmod = { + .name ="emif1" , + .class = &omap44xx_emif_hwmod_class, + .clkdm_name ="l3_emif_clkdm" , + .flags =HWMOD_INIT_NO_IDLE |HWMOD_INIT_NO_RESET , + .mpu_irqs = omap44xx_emif1_irqs, + .main_clk ="ddrphy_ck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_MEMIF_EMIF_1_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_MEMIF_EMIF_1_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, +}; + +/* emif2 */ +static struct omap_hwmod_irq_info omap44xx_emif2_irqs[] = { + { .irq =111 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_emif2_hwmod = { + .name ="emif2" , + .class = &omap44xx_emif_hwmod_class, + .clkdm_name ="l3_emif_clkdm" , + .flags =HWMOD_INIT_NO_IDLE |HWMOD_INIT_NO_RESET , + .mpu_irqs = omap44xx_emif2_irqs, + .main_clk ="ddrphy_ck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_MEMIF_EMIF_2_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_MEMIF_EMIF_2_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, +}; + +/* * 'fdif' class * face detection hw accelerator module */
@@ -3632,6 +3688,42 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__dss_venc = { .user = OCP_USER_MPU, }; +static struct omap_hwmod_addr_space omap44xx_emif1_addrs[] = { + { + .pa_start =0x4c000000 , + .pa_end =0x4c0000ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* emif_fw -> emif1 */ +static struct omap_hwmod_ocp_if omap44xx_emif_fw__emif1 = { + .master = &omap44xx_emif_fw_hwmod, + .slave = &omap44xx_emif1_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_emif1_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_emif2_addrs[] = { + { + .pa_start =0x4d000000 , + .pa_end =0x4d0000ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* emif_fw -> emif2 */ +static struct omap_hwmod_ocp_if omap44xx_emif_fw__emif2 = { + .master = &omap44xx_emif_fw_hwmod, + .slave = &omap44xx_emif2_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_emif2_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_fdif_addrs[] = { { .pa_start =0x4a10a000 ,
@@ -4885,6 +4977,8 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__dss_rfbi, &omap44xx_l3_main_2__dss_venc, &omap44xx_l4_per__dss_venc, + &omap44xx_emif_fw__emif1, + &omap44xx_emif_fw__emif2, &omap44xx_l4_cfg__fdif, &omap44xx_l4_wkup__gpio1, &omap44xx_l4_per__gpio2,
Paul Walmsley
maintainerPATCH 6/15 ARM: OMAP4: hwmod data: add GPU
In reply to Paul WalmsleyAdd the GPU hwmod and associated interconnect data. The GPU is a graphics accelerator.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 70 ++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +69 -1
@@ -260,7 +260,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* efuse_ctrl_cust * efuse_ctrl_std * elm -* gpu * mcasp * mpu_c0 * mpu_c1
@@ -1158,6 +1157,47 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = { };/* +* 'gpu' class +* 2d/3d graphics accelerator +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_gpu_sysc = { + .rev_offs =0x1fc00 , + .sysc_offs =0x1fc10 , + .sysc_flags = (SYSC_HAS_MIDLEMODE |SYSC_HAS_SIDLEMODE ), + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +SIDLE_SMART_WKUP |MSTANDBY_FORCE |MSTANDBY_NO | +MSTANDBY_SMART |MSTANDBY_SMART_WKUP ), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap44xx_gpu_hwmod_class = { + .name ="gpu" , + .sysc = &omap44xx_gpu_sysc, +}; + +/* gpu */ +static struct omap_hwmod_irq_info omap44xx_gpu_irqs[] = { + { .irq =21 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_gpu_hwmod = { + .name ="gpu" , + .class = &omap44xx_gpu_hwmod_class, + .clkdm_name ="l3_gfx_clkdm" , + .mpu_irqs = omap44xx_gpu_irqs, + .main_clk ="gpu_fck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_GFX_GFX_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_GFX_GFX_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'hdq1w' class * hdq / 1-wire serial interface controller */
@@ -3138,6 +3178,14 @@ static struct omap_hwmod_ocp_if omap44xx_fdif__l3_main_2 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* gpu -> l3_main_2 */ +static struct omap_hwmod_ocp_if omap44xx_gpu__l3_main_2 = { + .master = &omap44xx_gpu_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* hsi -> l3_main_2 */ static struct omap_hwmod_ocp_if omap44xx_hsi__l3_main_2 = { .master = &omap44xx_hsi_hwmod,
@@ -3868,6 +3916,24 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_gpu_addrs[] = { + { + .pa_start =0x56000000 , + .pa_end =0x5600ffff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l3_main_2 -> gpu */ +static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpu = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap44xx_gpu_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_gpu_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_hdq1w_addrs[] = { { .pa_start =0x480b2000 ,
@@ -4936,6 +5002,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_mpu__l3_main_1, &omap44xx_dma_system__l3_main_2, &omap44xx_fdif__l3_main_2, + &omap44xx_gpu__l3_main_2, &omap44xx_hsi__l3_main_2, &omap44xx_ipu__l3_main_2, &omap44xx_iss__l3_main_2,
@@ -4987,6 +5054,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__gpio5, &omap44xx_l4_per__gpio6, &omap44xx_l3_main_2__gpmc, + &omap44xx_l3_main_2__gpu, &omap44xx_l4_per__hdq1w, &omap44xx_l4_cfg__hsi, &omap44xx_l4_per__i2c1,
Paul Walmsley
maintainerPATCH 7/15 ARM: OMAP4: hwmod data: add the Slimbus IP blocks
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add the Slimbus hwmods and associated interconnect data. The Slimbus IP blocks implement a two-wire serial interface.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 163 ++++++++++++++++++++++++++++ 1 files changed, 161 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +161 -2
@@ -270,8 +270,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* prm * scrm * sl2if -* slimbus1 -* slimbus2 * usb_host_fs * usb_host_hs * usb_phy_cm
@@ -2219,6 +2217,110 @@ static struct omap_hwmod omap44xx_mpu_hwmod = { };/* +* 'slimbus' class +* bidirectional, multi-drop, multi-channel two-line serial interface between +* the device and external components +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_slimbus_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0010 , + .sysc_flags = (SYSC_HAS_RESET_STATUS |SYSC_HAS_SIDLEMODE | +SYSC_HAS_SOFTRESET ), + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +SIDLE_SMART_WKUP ), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap44xx_slimbus_hwmod_class = { + .name ="slimbus" , + .sysc = &omap44xx_slimbus_sysc, +}; + +/* slimbus1 */ +static struct omap_hwmod_irq_info omap44xx_slimbus1_irqs[] = { + { .irq =97 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_dma_info omap44xx_slimbus1_sdma_reqs[] = { + { .name ="tx0" , .dma_req =84 +OMAP44XX_DMA_REQ_START }, + { .name ="tx1" , .dma_req =85 +OMAP44XX_DMA_REQ_START }, + { .name ="tx2" , .dma_req =86 +OMAP44XX_DMA_REQ_START }, + { .name ="tx3" , .dma_req =87 +OMAP44XX_DMA_REQ_START }, + { .name ="rx0" , .dma_req =88 +OMAP44XX_DMA_REQ_START }, + { .name ="rx1" , .dma_req =89 +OMAP44XX_DMA_REQ_START }, + { .name ="rx2" , .dma_req =90 +OMAP44XX_DMA_REQ_START }, + { .name ="rx3" , .dma_req =91 +OMAP44XX_DMA_REQ_START }, + { .dma_req =-1 } +}; + +static struct omap_hwmod_opt_clk slimbus1_opt_clks[] = { + { .role ="fclk_1" , .clk ="slimbus1_fclk_1" }, + { .role ="fclk_0" , .clk ="slimbus1_fclk_0" }, + { .role ="fclk_2" , .clk ="slimbus1_fclk_2" }, + { .role ="slimbus_clk" , .clk ="slimbus1_slimbus_clk" }, +}; + +static struct omap_hwmod omap44xx_slimbus1_hwmod = { + .name ="slimbus1" , + .class = &omap44xx_slimbus_hwmod_class, + .clkdm_name ="abe_clkdm" , + .mpu_irqs = omap44xx_slimbus1_irqs, + .sdma_reqs = omap44xx_slimbus1_sdma_reqs, + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM1_ABE_SLIMBUS_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_ABE_SLIMBUS_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, + .opt_clks = slimbus1_opt_clks, + .opt_clks_cnt =ARRAY_SIZE (slimbus1_opt_clks), +}; + +/* slimbus2 */ +static struct omap_hwmod_irq_info omap44xx_slimbus2_irqs[] = { + { .irq =98 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_dma_info omap44xx_slimbus2_sdma_reqs[] = { + { .name ="tx0" , .dma_req =92 +OMAP44XX_DMA_REQ_START }, + { .name ="tx1" , .dma_req =93 +OMAP44XX_DMA_REQ_START }, + { .name ="tx2" , .dma_req =94 +OMAP44XX_DMA_REQ_START }, + { .name ="tx3" , .dma_req =95 +OMAP44XX_DMA_REQ_START }, + { .name ="rx0" , .dma_req =96 +OMAP44XX_DMA_REQ_START }, + { .name ="rx1" , .dma_req =97 +OMAP44XX_DMA_REQ_START }, + { .name ="rx2" , .dma_req =98 +OMAP44XX_DMA_REQ_START }, + { .name ="rx3" , .dma_req =99 +OMAP44XX_DMA_REQ_START }, + { .dma_req =-1 } +}; + +static struct omap_hwmod_opt_clk slimbus2_opt_clks[] = { + { .role ="fclk_1" , .clk ="slimbus2_fclk_1" }, + { .role ="fclk_0" , .clk ="slimbus2_fclk_0" }, + { .role ="slimbus_clk" , .clk ="slimbus2_slimbus_clk" }, +}; + +static struct omap_hwmod omap44xx_slimbus2_hwmod = { + .name ="slimbus2" , + .class = &omap44xx_slimbus_hwmod_class, + .clkdm_name ="l4_per_clkdm" , + .mpu_irqs = omap44xx_slimbus2_irqs, + .sdma_reqs = omap44xx_slimbus2_sdma_reqs, + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L4PER_SLIMBUS2_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L4PER_SLIMBUS2_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, + .opt_clks = slimbus2_opt_clks, + .opt_clks_cnt =ARRAY_SIZE (slimbus2_opt_clks), +}; + +/* * 'smartreflex' class * smartreflex module (monitor silicon performance and outputs a measure of * performance error)
@@ -4452,6 +4554,60 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__mmc5 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_slimbus1_addrs[] = { + { + .pa_start =0x4012c000 , + .pa_end =0x4012c3ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_abe -> slimbus1 */ +static struct omap_hwmod_ocp_if omap44xx_l4_abe__slimbus1 = { + .master = &omap44xx_l4_abe_hwmod, + .slave = &omap44xx_slimbus1_hwmod, + .clk ="ocp_abe_iclk" , + .addr = omap44xx_slimbus1_addrs, + .user =OCP_USER_MPU , +}; + +static struct omap_hwmod_addr_space omap44xx_slimbus1_dma_addrs[] = { + { + .pa_start =0x4902c000 , + .pa_end =0x4902c3ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_abe -> slimbus1 (dma) */ +static struct omap_hwmod_ocp_if omap44xx_l4_abe__slimbus1_dma = { + .master = &omap44xx_l4_abe_hwmod, + .slave = &omap44xx_slimbus1_hwmod, + .clk ="ocp_abe_iclk" , + .addr = omap44xx_slimbus1_dma_addrs, + .user =OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_slimbus2_addrs[] = { + { + .pa_start =0x48076000 , + .pa_end =0x480763ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_per -> slimbus2 */ +static struct omap_hwmod_ocp_if omap44xx_l4_per__slimbus2 = { + .master = &omap44xx_l4_per_hwmod, + .slave = &omap44xx_slimbus2_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_slimbus2_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_smartreflex_core_addrs[] = { { .pa_start =0x4a0dd000 ,
@@ -5084,6 +5240,9 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__mmc3, &omap44xx_l4_per__mmc4, &omap44xx_l4_per__mmc5, + &omap44xx_l4_abe__slimbus1, + &omap44xx_l4_abe__slimbus1_dma, + &omap44xx_l4_per__slimbus2, &omap44xx_l4_cfg__smartreflex_core, &omap44xx_l4_cfg__smartreflex_iva, &omap44xx_l4_cfg__smartreflex_mpu,
Paul Walmsley
maintainerPATCH 8/15 ARM: OMAP4: hwmod data: add McASP
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add the McASP hwmod and associated interconnect data. The McASP is a general-purpose audio serial port.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 91 ++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +90 -1
@@ -260,7 +260,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* efuse_ctrl_cust * efuse_ctrl_std * elm -* mcasp * mpu_c0 * mpu_c1 * ocmc_ram
@@ -1669,6 +1668,58 @@ static struct omap_hwmod omap44xx_mailbox_hwmod = { };/* +* 'mcasp' class +* multi-channel audio serial port controller +*/ + +/* The IP is not compliant to type1 / type2 scheme */ +static struct omap_hwmod_sysc_fields omap_hwmod_sysc_type_mcasp = { + .sidle_shift =0 , +}; + +static struct omap_hwmod_class_sysconfig omap44xx_mcasp_sysc = { + .sysc_offs =0x0004 , + .sysc_flags =SYSC_HAS_SIDLEMODE , + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +SIDLE_SMART_WKUP ), + .sysc_fields = &omap_hwmod_sysc_type_mcasp, +}; + +static struct omap_hwmod_class omap44xx_mcasp_hwmod_class = { + .name ="mcasp" , + .sysc = &omap44xx_mcasp_sysc, +}; + +/* mcasp */ +static struct omap_hwmod_irq_info omap44xx_mcasp_irqs[] = { + { .name ="arevt" , .irq =108 +OMAP44XX_IRQ_GIC_START }, + { .name ="axevt" , .irq =109 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_dma_info omap44xx_mcasp_sdma_reqs[] = { + { .name ="axevt" , .dma_req =7 +OMAP44XX_DMA_REQ_START }, + { .name ="arevt" , .dma_req =10 +OMAP44XX_DMA_REQ_START }, + { .dma_req =-1 } +}; + +static struct omap_hwmod omap44xx_mcasp_hwmod = { + .name ="mcasp" , + .class = &omap44xx_mcasp_hwmod_class, + .clkdm_name ="abe_clkdm" , + .mpu_irqs = omap44xx_mcasp_irqs, + .sdma_reqs = omap44xx_mcasp_sdma_reqs, + .main_clk ="mcasp_fck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM1_ABE_MCASP_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_ABE_MCASP_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'mcbsp' class * multi channel buffered serial port controller */
@@ -4224,6 +4275,42 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__mailbox = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_mcasp_addrs[] = { + { + .pa_start =0x40128000 , + .pa_end =0x401283ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_abe -> mcasp */ +static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcasp = { + .master = &omap44xx_l4_abe_hwmod, + .slave = &omap44xx_mcasp_hwmod, + .clk ="ocp_abe_iclk" , + .addr = omap44xx_mcasp_addrs, + .user =OCP_USER_MPU , +}; + +static struct omap_hwmod_addr_space omap44xx_mcasp_dma_addrs[] = { + { + .pa_start =0x49028000 , + .pa_end =0x490283ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_abe -> mcasp (dma) */ +static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcasp_dma = { + .master = &omap44xx_l4_abe_hwmod, + .slave = &omap44xx_mcasp_hwmod, + .clk ="ocp_abe_iclk" , + .addr = omap44xx_mcasp_dma_addrs, + .user =OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_mcbsp1_addrs[] = { { .name ="mpu" ,
@@ -5222,6 +5309,8 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l3_main_2__iva, &omap44xx_l4_wkup__kbd, &omap44xx_l4_cfg__mailbox, + &omap44xx_l4_abe__mcasp, + &omap44xx_l4_abe__mcasp_dma, &omap44xx_l4_abe__mcbsp1, &omap44xx_l4_abe__mcbsp1_dma, &omap44xx_l4_abe__mcbsp2,
Paul Walmsley
maintainerPATCH 9/15 ARM: OMAP4: hwmod data: add some interconnect-related IP blocks
In reply to Paul WalmsleyAdd the SL2 interface IP block and interconnect data. The SL2 is related to the IVA-HD subsystem.
Add IP block and interconnect data for the C2C ("Chip-to-chip") interconnect. This can provide a direct system interconnect link to other devices stacked on the OMAP package.
Add the ELM IP block and interconnect data. The ELM can be used to locate errors in NAND flash connected to the GPMC.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 224 ++++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/omap_hwmod.h | 1 2 files changed, 221 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +220 -4
@@ -50,6 +50,27 @@*/ /* +* 'c2c_target_fw' class +* instance(s): c2c_target_fw +*/ +static struct omap_hwmod_class omap44xx_c2c_target_fw_hwmod_class = { + .name ="c2c_target_fw" , +}; + +/* c2c_target_fw */ +static struct omap_hwmod omap44xx_c2c_target_fw_hwmod = { + .name ="c2c_target_fw" , + .class = &omap44xx_c2c_target_fw_hwmod_class, + .clkdm_name ="d2d_clkdm" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_D2D_SAD2D_FW_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_D2D_SAD2D_FW_CONTEXT_OFFSET , + }, + }, +}; + +/* * 'dmm' class * instance(s): dmm */
@@ -248,8 +269,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* - They still need to be validated with the driver * properly adapted to omap_hwmod / omap_device * -* c2c -* c2c_target_fw * cm_core * cm_core_aon * ctrl_module_core
@@ -259,7 +278,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* debugss * efuse_ctrl_cust * efuse_ctrl_std -* elm * mpu_c0 * mpu_c1 * ocmc_ram
@@ -268,7 +286,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* prcm_mpu * prm * scrm -* sl2if * usb_host_fs * usb_host_hs * usb_phy_cm
@@ -331,6 +348,41 @@ static struct omap_hwmod omap44xx_aess_hwmod = { };/* +* 'c2c' class +* chip 2 chip interface used to plug the ape soc (omap) with an external modem +* soc +*/ + +static struct omap_hwmod_class omap44xx_c2c_hwmod_class = { + .name ="c2c" , +}; + +/* c2c */ +static struct omap_hwmod_irq_info omap44xx_c2c_irqs[] = { + { .irq =88 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_dma_info omap44xx_c2c_sdma_reqs[] = { + { .dma_req =68 +OMAP44XX_DMA_REQ_START }, + { .dma_req =-1 } +}; + +static struct omap_hwmod omap44xx_c2c_hwmod = { + .name ="c2c" , + .class = &omap44xx_c2c_hwmod_class, + .clkdm_name ="d2d_clkdm" , + .mpu_irqs = omap44xx_c2c_irqs, + .sdma_reqs = omap44xx_c2c_sdma_reqs, + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_D2D_SAD2D_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_D2D_SAD2D_CONTEXT_OFFSET , + }, + }, +}; + +/* * 'counter' class * 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock */
@@ -806,6 +858,46 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { };/* +* 'elm' class +* bch error location module +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_elm_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0010 , + .syss_offs =0x0014 , + .sysc_flags = (SYSC_HAS_AUTOIDLE |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, +}; + +static struct omap_hwmod_class omap44xx_elm_hwmod_class = { + .name ="elm" , + .sysc = &omap44xx_elm_sysc, +}; + +/* elm */ +static struct omap_hwmod_irq_info omap44xx_elm_irqs[] = { + { .irq =4 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_elm_hwmod = { + .name ="elm" , + .class = &omap44xx_elm_hwmod_class, + .clkdm_name ="l4_per_clkdm" , + .mpu_irqs = omap44xx_elm_irqs, + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L4PER_ELM_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L4PER_ELM_CONTEXT_OFFSET , + }, + }, +}; + +/* * 'emif' class * external memory interface no1 */
@@ -2268,6 +2360,29 @@ static struct omap_hwmod omap44xx_mpu_hwmod = { };/* +* 'sl2if' class +* shared level 2 memory interface +*/ + +static struct omap_hwmod_class omap44xx_sl2if_hwmod_class = { + .name ="sl2if" , +}; + +/* sl2if */ +static struct omap_hwmod omap44xx_sl2if_hwmod = { + .name ="sl2if" , + .class = &omap44xx_sl2if_hwmod_class, + .clkdm_name ="ivahd_clkdm" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_IVAHD_SL2_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_IVAHD_SL2_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, +}; + +/* * 'slimbus' class * bidirectional, multi-drop, multi-channel two-line serial interface between * the device and external components
@@ -3181,6 +3296,32 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = {* interfaces */ +static struct omap_hwmod_addr_space omap44xx_c2c_target_fw_addrs[] = { + { + .pa_start =0x4a204000 , + .pa_end =0x4a2040ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* c2c -> c2c_target_fw */ +static struct omap_hwmod_ocp_if omap44xx_c2c__c2c_target_fw = { + .master = &omap44xx_c2c_hwmod, + .slave = &omap44xx_c2c_target_fw_hwmod, + .clk ="div_core_ck" , + .addr = omap44xx_c2c_target_fw_addrs, + .user =OCP_USER_MPU , +}; + +/* l4_cfg -> c2c_target_fw */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__c2c_target_fw = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_c2c_target_fw_hwmod, + .clk ="l4_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l3_main_1 -> dmm */ static struct omap_hwmod_ocp_if omap44xx_l3_main_1__dmm = { .master = &omap44xx_l3_main_1_hwmod,
@@ -3207,6 +3348,14 @@ static struct omap_hwmod_ocp_if omap44xx_mpu__dmm = { .user = OCP_USER_MPU, }; +/* c2c -> emif_fw */ +static struct omap_hwmod_ocp_if omap44xx_c2c__emif_fw = { + .master = &omap44xx_c2c_hwmod, + .slave = &omap44xx_emif_fw_hwmod, + .clk ="div_core_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* dmm -> emif_fw */ static struct omap_hwmod_ocp_if omap44xx_dmm__emif_fw = { .master = &omap44xx_dmm_hwmod,
@@ -3315,6 +3464,14 @@ static struct omap_hwmod_ocp_if omap44xx_mpu__l3_main_1 = { .user = OCP_USER_MPU, }; +/* c2c_target_fw -> l3_main_2 */ +static struct omap_hwmod_ocp_if omap44xx_c2c_target_fw__l3_main_2 = { + .master = &omap44xx_c2c_target_fw_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* dma_system -> l3_main_2 */ static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = { .master = &omap44xx_dma_system_hwmod,
@@ -3547,6 +3704,14 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__aess_dma = { .user = OCP_USER_SDMA, }; +/* l3_main_2 -> c2c */ +static struct omap_hwmod_ocp_if omap44xx_l3_main_2__c2c = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap44xx_c2c_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_counter_32k_addrs[] = { { .pa_start =0x4a304000 ,
@@ -3629,6 +3794,14 @@ static struct omap_hwmod_ocp_if omap44xx_dsp__iva = { .user = OCP_USER_DSP, }; +/* dsp -> sl2if */ +static struct omap_hwmod_ocp_if omap44xx_dsp__sl2if = { + .master = &omap44xx_dsp_hwmod, + .slave = &omap44xx_sl2if_hwmod, + .clk ="dpll_iva_m5x2_ck" , + .user =OCP_USER_DSP , +}; +/* l4_cfg -> dsp */ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__dsp = { .master = &omap44xx_l4_cfg_hwmod,
@@ -3889,6 +4062,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__dss_venc = { .user = OCP_USER_MPU, }; +static struct omap_hwmod_addr_space omap44xx_elm_addrs[] = { + { + .pa_start =0x48078000 , + .pa_end =0x48078fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_per -> elm */ +static struct omap_hwmod_ocp_if omap44xx_l4_per__elm = { + .master = &omap44xx_l4_per_hwmod, + .slave = &omap44xx_elm_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_elm_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_emif1_addrs[] = { { .pa_start =0x4c000000 ,
@@ -4221,6 +4412,14 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iss = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* iva -> sl2if */ +static struct omap_hwmod_ocp_if omap44xx_iva__sl2if = { + .master = &omap44xx_iva_hwmod, + .slave = &omap44xx_sl2if_hwmod, + .clk ="dpll_iva_m5x2_ck" , + .user =OCP_USER_IVA , +}; +static struct omap_hwmod_addr_space omap44xx_iva_addrs[] = { { .pa_start =0x5a000000 ,
@@ -4641,6 +4840,14 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__mmc5 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l3_main_2 -> sl2if */ +static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sl2if = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap44xx_sl2if_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_slimbus1_addrs[] = { { .pa_start =0x4012c000 ,
@@ -5230,8 +5437,11 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__wd_timer3_dma = { };static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[]__initdata = { + &omap44xx_c2c__c2c_target_fw, + &omap44xx_l4_cfg__c2c_target_fw, &omap44xx_l3_main_1__dmm, &omap44xx_mpu__dmm, + &omap44xx_c2c__emif_fw, &omap44xx_dmm__emif_fw, &omap44xx_l4_cfg__emif_fw, &omap44xx_iva__l3_instr,
@@ -5243,6 +5453,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_mmc1__l3_main_1, &omap44xx_mmc2__l3_main_1, &omap44xx_mpu__l3_main_1, + &omap44xx_c2c_target_fw__l3_main_2, &omap44xx_dma_system__l3_main_2, &omap44xx_fdif__l3_main_2, &omap44xx_gpu__l3_main_2,
@@ -5267,11 +5478,13 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_mpu__mpu_private, &omap44xx_l4_abe__aess, &omap44xx_l4_abe__aess_dma, + &omap44xx_l3_main_2__c2c, &omap44xx_l4_wkup__counter_32k, &omap44xx_l4_cfg__dma_system, &omap44xx_l4_abe__dmic, &omap44xx_l4_abe__dmic_dma, &omap44xx_dsp__iva, + &omap44xx_dsp__sl2if, &omap44xx_l4_cfg__dsp, &omap44xx_l3_main_2__dss, &omap44xx_l4_per__dss,
@@ -5287,6 +5500,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__dss_rfbi, &omap44xx_l3_main_2__dss_venc, &omap44xx_l4_per__dss_venc, + &omap44xx_l4_per__elm, &omap44xx_emif_fw__emif1, &omap44xx_emif_fw__emif2, &omap44xx_l4_cfg__fdif,
@@ -5306,6 +5520,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__i2c4, &omap44xx_l3_main_2__ipu, &omap44xx_l3_main_2__iss, + &omap44xx_iva__sl2if, &omap44xx_l3_main_2__iva, &omap44xx_l4_wkup__kbd, &omap44xx_l4_cfg__mailbox,
@@ -5329,6 +5544,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__mmc3, &omap44xx_l4_per__mmc4, &omap44xx_l4_per__mmc5, + &omap44xx_l3_main_2__sl2if, &omap44xx_l4_abe__slimbus1, &omap44xx_l4_abe__slimbus1_dma, &omap44xx_l4_per__slimbus2,
arch/arm/plat-omap/include/plat/omap_hwmod.h +1 -0
@@ -214,6 +214,7 @@ struct omap_hwmod_addr_space {#define OCP_USER_MPU (1 << 0)#define OCP_USER_SDMA (1 << 1)#define OCP_USER_DSP (1 << 2) +#define OCP_USER_IVA (1 << 3)/* omap_hwmod_ocp_if.flags bits */ #define OCPIF_SWSUP_IDLE (1 << 0)
Paul Walmsley
maintainerPATCH 10/15 ARM: OMAP4: hwmod data: add remaining USB-related IP blocks
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add the OCP2SCP IP block and interconnect data. The OCP2SCP can be used in conjunction with the on-chip embedded USB PHY, associated with the OTG controller.
Add the on-chip full-speed USB host controller IP block and interconnect data.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 120 +++++++++++++++++++++++++++- 1 files changed, 116 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +116 -4
@@ -281,15 +281,11 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* mpu_c0 * mpu_c1 * ocmc_ram -* ocp2scp_usb_phy * ocp_wp_noc * prcm_mpu * prm * scrm -* usb_host_fs -* usb_host_hs * usb_phy_cm -* usb_tll_hs * usim */
@@ -2360,6 +2356,36 @@ static struct omap_hwmod omap44xx_mpu_hwmod = { };/* +* 'ocp2scp' class +* bridge to transform ocp interface protocol to scp (serial control port) +* protocol +*/ + +static struct omap_hwmod_class omap44xx_ocp2scp_hwmod_class = { + .name ="ocp2scp" , +}; + +/* ocp2scp_usb_phy */ +static struct omap_hwmod_opt_clk ocp2scp_usb_phy_opt_clks[] = { + { .role ="phy_48m" , .clk ="ocp2scp_usb_phy_phy_48m" }, +}; + +static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { + .name ="ocp2scp_usb_phy" , + .class = &omap44xx_ocp2scp_hwmod_class, + .clkdm_name ="l3_init_clkdm" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L3INIT_USBPHYOCP2SCP_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, + .opt_clks = ocp2scp_usb_phy_opt_clks, + .opt_clks_cnt =ARRAY_SIZE (ocp2scp_usb_phy_opt_clks), +}; + +/* * 'sl2if' class * shared level 2 memory interface */
@@ -3042,6 +3068,55 @@ static struct omap_hwmod omap44xx_uart4_hwmod = { };/* +* 'usb_host_fs' class +* full-speed usb host controller +*/ + +/* The IP is not compliant to type1 / type2 scheme */ +static struct omap_hwmod_sysc_fields omap_hwmod_sysc_type_usb_host_fs = { + .midle_shift =4 , + .sidle_shift =2 , + .srst_shift =1 , +}; + +static struct omap_hwmod_class_sysconfig omap44xx_usb_host_fs_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0210 , + .sysc_flags = (SYSC_HAS_MIDLEMODE |SYSC_HAS_SIDLEMODE | +SYSC_HAS_SOFTRESET ), + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +SIDLE_SMART_WKUP ), + .sysc_fields = &omap_hwmod_sysc_type_usb_host_fs, +}; + +static struct omap_hwmod_class omap44xx_usb_host_fs_hwmod_class = { + .name ="usb_host_fs" , + .sysc = &omap44xx_usb_host_fs_sysc, +}; + +/* usb_host_fs */ +static struct omap_hwmod_irq_info omap44xx_usb_host_fs_irqs[] = { + { .name ="std" , .irq =89 +OMAP44XX_IRQ_GIC_START }, + { .name ="smi" , .irq =90 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_usb_host_fs_hwmod = { + .name ="usb_host_fs" , + .class = &omap44xx_usb_host_fs_hwmod_class, + .clkdm_name ="l3_init_clkdm" , + .mpu_irqs = omap44xx_usb_host_fs_irqs, + .main_clk ="usb_host_fs_fck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L3INIT_USB_HOST_FS_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L3INIT_USB_HOST_FS_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'usb_host_hs' class * high-speed multi-port usb host controller */
@@ -3554,6 +3629,14 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_2 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* usb_host_fs -> l3_main_2 */ +static struct omap_hwmod_ocp_if omap44xx_usb_host_fs__l3_main_2 = { + .master = &omap44xx_usb_host_fs_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* usb_host_hs -> l3_main_2 */ static struct omap_hwmod_ocp_if omap44xx_usb_host_hs__l3_main_2 = { .master = &omap44xx_usb_host_hs_hwmod,
@@ -4840,6 +4923,14 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__mmc5 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l4_cfg -> ocp2scp_usb_phy */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp2scp_usb_phy = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_ocp2scp_usb_phy_hwmod, + .clk ="l4_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l3_main_2 -> sl2if */ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sl2if = { .master = &omap44xx_l3_main_2_hwmod,
@@ -5316,6 +5407,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__uart4 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_usb_host_fs_addrs[] = { + { + .pa_start =0x4a0a9000 , + .pa_end =0x4a0a93ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> usb_host_fs */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usb_host_fs = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_usb_host_fs_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_usb_host_fs_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_usb_host_hs_addrs[] = { { .name ="uhh" ,
@@ -5463,6 +5572,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_iva__l3_main_2, &omap44xx_l3_main_1__l3_main_2, &omap44xx_l4_cfg__l3_main_2, + &omap44xx_usb_host_fs__l3_main_2, &omap44xx_usb_host_hs__l3_main_2, &omap44xx_usb_otg_hs__l3_main_2, &omap44xx_l3_main_1__l3_main_3,
@@ -5544,6 +5654,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__mmc3, &omap44xx_l4_per__mmc4, &omap44xx_l4_per__mmc5, + &omap44xx_l4_cfg__ocp2scp_usb_phy, &omap44xx_l3_main_2__sl2if, &omap44xx_l4_abe__slimbus1, &omap44xx_l4_abe__slimbus1_dma,
@@ -5571,6 +5682,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__uart2, &omap44xx_l4_per__uart3, &omap44xx_l4_per__uart4, + &omap44xx_l4_cfg__usb_host_fs, &omap44xx_l4_cfg__usb_host_hs, &omap44xx_l4_cfg__usb_otg_hs, &omap44xx_l4_cfg__usb_tll_hs,
Paul Walmsley
maintainerPATCH 11/15 ARM: OMAP4: hwmod data: add OCM RAM IP block
In reply to Paul WalmsleyAdd the OCM RAM IP block and interconnect data. This is an oh-chip block of SRAM connected directly to the L3 bus.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 32 +++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +31 -1
@@ -280,7 +280,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* efuse_ctrl_std * mpu_c0 * mpu_c1 -* ocmc_ram * ocp_wp_noc * prcm_mpu * prm
@@ -2356,6 +2355,28 @@ static struct omap_hwmod omap44xx_mpu_hwmod = { };/* +* 'ocmc_ram' class +* top-level core on-chip ram +*/ + +static struct omap_hwmod_class omap44xx_ocmc_ram_hwmod_class = { + .name ="ocmc_ram" , +}; + +/* ocmc_ram */ +static struct omap_hwmod omap44xx_ocmc_ram_hwmod = { + .name ="ocmc_ram" , + .class = &omap44xx_ocmc_ram_hwmod_class, + .clkdm_name ="l3_2_clkdm" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L3_2_OCMC_RAM_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L3_2_OCMC_RAM_CONTEXT_OFFSET , + }, + }, +}; + +/* * 'ocp2scp' class * bridge to transform ocp interface protocol to scp (serial control port) * protocol
@@ -4923,6 +4944,14 @@ static struct omap_hwmod_ocp_if omap44xx_l4_per__mmc5 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l3_main_2 -> ocmc_ram */ +static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap44xx_ocmc_ram_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l4_cfg -> ocp2scp_usb_phy */ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp2scp_usb_phy = { .master = &omap44xx_l4_cfg_hwmod,
@@ -5654,6 +5683,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__mmc3, &omap44xx_l4_per__mmc4, &omap44xx_l4_per__mmc5, + &omap44xx_l3_main_2__ocmc_ram, &omap44xx_l4_cfg__ocp2scp_usb_phy, &omap44xx_l3_main_2__sl2if, &omap44xx_l4_abe__slimbus1,
Paul Walmsley
maintainerPATCH 12/15 ARM: OMAP4: hwmod data: add the OCP-WP IP block
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add the OCP-WP hwmod and associated interconnect data. The OCP-WP, or OCP watchpoint, can be used to collect interconnect data and transmit it via the STM port.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 51 +++++++++++++++++++++++++++- 1 files changed, 50 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +50 -1
@@ -262,6 +262,28 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = { };/* +* 'ocp_wp_noc' class +* instance(s): ocp_wp_noc +*/ +static struct omap_hwmod_class omap44xx_ocp_wp_noc_hwmod_class = { + .name ="ocp_wp_noc" , +}; + +/* ocp_wp_noc */ +static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = { + .name ="ocp_wp_noc" , + .class = &omap44xx_ocp_wp_noc_hwmod_class, + .clkdm_name ="l3_instr_clkdm" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_L3INSTR_OCP_WP1_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_L3INSTR_OCP_WP1_CONTEXT_OFFSET , + .modulemode =MODULEMODE_HWCTRL , + }, + }, +}; + +/* * Modules omap_hwmod structures * * The following IPs are excluded for the moment because:
@@ -280,7 +302,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {* efuse_ctrl_std * mpu_c0 * mpu_c1 -* ocp_wp_noc * prcm_mpu * prm * scrm
@@ -3494,6 +3515,14 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_3__l3_instr = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* ocp_wp_noc -> l3_instr */ +static struct omap_hwmod_ocp_if omap44xx_ocp_wp_noc__l3_instr = { + .master = &omap44xx_ocp_wp_noc_hwmod, + .slave = &omap44xx_l3_instr_hwmod, + .clk ="l3_div_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* dsp -> l3_main_1 */ static struct omap_hwmod_ocp_if omap44xx_dsp__l3_main_1 = { .master = &omap44xx_dsp_hwmod,
@@ -3772,6 +3801,24 @@ static struct omap_hwmod_ocp_if omap44xx_mpu__mpu_private = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_ocp_wp_noc_addrs[] = { + { + .pa_start =0x4a102000 , + .pa_end =0x4a10207f , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> ocp_wp_noc */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp_wp_noc = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_ocp_wp_noc_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_ocp_wp_noc_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_aess_addrs[] = { { .pa_start =0x401f1000 ,
@@ -5584,6 +5631,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_cfg__emif_fw, &omap44xx_iva__l3_instr, &omap44xx_l3_main_3__l3_instr, + &omap44xx_ocp_wp_noc__l3_instr, &omap44xx_dsp__l3_main_1, &omap44xx_dss__l3_main_1, &omap44xx_l3_main_2__l3_main_1,
@@ -5615,6 +5663,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l3_main_2__l4_per, &omap44xx_l4_cfg__l4_wkup, &omap44xx_mpu__mpu_private, + &omap44xx_l4_cfg__ocp_wp_noc, &omap44xx_l4_abe__aess, &omap44xx_l4_abe__aess_dma, &omap44xx_l3_main_2__c2c,
Paul Walmsley
maintainerPATCH 13/15 ARM: OMAP4: hwmod data: add System Control Module
In reply to Paul WalmsleyAdd the System Control Module hwmod and associated interconnect data.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 134 +++++++++++++++++++++++++++- 1 files changed, 130 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +130 -4
@@ -293,10 +293,6 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = {* * cm_core * cm_core_aon -* ctrl_module_core -* ctrl_module_pad_core -* ctrl_module_pad_wkup -* ctrl_module_wkup * debugss * efuse_ctrl_cust * efuse_ctrl_std
@@ -433,6 +429,60 @@ static struct omap_hwmod omap44xx_counter_32k_hwmod = { };/* +* 'ctrl_module' class +* attila core control module + core pad control module + wkup pad control +* module + attila wkup control module +*/ + +static struct omap_hwmod_class_sysconfig omap44xx_ctrl_module_sysc = { + .rev_offs =0x0000 , + .sysc_offs =0x0010 , + .sysc_flags =SYSC_HAS_SIDLEMODE , + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART | +SIDLE_SMART_WKUP ), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap44xx_ctrl_module_hwmod_class = { + .name ="ctrl_module" , + .sysc = &omap44xx_ctrl_module_sysc, +}; + +/* ctrl_module_core */ +static struct omap_hwmod_irq_info omap44xx_ctrl_module_core_irqs[] = { + { .irq =8 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod omap44xx_ctrl_module_core_hwmod = { + .name ="ctrl_module_core" , + .class = &omap44xx_ctrl_module_hwmod_class, + .clkdm_name ="l4_cfg_clkdm" , + .mpu_irqs = omap44xx_ctrl_module_core_irqs, +}; + +/* ctrl_module_pad_core */ +static struct omap_hwmod omap44xx_ctrl_module_pad_core_hwmod = { + .name ="ctrl_module_pad_core" , + .class = &omap44xx_ctrl_module_hwmod_class, + .clkdm_name ="l4_cfg_clkdm" , +}; + +/* ctrl_module_wkup */ +static struct omap_hwmod omap44xx_ctrl_module_wkup_hwmod = { + .name ="ctrl_module_wkup" , + .class = &omap44xx_ctrl_module_hwmod_class, + .clkdm_name ="l4_wkup_clkdm" , +}; + +/* ctrl_module_pad_wkup */ +static struct omap_hwmod omap44xx_ctrl_module_pad_wkup_hwmod = { + .name ="ctrl_module_pad_wkup" , + .class = &omap44xx_ctrl_module_hwmod_class, + .clkdm_name ="l4_wkup_clkdm" , +}; + +/* * 'dma' class * dma controller for data exchange between memory to memory (i.e. internal or * external memory) and gp peripherals to memory or memory to gp peripherals
@@ -3881,6 +3931,78 @@ static struct omap_hwmod_ocp_if omap44xx_l4_wkup__counter_32k = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_ctrl_module_core_addrs[] = { + { + .pa_start =0x4a002000 , + .pa_end =0x4a0027ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> ctrl_module_core */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ctrl_module_core = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_ctrl_module_core_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_ctrl_module_core_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_ctrl_module_pad_core_addrs[] = { + { + .pa_start =0x4a100000 , + .pa_end =0x4a1007ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> ctrl_module_pad_core */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ctrl_module_pad_core = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_ctrl_module_pad_core_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_ctrl_module_pad_core_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_ctrl_module_wkup_addrs[] = { + { + .pa_start =0x4a30c000 , + .pa_end =0x4a30c7ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_wkup -> ctrl_module_wkup */ +static struct omap_hwmod_ocp_if omap44xx_l4_wkup__ctrl_module_wkup = { + .master = &omap44xx_l4_wkup_hwmod, + .slave = &omap44xx_ctrl_module_wkup_hwmod, + .clk ="l4_wkup_clk_mux_ck" , + .addr = omap44xx_ctrl_module_wkup_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_ctrl_module_pad_wkup_addrs[] = { + { + .pa_start =0x4a31e000 , + .pa_end =0x4a31e7ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_wkup -> ctrl_module_pad_wkup */ +static struct omap_hwmod_ocp_if omap44xx_l4_wkup__ctrl_module_pad_wkup = { + .master = &omap44xx_l4_wkup_hwmod, + .slave = &omap44xx_ctrl_module_pad_wkup_hwmod, + .clk ="l4_wkup_clk_mux_ck" , + .addr = omap44xx_ctrl_module_pad_wkup_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_dma_system_addrs[] = { { .pa_start =0x4a056000 ,
@@ -5668,6 +5790,10 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_abe__aess_dma, &omap44xx_l3_main_2__c2c, &omap44xx_l4_wkup__counter_32k, + &omap44xx_l4_cfg__ctrl_module_core, + &omap44xx_l4_cfg__ctrl_module_pad_core, + &omap44xx_l4_wkup__ctrl_module_wkup, + &omap44xx_l4_wkup__ctrl_module_pad_wkup, &omap44xx_l4_cfg__dma_system, &omap44xx_l4_abe__dmic, &omap44xx_l4_abe__dmic_dma,
Paul Walmsley
maintainerPATCH 14/15 ARM: OMAP4: hwmod data: add PRCM and related IP blocks
In reply to Paul WalmsleyAdd the PRCM, CM, PRM, and related hwmod and associated interconnect data. These IP blocks handle most of the on-chip power, reset, and clock control.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 167 +++++++++++++++++++++++++++- 1 files changed, 162 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +162 -5
@@ -291,16 +291,11 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = {* - They still need to be validated with the driver * properly adapted to omap_hwmod / omap_device * -* cm_core -* cm_core_aon * debugss * efuse_ctrl_cust * efuse_ctrl_std * mpu_c0 * mpu_c1 -* prcm_mpu -* prm -* scrm * usb_phy_cm * usim */
@@ -2478,6 +2473,73 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { };/* +* 'prcm' class +* power and reset manager (part of the prcm infrastructure) + clock manager 2 +* + clock manager 1 (in always on power domain) + local prm in mpu +*/ + +static struct omap_hwmod_class omap44xx_prcm_hwmod_class = { + .name ="prcm" , +}; + +/* prcm_mpu */ +static struct omap_hwmod omap44xx_prcm_mpu_hwmod = { + .name ="prcm_mpu" , + .class = &omap44xx_prcm_hwmod_class, + .clkdm_name ="l4_wkup_clkdm" , +}; + +/* cm_core_aon */ +static struct omap_hwmod omap44xx_cm_core_aon_hwmod = { + .name ="cm_core_aon" , + .class = &omap44xx_prcm_hwmod_class, + .clkdm_name ="cm_clkdm" , +}; + +/* cm_core */ +static struct omap_hwmod omap44xx_cm_core_hwmod = { + .name ="cm_core" , + .class = &omap44xx_prcm_hwmod_class, + .clkdm_name ="cm_clkdm" , +}; + +/* prm */ +static struct omap_hwmod_irq_info omap44xx_prm_irqs[] = { + { .irq =11 +OMAP44XX_IRQ_GIC_START }, + { .irq =-1 } +}; + +static struct omap_hwmod_rst_info omap44xx_prm_resets[] = { + { .name ="rst_global_warm_sw" , .rst_shift =0 }, + { .name ="rst_global_cold_sw" , .rst_shift =1 }, +}; + +static struct omap_hwmod omap44xx_prm_hwmod = { + .name ="prm" , + .class = &omap44xx_prcm_hwmod_class, + .clkdm_name ="prm_clkdm" , + .mpu_irqs = omap44xx_prm_irqs, + .rst_lines = omap44xx_prm_resets, + .rst_lines_cnt =ARRAY_SIZE (omap44xx_prm_resets), +}; + +/* +* 'scrm' class +* system clock and reset manager +*/ + +static struct omap_hwmod_class omap44xx_scrm_hwmod_class = { + .name ="scrm" , +}; + +/* scrm */ +static struct omap_hwmod omap44xx_scrm_hwmod = { + .name ="scrm" , + .class = &omap44xx_scrm_hwmod_class, + .clkdm_name ="l4_wkup_clkdm" , +}; + +/* * 'sl2if' class * shared level 2 memory interface */
@@ -5129,6 +5191,96 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp2scp_usb_phy = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_prcm_mpu_addrs[] = { + { + .pa_start =0x48243000 , + .pa_end =0x48243fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* mpu_private -> prcm_mpu */ +static struct omap_hwmod_ocp_if omap44xx_mpu_private__prcm_mpu = { + .master = &omap44xx_mpu_private_hwmod, + .slave = &omap44xx_prcm_mpu_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_prcm_mpu_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_cm_core_aon_addrs[] = { + { + .pa_start =0x4a004000 , + .pa_end =0x4a004fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_wkup -> cm_core_aon */ +static struct omap_hwmod_ocp_if omap44xx_l4_wkup__cm_core_aon = { + .master = &omap44xx_l4_wkup_hwmod, + .slave = &omap44xx_cm_core_aon_hwmod, + .clk ="l4_wkup_clk_mux_ck" , + .addr = omap44xx_cm_core_aon_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_cm_core_addrs[] = { + { + .pa_start =0x4a008000 , + .pa_end =0x4a009fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_cfg -> cm_core */ +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__cm_core = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_cm_core_hwmod, + .clk ="l4_div_ck" , + .addr = omap44xx_cm_core_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_prm_addrs[] = { + { + .pa_start =0x4a306000 , + .pa_end =0x4a307fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_wkup -> prm */ +static struct omap_hwmod_ocp_if omap44xx_l4_wkup__prm = { + .master = &omap44xx_l4_wkup_hwmod, + .slave = &omap44xx_prm_hwmod, + .clk ="l4_wkup_clk_mux_ck" , + .addr = omap44xx_prm_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; + +static struct omap_hwmod_addr_space omap44xx_scrm_addrs[] = { + { + .pa_start =0x4a30a000 , + .pa_end =0x4a30a7ff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l4_wkup -> scrm */ +static struct omap_hwmod_ocp_if omap44xx_l4_wkup__scrm = { + .master = &omap44xx_l4_wkup_hwmod, + .slave = &omap44xx_scrm_hwmod, + .clk ="l4_wkup_clk_mux_ck" , + .addr = omap44xx_scrm_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l3_main_2 -> sl2if */ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sl2if = { .master = &omap44xx_l3_main_2_hwmod,
@@ -5860,6 +6012,11 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__mmc5, &omap44xx_l3_main_2__ocmc_ram, &omap44xx_l4_cfg__ocp2scp_usb_phy, + &omap44xx_mpu_private__prcm_mpu, + &omap44xx_l4_wkup__cm_core_aon, + &omap44xx_l4_cfg__cm_core, + &omap44xx_l4_wkup__prm, + &omap44xx_l4_wkup__scrm, &omap44xx_l3_main_2__sl2if, &omap44xx_l4_abe__slimbus1, &omap44xx_l4_abe__slimbus1_dma,
Paul Walmsley
maintainerPATCH 15/15 ARM: OMAP4: hwmod data: add DEBUGSS skeleton
In reply to Paul WalmsleyFrom: Beno?t Cousson <[email protected]>
Add a skeleton hwmod for the DEBUGSS and associated interconnect data. This is a basic set of data that will need further additions as further DEBUGSS information becomes available.
--- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 59 +++++++++++++++++++++++++--- 1 files changed, 52 insertions(+), 7 deletions(-)
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +52 -7
@@ -291,13 +291,7 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = {* - They still need to be validated with the driver * properly adapted to omap_hwmod / omap_device * -* debugss -* efuse_ctrl_cust -* efuse_ctrl_std -* mpu_c0 -* mpu_c1 -* usb_phy_cm -* usim +* usim */ /*
@@ -478,6 +472,29 @@ static struct omap_hwmod omap44xx_ctrl_module_pad_wkup_hwmod = { };/* +* 'debugss' class +* debug and emulation sub system +*/ + +static struct omap_hwmod_class omap44xx_debugss_hwmod_class = { + .name ="debugss" , +}; + +/* debugss */ +static struct omap_hwmod omap44xx_debugss_hwmod = { + .name ="debugss" , + .class = &omap44xx_debugss_hwmod_class, + .clkdm_name ="emu_sys_clkdm" , + .main_clk ="trace_clk_div_ck" , + .prcm = { + .omap4 = { + .clkctrl_offs =OMAP4_CM_EMU_DEBUGSS_CLKCTRL_OFFSET , + .context_offs =OMAP4_RM_EMU_DEBUGSS_CONTEXT_OFFSET , + }, + }, +}; + +/* * 'dma' class * dma controller for data exchange between memory to memory (i.e. internal or * external memory) and gp peripherals to memory or memory to gp peripherals
@@ -3709,6 +3726,14 @@ static struct omap_hwmod_ocp_if omap44xx_c2c_target_fw__l3_main_2 = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* debugss -> l3_main_2 */ +static struct omap_hwmod_ocp_if omap44xx_debugss__l3_main_2 = { + .master = &omap44xx_debugss_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk ="dbgclk_mux_ck" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* dma_system -> l3_main_2 */ static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = { .master = &omap44xx_dma_system_hwmod,
@@ -4065,6 +4090,24 @@ static struct omap_hwmod_ocp_if omap44xx_l4_wkup__ctrl_module_pad_wkup = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +static struct omap_hwmod_addr_space omap44xx_debugss_addrs[] = { + { + .pa_start =0x54160000 , + .pa_end =0x54167fff , + .flags =ADDR_TYPE_RT + }, + { } +}; + +/* l3_instr -> debugss */ +static struct omap_hwmod_ocp_if omap44xx_l3_instr__debugss = { + .master = &omap44xx_l3_instr_hwmod, + .slave = &omap44xx_debugss_hwmod, + .clk ="l3_div_ck" , + .addr = omap44xx_debugss_addrs, + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +static struct omap_hwmod_addr_space omap44xx_dma_system_addrs[] = { { .pa_start =0x4a056000 ,
@@ -5914,6 +5957,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_mmc2__l3_main_1, &omap44xx_mpu__l3_main_1, &omap44xx_c2c_target_fw__l3_main_2, + &omap44xx_debugss__l3_main_2, &omap44xx_dma_system__l3_main_2, &omap44xx_fdif__l3_main_2, &omap44xx_gpu__l3_main_2,
@@ -5946,6 +5990,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_cfg__ctrl_module_pad_core, &omap44xx_l4_wkup__ctrl_module_wkup, &omap44xx_l4_wkup__ctrl_module_pad_wkup, + &omap44xx_l3_instr__debugss, &omap44xx_l4_cfg__dma_system, &omap44xx_l4_abe__dmic, &omap44xx_l4_abe__dmic_dma,
cover ARM: OMAP4: hwmod data: add almost all remaining IP blocks
In reply to Paul WalmsleyHi Paul,
Quoted 16 lines · Paul Walmsley
Hi
This series adds basic hwmods for all but one of the remaining OMAP4 IP blocks that can be meaningfully controlled by the kernel. (The remaining IP block is the USIM - there's a clocking problem that requires further investigation to resolve.)
There are a few new boot-time warnings added by this series:
[ 0.280548] omap_hwmod: trace_clk_div_ck: missing clockdomain for trace_clk_div_ck. [ 0.302429] omap_hwmod: ddrphy_ck: missing clockdomain for ddrphy_ck. [ 0.319519] omap_hwmod: sl2if: cannot be enabled for reset (3)These messages will be resolved by subsequent patches, and, while annoying, should not affect the operation of the system.
Quoted 8 lines
These patches have been boot-tested and suspend-tested on a OMAP44xx PandaBoard.
The series is intended to apply on the 'hwmod_remove_link_arrays_cleanup_3.4' branch, posted previously.
These patches are also available via git from
git://git.pwsan.com/linux-2.6
in the branch "hwmod_enable_remaining_hwmods_devel_3.4".
Could not find this branch on your tree. Found a 'enable_remaining_omap4_hwmods' instead, but that seems to be an old branch.
regards,
Rajendra
Quoted 48 lines
- Paul
---
hwmod_enable_remaining_hwmods_devel_3.4
text data bss dec hex filename
6590067 677452 5593500 12861019 c43e5b vmlinux.omap2plus_defconfig.orig
6594227 684620 5593500 12872347 c46a9b vmlinux.omap2plus_defconfigBeno?t Cousson (6):
ARM: OMAP4: hwmod data: add GPMC
ARM: OMAP4: hwmod data: add the Slimbus IP blocks
ARM: OMAP4: hwmod data: add McASP
ARM: OMAP4: hwmod data: add remaining USB-related IP blocks
ARM: OMAP4: hwmod data: add the OCP-WP IP block
ARM: OMAP4: hwmod data: add DEBUGSS skeletonMing Lei (1):
ARM: OMAP4: hwmod data: introduce fdif(face detect module) hwmodPaul Walmsley (8):
ARM: OMAP2+: clockdomains: make {prm,cm}_clkdm common
ARM: OMAP4: hwmod data: add HDQ/1-wire
ARM: OMAP4: hwmod data: add EMIF1 and 2
ARM: OMAP4: hwmod data: add GPU
ARM: OMAP4: hwmod data: add some interconnect-related IP blocks
ARM: OMAP4: hwmod data: add OCM RAM IP block
ARM: OMAP4: hwmod data: add System Control Module
ARM: OMAP4: hwmod data: add PRCM and related IP blocksarch/arm/mach-omap2/Makefile | 8 arch/arm/mach-omap2/clockdomain44xx.c | 6 arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c | 10 arch/arm/mach-omap2/clockdomains44xx_data.c | 2 arch/arm/mach-omap2/clockdomains_common_data.c | 24 arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1473 +++++++++++++++++++++- arch/arm/plat-omap/include/plat/omap_hwmod.h | 1 7 files changed, 1443 insertions(+), 81 deletions(-)create mode 100644
arch/arm/mach-omap2/clockdomains_common_data.c--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Paul Walmsley
maintainercover ARM: OMAP4: hwmod data: add almost all remaining IP blocks
Hi Rajendra,
Quoted 8 lines · Rajendra Nayak
Quoted 2 lines · Paul Walmsley
These patches are also available via git from
git://git.pwsan.com/linux-2.6
in the branch "hwmod_enable_remaining_hwmods_devel_3.4".Could not find this branch on your tree. Found a '
enable_remaining_omap4_hwmods' instead, but that seems to be an old branch.
Sorry about that. It should be pushed now.
- Paul