[PATCH] OMAP4: hwmod data: Fix SR flags, structures order and field alignment

Kevin Hilman khilman at deeprootsystems.com
Thu Dec 23 12:17:20 EST 2010


Benoit Cousson <b-cousson at ti.com> writes:

> Smartreflex is missing the recently introduced SIDLE_SMART_WKUP
> flag in idlemodes field.
>
> The merge of the DMA and SR series on top of the already modified
> omap_hwmod_data_44xx.c moved the dma_system structure at the wrong
> position in the file. The same thing happened for the SR structure.
> - Re-order the structures properly.
>
> In order to be fully aligned with the Python generator output,
> change a couple of fields.
> - Add tab in class and dev_attr structures to align fields
> - Add a comma at the end of the following line to simplify the
>   code generation:
>   ".pre_shutdown   = &omap2_wd_timer_disable,"
>
> Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> Cc: Paul Walmsley <paul at pwsan.com>
> Cc: Kevin Hilman <khilman at deeprootsystems.com>
> Cc: Thara Gopinath <thara at ti.com>
> Cc: G, Manjunath Kondaiah <manjugk at ti.com>

Acked-by: Kevin Hilman <khilman at deeprootsystems.com>

> ---
>  arch/arm/mach-omap2/omap_hwmod_44xx_data.c |  573 ++++++++++++++--------------
>  1 files changed, 285 insertions(+), 288 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> index e2ad1b6..c2806bd 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> @@ -66,7 +66,7 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod;
>   * instance(s): dmm
>   */
>  static struct omap_hwmod_class omap44xx_dmm_hwmod_class = {
> -	.name = "dmm",
> +	.name	= "dmm",
>  };
>  
>  /* dmm interface data */
> @@ -121,7 +121,7 @@ static struct omap_hwmod omap44xx_dmm_hwmod = {
>   * instance(s): emif_fw
>   */
>  static struct omap_hwmod_class omap44xx_emif_fw_hwmod_class = {
> -	.name = "emif_fw",
> +	.name	= "emif_fw",
>  };
>  
>  /* emif_fw interface data */
> @@ -170,7 +170,7 @@ static struct omap_hwmod omap44xx_emif_fw_hwmod = {
>   * instance(s): l3_instr, l3_main_1, l3_main_2, l3_main_3
>   */
>  static struct omap_hwmod_class omap44xx_l3_hwmod_class = {
> -	.name = "l3",
> +	.name	= "l3",
>  };
>  
>  /* l3_instr interface data */
> @@ -254,6 +254,14 @@ static struct omap_hwmod omap44xx_l3_main_1_hwmod = {
>  };
>  
>  /* l3_main_2 interface data */
> +/* dma_system -> l3_main_2 */
> +static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = {
> +	.master		= &omap44xx_dma_system_hwmod,
> +	.slave		= &omap44xx_l3_main_2_hwmod,
> +	.clk		= "l3_div_ck",
> +	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
>  /* iva -> l3_main_2 */
>  static struct omap_hwmod_ocp_if omap44xx_iva__l3_main_2 = {
>  	.master		= &omap44xx_iva_hwmod,
> @@ -270,14 +278,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l3_main_2 = {
>  	.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,
> -	.slave		= &omap44xx_l3_main_2_hwmod,
> -	.clk		= "l3_div_ck",
> -	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -};
> -
>  /* l4_cfg -> l3_main_2 */
>  static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_2 = {
>  	.master		= &omap44xx_l4_cfg_hwmod,
> @@ -347,7 +347,7 @@ static struct omap_hwmod omap44xx_l3_main_3_hwmod = {
>   * instance(s): l4_abe, l4_cfg, l4_per, l4_wkup
>   */
>  static struct omap_hwmod_class omap44xx_l4_hwmod_class = {
> -	.name = "l4",
> +	.name	= "l4",
>  };
>  
>  /* l4_abe interface data */
> @@ -461,7 +461,7 @@ static struct omap_hwmod omap44xx_l4_wkup_hwmod = {
>   * instance(s): mpu_private
>   */
>  static struct omap_hwmod_class omap44xx_mpu_bus_hwmod_class = {
> -	.name = "mpu_bus",
> +	.name	= "mpu_bus",
>  };
>  
>  /* mpu_private interface data */
> @@ -506,7 +506,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {
>   *  ctrl_module_pad_wkup
>   *  ctrl_module_wkup
>   *  debugss
> - *  dma_system
>   *  dmic
>   *  dss
>   *  dss_dispc
> @@ -556,9 +555,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {
>   *  sl2if
>   *  slimbus1
>   *  slimbus2
> - *  smartreflex_core
> - *  smartreflex_iva
> - *  smartreflex_mpu
>   *  spinlock
>   *  timer1
>   *  timer10
> @@ -580,12 +576,98 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = {
>   */
>  
>  /*
> + * '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
> + */
> +
> +static struct omap_hwmod_class_sysconfig omap44xx_dma_sysc = {
> +	.rev_offs	= 0x0000,
> +	.sysc_offs	= 0x002c,
> +	.syss_offs	= 0x0028,
> +	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
> +			   SYSC_HAS_EMUFREE | SYSC_HAS_MIDLEMODE |
> +			   SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
> +			   SYSS_HAS_RESET_STATUS),
> +	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +			   MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> +	.sysc_fields	= &omap_hwmod_sysc_type1,
> +};
> +
> +static struct omap_hwmod_class omap44xx_dma_hwmod_class = {
> +	.name	= "dma",
> +	.sysc	= &omap44xx_dma_sysc,
> +};
> +
> +/* dma dev_attr */
> +static struct omap_dma_dev_attr dma_dev_attr = {
> +	.dev_caps	= RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
> +			  IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
> +	.lch_count	= 32,
> +};
> +
> +/* dma_system */
> +static struct omap_hwmod_irq_info omap44xx_dma_system_irqs[] = {
> +	{ .name = "0", .irq = 12 + OMAP44XX_IRQ_GIC_START },
> +	{ .name = "1", .irq = 13 + OMAP44XX_IRQ_GIC_START },
> +	{ .name = "2", .irq = 14 + OMAP44XX_IRQ_GIC_START },
> +	{ .name = "3", .irq = 15 + OMAP44XX_IRQ_GIC_START },
> +};
> +
> +/* dma_system master ports */
> +static struct omap_hwmod_ocp_if *omap44xx_dma_system_masters[] = {
> +	&omap44xx_dma_system__l3_main_2,
> +};
> +
> +static struct omap_hwmod_addr_space omap44xx_dma_system_addrs[] = {
> +	{
> +		.pa_start	= 0x4a056000,
> +		.pa_end		= 0x4a0560ff,
> +		.flags		= ADDR_TYPE_RT
> +	},
> +};
> +
> +/* l4_cfg -> dma_system */
> +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__dma_system = {
> +	.master		= &omap44xx_l4_cfg_hwmod,
> +	.slave		= &omap44xx_dma_system_hwmod,
> +	.clk		= "l4_div_ck",
> +	.addr		= omap44xx_dma_system_addrs,
> +	.addr_cnt	= ARRAY_SIZE(omap44xx_dma_system_addrs),
> +	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +/* dma_system slave ports */
> +static struct omap_hwmod_ocp_if *omap44xx_dma_system_slaves[] = {
> +	&omap44xx_l4_cfg__dma_system,
> +};
> +
> +static struct omap_hwmod omap44xx_dma_system_hwmod = {
> +	.name		= "dma_system",
> +	.class		= &omap44xx_dma_hwmod_class,
> +	.mpu_irqs	= omap44xx_dma_system_irqs,
> +	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dma_system_irqs),
> +	.main_clk	= "l3_div_ck",
> +	.prcm = {
> +		.omap4 = {
> +			.clkctrl_reg = OMAP4430_CM_SDMA_SDMA_CLKCTRL,
> +		},
> +	},
> +	.dev_attr	= &dma_dev_attr,
> +	.slaves		= omap44xx_dma_system_slaves,
> +	.slaves_cnt	= ARRAY_SIZE(omap44xx_dma_system_slaves),
> +	.masters	= omap44xx_dma_system_masters,
> +	.masters_cnt	= ARRAY_SIZE(omap44xx_dma_system_masters),
> +	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> +};
> +
> +/*
>   * 'dsp' class
>   * dsp sub-system
>   */
>  
>  static struct omap_hwmod_class omap44xx_dsp_hwmod_class = {
> -	.name = "dsp",
> +	.name	= "dsp",
>  };
>  
>  /* dsp */
> @@ -682,15 +764,15 @@ static struct omap_hwmod_class_sysconfig omap44xx_gpio_sysc = {
>  };
>  
>  static struct omap_hwmod_class omap44xx_gpio_hwmod_class = {
> -	.name = "gpio",
> -	.sysc = &omap44xx_gpio_sysc,
> -	.rev = 2,
> +	.name	= "gpio",
> +	.sysc	= &omap44xx_gpio_sysc,
> +	.rev	= 2,
>  };
>  
>  /* gpio dev_attr */
>  static struct omap_gpio_dev_attr gpio_dev_attr = {
> -	.bank_width = 32,
> -	.dbck_flag = true,
> +	.bank_width	= 32,
> +	.dbck_flag	= true,
>  };
>  
>  /* gpio1 */
> @@ -1027,8 +1109,8 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = {
>  };
>  
>  static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
> -	.name = "i2c",
> -	.sysc = &omap44xx_i2c_sysc,
> +	.name	= "i2c",
> +	.sysc	= &omap44xx_i2c_sysc,
>  };
>  
>  /* i2c1 */
> @@ -1249,7 +1331,7 @@ static struct omap_hwmod omap44xx_i2c4_hwmod = {
>   */
>  
>  static struct omap_hwmod_class omap44xx_iva_hwmod_class = {
> -	.name = "iva",
> +	.name	= "iva",
>  };
>  
>  /* iva */
> @@ -1358,7 +1440,7 @@ static struct omap_hwmod omap44xx_iva_hwmod = {
>   */
>  
>  static struct omap_hwmod_class omap44xx_mpu_hwmod_class = {
> -	.name = "mpu",
> +	.name	= "mpu",
>  };
>  
>  /* mpu */
> @@ -1393,6 +1475,170 @@ static struct omap_hwmod omap44xx_mpu_hwmod = {
>  };
>  
>  /*
> + * 'smartreflex' class
> + * smartreflex module (monitor silicon performance and outputs a measure of
> + * performance error)
> + */
> +
> +/* The IP is not compliant to type1 / type2 scheme */
> +static struct omap_hwmod_sysc_fields omap_hwmod_sysc_type_smartreflex = {
> +	.sidle_shift	= 24,
> +	.enwkup_shift	= 26,
> +};
> +
> +static struct omap_hwmod_class_sysconfig omap44xx_smartreflex_sysc = {
> +	.sysc_offs	= 0x0038,
> +	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE),
> +	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +			   SIDLE_SMART_WKUP),
> +	.sysc_fields	= &omap_hwmod_sysc_type_smartreflex,
> +};
> +
> +static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
> +	.name	= "smartreflex",
> +	.sysc	= &omap44xx_smartreflex_sysc,
> +	.rev	= 2,
> +};
> +
> +/* smartreflex_core */
> +static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
> +static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
> +	{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
> +};
> +
> +static struct omap_hwmod_addr_space omap44xx_smartreflex_core_addrs[] = {
> +	{
> +		.pa_start	= 0x4a0dd000,
> +		.pa_end		= 0x4a0dd03f,
> +		.flags		= ADDR_TYPE_RT
> +	},
> +};
> +
> +/* l4_cfg -> smartreflex_core */
> +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_core = {
> +	.master		= &omap44xx_l4_cfg_hwmod,
> +	.slave		= &omap44xx_smartreflex_core_hwmod,
> +	.clk		= "l4_div_ck",
> +	.addr		= omap44xx_smartreflex_core_addrs,
> +	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_addrs),
> +	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +/* smartreflex_core slave ports */
> +static struct omap_hwmod_ocp_if *omap44xx_smartreflex_core_slaves[] = {
> +	&omap44xx_l4_cfg__smartreflex_core,
> +};
> +
> +static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
> +	.name		= "smartreflex_core",
> +	.class		= &omap44xx_smartreflex_hwmod_class,
> +	.mpu_irqs	= omap44xx_smartreflex_core_irqs,
> +	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
> +	.main_clk	= "smartreflex_core_fck",
> +	.vdd_name	= "core",
> +	.prcm = {
> +		.omap4 = {
> +			.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
> +		},
> +	},
> +	.slaves		= omap44xx_smartreflex_core_slaves,
> +	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
> +	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> +};
> +
> +/* smartreflex_iva */
> +static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
> +static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
> +	{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
> +};
> +
> +static struct omap_hwmod_addr_space omap44xx_smartreflex_iva_addrs[] = {
> +	{
> +		.pa_start	= 0x4a0db000,
> +		.pa_end		= 0x4a0db03f,
> +		.flags		= ADDR_TYPE_RT
> +	},
> +};
> +
> +/* l4_cfg -> smartreflex_iva */
> +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_iva = {
> +	.master		= &omap44xx_l4_cfg_hwmod,
> +	.slave		= &omap44xx_smartreflex_iva_hwmod,
> +	.clk		= "l4_div_ck",
> +	.addr		= omap44xx_smartreflex_iva_addrs,
> +	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_addrs),
> +	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +/* smartreflex_iva slave ports */
> +static struct omap_hwmod_ocp_if *omap44xx_smartreflex_iva_slaves[] = {
> +	&omap44xx_l4_cfg__smartreflex_iva,
> +};
> +
> +static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
> +	.name		= "smartreflex_iva",
> +	.class		= &omap44xx_smartreflex_hwmod_class,
> +	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,
> +	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
> +	.main_clk	= "smartreflex_iva_fck",
> +	.vdd_name	= "iva",
> +	.prcm = {
> +		.omap4 = {
> +			.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
> +		},
> +	},
> +	.slaves		= omap44xx_smartreflex_iva_slaves,
> +	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
> +	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> +};
> +
> +/* smartreflex_mpu */
> +static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
> +static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
> +	{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
> +};
> +
> +static struct omap_hwmod_addr_space omap44xx_smartreflex_mpu_addrs[] = {
> +	{
> +		.pa_start	= 0x4a0d9000,
> +		.pa_end		= 0x4a0d903f,
> +		.flags		= ADDR_TYPE_RT
> +	},
> +};
> +
> +/* l4_cfg -> smartreflex_mpu */
> +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_mpu = {
> +	.master		= &omap44xx_l4_cfg_hwmod,
> +	.slave		= &omap44xx_smartreflex_mpu_hwmod,
> +	.clk		= "l4_div_ck",
> +	.addr		= omap44xx_smartreflex_mpu_addrs,
> +	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_addrs),
> +	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +/* smartreflex_mpu slave ports */
> +static struct omap_hwmod_ocp_if *omap44xx_smartreflex_mpu_slaves[] = {
> +	&omap44xx_l4_cfg__smartreflex_mpu,
> +};
> +
> +static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
> +	.name		= "smartreflex_mpu",
> +	.class		= &omap44xx_smartreflex_hwmod_class,
> +	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,
> +	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
> +	.main_clk	= "smartreflex_mpu_fck",
> +	.vdd_name	= "mpu",
> +	.prcm = {
> +		.omap4 = {
> +			.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
> +		},
> +	},
> +	.slaves		= omap44xx_smartreflex_mpu_slaves,
> +	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
> +	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> +};
> +
> +/*
>   * 'uart' class
>   * universal asynchronous receiver/transmitter (uart)
>   */
> @@ -1410,8 +1656,8 @@ static struct omap_hwmod_class_sysconfig omap44xx_uart_sysc = {
>  };
>  
>  static struct omap_hwmod_class omap44xx_uart_hwmod_class = {
> -	.name = "uart",
> -	.sysc = &omap44xx_uart_sysc,
> +	.name	= "uart",
> +	.sysc	= &omap44xx_uart_sysc,
>  };
>  
>  /* uart1 */
> @@ -1643,7 +1889,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_wd_timer_sysc = {
>  static struct omap_hwmod_class omap44xx_wd_timer_hwmod_class = {
>  	.name		= "wd_timer",
>  	.sysc		= &omap44xx_wd_timer_sysc,
> -	.pre_shutdown	= &omap2_wd_timer_disable
> +	.pre_shutdown	= &omap2_wd_timer_disable,
>  };
>  
>  /* wd_timer2 */
> @@ -1755,257 +2001,8 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = {
>  	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>  };
>  
> -
> -/*
> - * '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
> - */
> -
> -static struct omap_hwmod_class_sysconfig omap44xx_dma_sysc = {
> -	.rev_offs	= 0x0000,
> -	.sysc_offs	= 0x002c,
> -	.syss_offs	= 0x0028,
> -	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
> -			   SYSC_HAS_EMUFREE | SYSC_HAS_MIDLEMODE |
> -			   SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
> -			   SYSS_HAS_RESET_STATUS),
> -	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> -			   MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> -	.sysc_fields	= &omap_hwmod_sysc_type1,
> -};
> -
> -/* dma attributes */
> -static struct omap_dma_dev_attr dma_dev_attr = {
> -	.dev_caps  = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
> -				IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
> -	.lch_count = 32,
> -};
> -
> -static struct omap_hwmod_class omap44xx_dma_hwmod_class = {
> -	.name	= "dma",
> -	.sysc	= &omap44xx_dma_sysc,
> -};
> -
> -/* dma_system */
> -static struct omap_hwmod_irq_info omap44xx_dma_system_irqs[] = {
> -	{ .name = "0", .irq = 12 + OMAP44XX_IRQ_GIC_START },
> -	{ .name = "1", .irq = 13 + OMAP44XX_IRQ_GIC_START },
> -	{ .name = "2", .irq = 14 + OMAP44XX_IRQ_GIC_START },
> -	{ .name = "3", .irq = 15 + OMAP44XX_IRQ_GIC_START },
> -};
> -
> -/* dma_system master ports */
> -static struct omap_hwmod_ocp_if *omap44xx_dma_system_masters[] = {
> -	&omap44xx_dma_system__l3_main_2,
> -};
> -
> -static struct omap_hwmod_addr_space omap44xx_dma_system_addrs[] = {
> -	{
> -		.pa_start	= 0x4a056000,
> -		.pa_end		= 0x4a0560ff,
> -		.flags		= ADDR_TYPE_RT
> -	},
> -};
> -
> -/* l4_cfg -> dma_system */
> -static struct omap_hwmod_ocp_if omap44xx_l4_cfg__dma_system = {
> -	.master		= &omap44xx_l4_cfg_hwmod,
> -	.slave		= &omap44xx_dma_system_hwmod,
> -	.clk		= "l4_div_ck",
> -	.addr		= omap44xx_dma_system_addrs,
> -	.addr_cnt	= ARRAY_SIZE(omap44xx_dma_system_addrs),
> -	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -};
> -
> -/* dma_system slave ports */
> -static struct omap_hwmod_ocp_if *omap44xx_dma_system_slaves[] = {
> -	&omap44xx_l4_cfg__dma_system,
> -};
> -
> -static struct omap_hwmod omap44xx_dma_system_hwmod = {
> -	.name		= "dma_system",
> -	.class		= &omap44xx_dma_hwmod_class,
> -	.mpu_irqs	= omap44xx_dma_system_irqs,
> -	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dma_system_irqs),
> -	.main_clk	= "l3_div_ck",
> -	.prcm = {
> -		.omap4 = {
> -			.clkctrl_reg = OMAP4430_CM_SDMA_SDMA_CLKCTRL,
> -		},
> -	},
> -	.slaves		= omap44xx_dma_system_slaves,
> -	.slaves_cnt	= ARRAY_SIZE(omap44xx_dma_system_slaves),
> -	.masters	= omap44xx_dma_system_masters,
> -	.masters_cnt	= ARRAY_SIZE(omap44xx_dma_system_masters),
> -	.dev_attr	= &dma_dev_attr,
> -	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -};
> -
> -/*
> - * 'smartreflex' class
> - * smartreflex module (monitor silicon performance and outputs a measure of
> - * performance error)
> - */
> -
> -/* The IP is not compliant to type1 / type2 scheme */
> -static struct omap_hwmod_sysc_fields omap_hwmod_sysc_type_smartreflex = {
> -	.sidle_shift	= 24,
> -	.enwkup_shift	= 26,
> -};
> -
> -static struct omap_hwmod_class_sysconfig omap44xx_smartreflex_sysc = {
> -	.sysc_offs	= 0x0038,
> -	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE),
> -	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
> -	.sysc_fields	= &omap_hwmod_sysc_type_smartreflex,
> -};
> -
> -static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
> -	.name = "smartreflex",
> -	.sysc = &omap44xx_smartreflex_sysc,
> -	.rev  = 2,
> -};
> -
> -/* smartreflex_core */
> -static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
> -static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
> -	{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
> -};
> -
> -static struct omap_hwmod_addr_space omap44xx_smartreflex_core_addrs[] = {
> -	{
> -		.pa_start	= 0x4a0dd000,
> -		.pa_end		= 0x4a0dd03f,
> -		.flags		= ADDR_TYPE_RT
> -	},
> -};
> -
> -/* l4_cfg -> smartreflex_core */
> -static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_core = {
> -	.master		= &omap44xx_l4_cfg_hwmod,
> -	.slave		= &omap44xx_smartreflex_core_hwmod,
> -	.clk		= "l4_div_ck",
> -	.addr		= omap44xx_smartreflex_core_addrs,
> -	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_addrs),
> -	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -};
> -
> -/* smartreflex_core slave ports */
> -static struct omap_hwmod_ocp_if *omap44xx_smartreflex_core_slaves[] = {
> -	&omap44xx_l4_cfg__smartreflex_core,
> -};
> -
> -static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
> -	.name		= "smartreflex_core",
> -	.class		= &omap44xx_smartreflex_hwmod_class,
> -	.mpu_irqs	= omap44xx_smartreflex_core_irqs,
> -	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
> -	.main_clk	= "smartreflex_core_fck",
> -	.vdd_name	= "core",
> -	.prcm = {
> -		.omap4 = {
> -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
> -		},
> -	},
> -	.slaves		= omap44xx_smartreflex_core_slaves,
> -	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
> -	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -};
> -
> -/* smartreflex_iva */
> -static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
> -static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
> -	{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
> -};
> -
> -static struct omap_hwmod_addr_space omap44xx_smartreflex_iva_addrs[] = {
> -	{
> -		.pa_start	= 0x4a0db000,
> -		.pa_end		= 0x4a0db03f,
> -		.flags		= ADDR_TYPE_RT
> -	},
> -};
> -
> -/* l4_cfg -> smartreflex_iva */
> -static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_iva = {
> -	.master		= &omap44xx_l4_cfg_hwmod,
> -	.slave		= &omap44xx_smartreflex_iva_hwmod,
> -	.clk		= "l4_div_ck",
> -	.addr		= omap44xx_smartreflex_iva_addrs,
> -	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_addrs),
> -	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -};
> -
> -/* smartreflex_iva slave ports */
> -static struct omap_hwmod_ocp_if *omap44xx_smartreflex_iva_slaves[] = {
> -	&omap44xx_l4_cfg__smartreflex_iva,
> -};
> -
> -static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
> -	.name		= "smartreflex_iva",
> -	.class		= &omap44xx_smartreflex_hwmod_class,
> -	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,
> -	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
> -	.main_clk	= "smartreflex_iva_fck",
> -	.vdd_name	= "iva",
> -	.prcm = {
> -		.omap4 = {
> -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
> -		},
> -	},
> -	.slaves		= omap44xx_smartreflex_iva_slaves,
> -	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
> -	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -};
> -
> -/* smartreflex_mpu */
> -static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
> -static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
> -	{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
> -};
> -
> -static struct omap_hwmod_addr_space omap44xx_smartreflex_mpu_addrs[] = {
> -	{
> -		.pa_start	= 0x4a0d9000,
> -		.pa_end		= 0x4a0d903f,
> -		.flags		= ADDR_TYPE_RT
> -	},
> -};
> -
> -/* l4_cfg -> smartreflex_mpu */
> -static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_mpu = {
> -	.master		= &omap44xx_l4_cfg_hwmod,
> -	.slave		= &omap44xx_smartreflex_mpu_hwmod,
> -	.clk		= "l4_div_ck",
> -	.addr		= omap44xx_smartreflex_mpu_addrs,
> -	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_addrs),
> -	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -};
> -
> -/* smartreflex_mpu slave ports */
> -static struct omap_hwmod_ocp_if *omap44xx_smartreflex_mpu_slaves[] = {
> -	&omap44xx_l4_cfg__smartreflex_mpu,
> -};
> -
> -static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
> -	.name		= "smartreflex_mpu",
> -	.class		= &omap44xx_smartreflex_hwmod_class,
> -	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,
> -	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
> -	.main_clk	= "smartreflex_mpu_fck",
> -	.vdd_name	= "mpu",
> -	.prcm = {
> -		.omap4 = {
> -			.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
> -		},
> -	},
> -	.slaves		= omap44xx_smartreflex_mpu_slaves,
> -	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
> -	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -};
> -
>  static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
> +
>  	/* dmm class */
>  	&omap44xx_dmm_hwmod,
>  
> @@ -2024,12 +2021,12 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
>  	&omap44xx_l4_per_hwmod,
>  	&omap44xx_l4_wkup_hwmod,
>  
> -	/* dma class */
> -	&omap44xx_dma_system_hwmod,
> -
>  	/* mpu_bus class */
>  	&omap44xx_mpu_private_hwmod,
>  
> +	/* dma class */
> +	&omap44xx_dma_system_hwmod,
> +
>  	/* dsp class */
>  	&omap44xx_dsp_hwmod,
>  	&omap44xx_dsp_c0_hwmod,
> @@ -2056,6 +2053,11 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
>  	/* mpu class */
>  	&omap44xx_mpu_hwmod,
>  
> +	/* smartreflex class */
> +	&omap44xx_smartreflex_core_hwmod,
> +	&omap44xx_smartreflex_iva_hwmod,
> +	&omap44xx_smartreflex_mpu_hwmod,
> +
>  	/* uart class */
>  	&omap44xx_uart1_hwmod,
>  	&omap44xx_uart2_hwmod,
> @@ -2066,11 +2068,6 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
>  	&omap44xx_wd_timer2_hwmod,
>  	&omap44xx_wd_timer3_hwmod,
>  
> -	/* smartreflex class */
> -	&omap44xx_smartreflex_core_hwmod,
> -	&omap44xx_smartreflex_iva_hwmod,
> -	&omap44xx_smartreflex_mpu_hwmod,
> -
>  	NULL,
>  };



More information about the linux-arm-kernel mailing list