Hi, On Thu, May 12, 2011 at 5:11 PM, Cousson, Benoit <b-cousson@xxxxxx> wrote: > Hi Shweta, > > On 5/11/2011 11:12 AM, Gulati, Shweta wrote: >> >> To set sr ntarget values for all volt_domain, >> volt_table is retrieved by doing a look_up of 'vdd_name' >> field from omap_hwmod but voltage domain pointer does not >> belong to omap_hwmod and is not used anywhere else. >> As a part of voltage layer and SR Layer clean up volt >> pointer is removed from omap_hwmod and added in dev >> attributes of SR. >> >> Tested on OMAP3630 SDP and OMAP4430 SDP Board >> >> Signed-off-by: Shweta Gulati<shweta.gulati@xxxxxx> >> Cc: Nishanth Menon<nm@xxxxxx> >> --- >> V3: >> Changed the Subject and Rephrased Commit log as reviewed >> by Nishanth Menon. >> V2: >> Rebased on latest 'pm-wip/voltdm_a' branch. >> >> arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 17 +++++++++++++---- >> arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 19 ++++++++++++++++--- > > Since this patch is touching some hwmod files, it will be good to Cc Paul > and me. It is far from obvious from the subject that hwmod data are involved > in this patch. Will do >> arch/arm/mach-omap2/smartreflex.h | 10 ++++++++++ >> arch/arm/mach-omap2/sr_device.c | 11 +++++++---- >> arch/arm/plat-omap/include/plat/omap_hwmod.h | 1 - >> 5 files changed, 46 insertions(+), 12 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c >> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c >> index 3cd91ac..6a704bd 100644 >> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c >> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c >> @@ -29,6 +29,7 @@ >> >> #include "omap_hwmod_common_data.h" >> >> +#include "smartreflex.h" >> #include "prm-regbits-34xx.h" >> #include "cm-regbits-34xx.h" >> #include "wd_timer.h" >> @@ -2904,6 +2905,10 @@ static struct omap_hwmod_class >> omap36xx_smartreflex_hwmod_class = { >> }; >> >> /* SR1 */ >> +static struct omap_sr_dev_attr sr1_dev_attr = { >> + .voltdm_name = "mpu_iva", >> +}; >> + >> static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = { >> &omap3_l4_core__sr1, >> }; >> @@ -2912,7 +2917,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = { >> .name = "sr1_hwmod", >> .class =&omap34xx_smartreflex_hwmod_class, >> .main_clk = "sr1_fck", >> - .vdd_name = "mpu_iva", >> .prcm = { >> .omap2 = { >> .prcm_reg_id = 1, >> @@ -2924,6 +2928,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = { >> }, >> .slaves = omap3_sr1_slaves, >> .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), >> + .dev_attr =&sr1_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 | >> CHIP_IS_OMAP3430ES3_0 | >> CHIP_IS_OMAP3430ES3_1), >> @@ -2934,7 +2939,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = { >> .name = "sr1_hwmod", >> .class =&omap36xx_smartreflex_hwmod_class, >> .main_clk = "sr1_fck", >> - .vdd_name = "mpu_iva", >> .prcm = { >> .omap2 = { >> .prcm_reg_id = 1, >> @@ -2946,10 +2950,15 @@ static struct omap_hwmod omap36xx_sr1_hwmod = { >> }, >> .slaves = omap3_sr1_slaves, >> .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), >> + .dev_attr =&sr1_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), >> }; >> >> /* SR2 */ >> +static struct omap_sr_dev_attr sr2_dev_attr = { >> + .voltdm_name = "core", >> +}; >> + >> static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = { >> &omap3_l4_core__sr2, >> }; >> @@ -2958,7 +2967,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = { >> .name = "sr2_hwmod", >> .class =&omap34xx_smartreflex_hwmod_class, >> .main_clk = "sr2_fck", >> - .vdd_name = "core", >> .prcm = { >> .omap2 = { >> .prcm_reg_id = 1, >> @@ -2970,6 +2978,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = { >> }, >> .slaves = omap3_sr2_slaves, >> .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), >> + .dev_attr =&sr2_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 | >> CHIP_IS_OMAP3430ES3_0 | >> CHIP_IS_OMAP3430ES3_1), >> @@ -2980,7 +2989,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = { >> .name = "sr2_hwmod", >> .class =&omap36xx_smartreflex_hwmod_class, >> .main_clk = "sr2_fck", >> - .vdd_name = "core", >> .prcm = { >> .omap2 = { >> .prcm_reg_id = 1, >> @@ -2992,6 +3000,7 @@ static struct omap_hwmod omap36xx_sr2_hwmod = { >> }, >> .slaves = omap3_sr2_slaves, >> .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), >> + .dev_attr =&sr2_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), >> }; >> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> index 3e88dd3..1331b39 100644 >> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> @@ -30,6 +30,7 @@ >> >> #include "omap_hwmod_common_data.h" >> >> +#include "smartreflex.h" >> #include "cm1_44xx.h" >> #include "cm2_44xx.h" >> #include "prm44xx.h" >> @@ -3775,6 +3776,10 @@ static struct omap_hwmod_class >> omap44xx_smartreflex_hwmod_class = { >> }; >> >> /* smartreflex_core */ >> +static struct omap_sr_dev_attr sr_core_dev_attr = { > > In order to stick to the convention used so far for the other dev_attr, > please use the following : > +/* smartreflex_core dev_attr */ > +static struct omap_smartreflex_dev_attr smartreflex_core_dev_attr = { > >> + .voltdm_name = "core", >> +}; > > And you should move it on top of the omap44xx_smartreflex_XXX_hwmod > structure. Will do. >> + >> static struct omap_hwmod omap44xx_smartreflex_core_hwmod; >> static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = { >> { .irq = 19 + OMAP44XX_IRQ_GIC_START }, >> @@ -3809,7 +3814,6 @@ static struct omap_hwmod >> omap44xx_smartreflex_core_hwmod = { >> .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, >> @@ -3817,10 +3821,15 @@ static struct omap_hwmod >> omap44xx_smartreflex_core_hwmod = { >> }, >> .slaves = omap44xx_smartreflex_core_slaves, >> .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_slaves), >> + .dev_attr =&sr_core_dev_attr, > > Move .dev_attr before the .slaves. > > The two last points are applicable for every SR instances. Ok. >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), >> }; >> >> /* smartreflex_iva */ >> +static struct omap_sr_dev_attr sr_iva_dev_attr = { >> + .voltdm_name = "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 }, >> @@ -3855,7 +3864,6 @@ static struct omap_hwmod >> omap44xx_smartreflex_iva_hwmod = { >> .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, >> @@ -3863,10 +3871,15 @@ static struct omap_hwmod >> omap44xx_smartreflex_iva_hwmod = { >> }, >> .slaves = omap44xx_smartreflex_iva_slaves, >> .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves), >> + .dev_attr =&sr_iva_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), >> }; >> >> /* smartreflex_mpu */ >> +static struct omap_sr_dev_attr sr_mpu_dev_attr = { >> + .voltdm_name = "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 }, >> @@ -3901,7 +3914,6 @@ static struct omap_hwmod >> omap44xx_smartreflex_mpu_hwmod = { >> .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, >> @@ -3909,6 +3921,7 @@ static struct omap_hwmod >> omap44xx_smartreflex_mpu_hwmod = { >> }, >> .slaves = omap44xx_smartreflex_mpu_slaves, >> .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves), >> + .dev_attr =&sr_mpu_dev_attr, >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), >> }; >> >> diff --git a/arch/arm/mach-omap2/smartreflex.h >> b/arch/arm/mach-omap2/smartreflex.h >> index 5f35b9e..9a7f770 100644 >> --- a/arch/arm/mach-omap2/smartreflex.h >> +++ b/arch/arm/mach-omap2/smartreflex.h >> @@ -197,6 +197,16 @@ struct omap_sr_nvalue_table { >> }; >> >> /** >> + * struct omap_sr_dev_attr - Smartreflex Device attribute. >> + * >> + * @voltdm_name: Name of voltdomain of SR instance > > You should be more specific. This is the name of the SR sensor voltage > domain. > The Smartreflex controller IPs are all inside the CORE voltage domain. Ok. > Regards, > Benoit > -- Thanks, Regards, Shweta -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html