[PATCH v6 02/16] OMAP2+: hwmod: Add API to check IO PAD wakeup status
Rajendra Nayak
rnayak at ti.com
Sat Oct 1 10:33:59 EDT 2011
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?
>
> 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
More information about the linux-arm-kernel
mailing list