[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