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

Govindraj govindraj.ti at gmail.com
Mon Oct 3 01:00:47 EDT 2011


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.

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