[PATCH v6 02/16] OMAP2+: hwmod: Add API to check IO PAD wakeup status

Govindraj govindraj.ti at gmail.com
Mon Oct 3 01:56:04 EDT 2011


On Mon, Oct 3, 2011 at 10:53 AM, Rajendra Nayak <rnayak at ti.com> wrote:
> On Monday 03 October 2011 10:30 AM, Govindraj wrote:
>>
>> Thanks for the review,
>>
>>
>> On Sat, Oct 1, 2011 at 8:03 PM, Rajendra Nayak<rnayak at ti.com>  wrote:
>>>
>>> On Friday 30 September 2011 04:31 PM, Govindraj.R wrote:
>>>>
>>>> Add API to determine IO-PAD wakeup event status for a given
>>>> hwmod dynamic_mux pad.
>>>>
>>>> Wake up event set will be cleared on pad mux_read.
>>>
>>> Are these api's even getting used in this series?
>>
>> Used in Tero's irq_chaining patches.
>
> So shouldn't this patch be part of his series instead?

Yes it is. Part of his v9-series.

--
Thanks,
Govindraj.R


>
>>
>> http://lkml.org/lkml/2011/9/23/121
>>
>> --
>> Thanks,
>> Govindraj.R
>>
>>
>>>
>>>>
>>>> Signed-off-by: Govindraj.R<govindraj.raja at ti.com>
>>>> ---
>>>>  arch/arm/mach-omap2/mux.c                    |   30
>>>> ++++++++++++++++++++++++++
>>>>  arch/arm/mach-omap2/mux.h                    |   13 +++++++++++
>>>>  arch/arm/mach-omap2/omap_hwmod.c             |    7 ++++++
>>>>  arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 +
>>>>  4 files changed, 51 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
>>>> index 655e948..fb75aae 100644
>>>> --- a/arch/arm/mach-omap2/mux.c
>>>> +++ b/arch/arm/mach-omap2/mux.c
>>>> @@ -351,6 +351,36 @@ err1:
>>>>        return NULL;
>>>>  }
>>>>
>>>> +/**
>>>> + * omap_hwmod_mux_get_wake_status - omap hwmod check pad wakeup
>>>> + * @hmux:              Pads for a hwmod
>>>> + *
>>>> + * Gets the wakeup status of given pad from omap-hwmod.
>>>> + * Returns true if wakeup capability is set and wakeup event occurred.
>>>> + * Returns false if wakeup event has not occurred or pads are not
>>>> available.
>>>> + */
>>>> +bool omap_hwmod_mux_get_wake_status(struct omap_hwmod_mux_info *hmux)
>>>> +{
>>>> +       int i;
>>>> +       unsigned int val;
>>>> +       u8 ret = false;
>>>> +
>>>> +       for (i = 0; i<    hmux->nr_pads; i++) {
>>>> +               struct omap_device_pad *pad =&hmux->pads[i];
>>>> +
>>>> +               if (pad->flags&    OMAP_DEVICE_PAD_WAKEUP) {
>>>> +                       val = omap_mux_read(pad->partition,
>>>> +                                       pad->mux->reg_offset);
>>>> +                       if (val&    OMAP_WAKEUP_EVENT) {
>>>> +                               ret = true;
>>>> +                               break;
>>>> +                       }
>>>> +               }
>>>> +       }
>>>> +
>>>> +       return ret;
>>>> +}
>>>> +
>>>>  /* Assumes the calling function takes care of locking */
>>>>  void omap_hwmod_mux(struct omap_hwmod_mux_info *hmux, u8 state)
>>>>  {
>>>> diff --git a/arch/arm/mach-omap2/mux.h b/arch/arm/mach-omap2/mux.h
>>>> index 2132308..8b2150a 100644
>>>> --- a/arch/arm/mach-omap2/mux.h
>>>> +++ b/arch/arm/mach-omap2/mux.h
>>>> @@ -225,8 +225,21 @@ omap_hwmod_mux_init(struct omap_device_pad *bpads,
>>>> int nr_pads);
>>>>   */
>>>>  void omap_hwmod_mux(struct omap_hwmod_mux_info *hmux, u8 state);
>>>>
>>>> +/**
>>>> + * omap_hwmod_mux_get_wake_status - omap hwmod check pad wakeup
>>>> + * @hmux:              Pads for a hwmod
>>>> + *
>>>> + * Called only from omap_hwmod.c, do not use.
>>>> + */
>>>> +bool omap_hwmod_mux_get_wake_status(struct omap_hwmod_mux_info *hmux);
>>>>  #else
>>>>
>>>> +static inline bool
>>>> +omap_hwmod_mux_get_wake_status(struct omap_hwmod_mux_info *hmux)
>>>> +{
>>>> +       return 0;
>>>> +}
>>>> +
>>>>  static inline int omap_mux_init_gpio(int gpio, int val)
>>>>  {
>>>>        return 0;
>>>> diff --git a/arch/arm/mach-omap2/omap_hwmod.c
>>>> b/arch/arm/mach-omap2/omap_hwmod.c
>>>> index e751dd9..a8b24d7 100644
>>>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>>>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>>>> @@ -2724,3 +2724,10 @@ int omap_hwmod_no_setup_reset(struct omap_hwmod
>>>> *oh)
>>>>
>>>>        return 0;
>>>>  }
>>>> +
>>>> +int omap_hwmod_pad_get_wakeup_status(struct omap_hwmod *oh)
>>>> +{
>>>> +       if (oh&&    oh->mux)
>>>> +               return omap_hwmod_mux_get_wake_status(oh->mux);
>>>> +       return -EINVAL;
>>>> +}
>>>> diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>>>> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>>>> index 0e329ca..9a6195c 100644
>>>> --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>>>> +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>>>> @@ -607,6 +607,7 @@ u32 omap_hwmod_get_context_loss_count(struct
>>>> omap_hwmod *oh);
>>>>
>>>>  int omap_hwmod_no_setup_reset(struct omap_hwmod *oh);
>>>>
>>>> +int omap_hwmod_pad_get_wakeup_status(struct omap_hwmod *oh);
>>>>  /*
>>>>   * Chip variant-specific hwmod init routines - XXX should be converted
>>>>   * to use initcalls once the initial boot ordering is straightened out
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-serial"
>>> in
>>> the body of a message to majordomo at vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>
>



More information about the linux-arm-kernel mailing list