[PATCH V3] OMAP3+: SR Layer Cleanup

Gulati, Shweta shweta.gulati at ti.com
Thu May 12 09:23:51 EDT 2011


Hi,

On Thu, May 12, 2011 at 6:19 PM, Gulati, Shweta <shweta.gulati at ti.com> wrote:
> Hi,
>
> On Thu, May 12, 2011 at 5:11 PM, Cousson, Benoit <b-cousson at ti.com> 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 at ti.com>
>>> Cc: Nishanth Menon<nm at ti.com>
>>> ---
>>> 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.
Following the convention used with other dev_attr, all dev_attr are
defined after 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
>



-- 
Thanks,
Regards,
Shweta



More information about the linux-arm-kernel mailing list