[PATCH 2/6] ARM: EXYNOS: Fix EINT wake-up mask configuration when pinctrl is used
Tomasz Figa
tomasz.figa at gmail.com
Fri May 17 15:49:13 EDT 2013
Hi Doug,
On Friday 17 of May 2013 12:22:36 Doug Anderson wrote:
> Tomasz,
>
> On Fri, May 17, 2013 at 9:24 AM, Tomasz Figa <t.figa at samsung.com> wrote:
> > On DT-enabled systems pinctrl-exynos driver is responsible for
> > handling
> > of wake-up EINT interrupts. This patch adjusts wake-up mask
> > configuration code to take wake-up mask value from pinctrl-exynos
> > driver on DT-enabled systems.
> >
> > Signed-off-by: Tomasz Figa <t.figa at samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> > ---
> >
> > arch/arm/mach-exynos/include/mach/pm-core.h | 14 +++++++++++++-
> > 1 file changed, 13 insertions(+), 1 deletion(-)
>
> A little ugly
Hehe. I thought exactly the same, but I don't see any better solution at
the moment, except persuading the whole suspend/resume support in plat-
samsung to be a friend of multiplatform, which will have to be done
eventually, but at the moment I don't have time to work on it.
> because of the need to support old non-device tree
> boards, but seems reasonable. Means that if you have a device tree
> you'd better be using pincontrol. Assuming that's true now someone
> needs to go through and remove all of the device tree support (and
> bindings Documentation) for gpio-samsung. Maybe someone has already
> started?
If I remember correctly Sylwester Nawrocki had some patches to remove
that. He's on a leave right now, so he won't send them for a while, but I
guess it's nothing urgent.
> On exynos5250-snow (pinmux backported to 3.8):
>
> Tested-by: Doug Anderson <dianders at chromium.org>
>
> Reviewed-by: Doug Anderson <dianders at chromium.org>
Thanks.
Best regards,
Tomasz
> On Fri, May 17, 2013 at 9:24 AM, Tomasz Figa <t.figa at samsung.com> wrote:
> > On DT-enabled systems pinctrl-exynos driver is responsible for
> > handling
> > of wake-up EINT interrupts. This patch adjusts wake-up mask
> > configuration code to take wake-up mask value from pinctrl-exynos
> > driver on DT-enabled systems.
> >
> > Signed-off-by: Tomasz Figa <t.figa at samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> > ---
> >
> > arch/arm/mach-exynos/include/mach/pm-core.h | 14 +++++++++++++-
> > 1 file changed, 13 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/mach-exynos/include/mach/pm-core.h
> > b/arch/arm/mach-exynos/include/mach/pm-core.h index 7dbbfec..296090e
> > 100644
> > --- a/arch/arm/mach-exynos/include/mach/pm-core.h
> > +++ b/arch/arm/mach-exynos/include/mach/pm-core.h
> > @@ -18,8 +18,15 @@
> >
> > #ifndef __ASM_ARCH_PM_CORE_H
> > #define __ASM_ARCH_PM_CORE_H __FILE__
> >
> > +#include <linux/of.h>
> >
> > #include <mach/regs-pmu.h>
> >
> > +#ifdef CONFIG_PINCTRL_EXYNOS
> > +extern u32 exynos_get_eint_wake_mask(void);
> > +#else
> > +static inline u32 exynos_get_eint_wake_mask(void) { return
> > 0xffffffff; } +#endif
> > +
> >
> > static inline void s3c_pm_debug_init_uart(void)
> > {
> >
> > /* nothing here yet */
> >
> > @@ -27,7 +34,12 @@ static inline void s3c_pm_debug_init_uart(void)
> >
> > static inline void s3c_pm_arch_prepare_irqs(void)
> > {
> >
> > - __raw_writel(s3c_irqwake_eintmask, S5P_EINT_WAKEUP_MASK);
> > + u32 eintmask = s3c_irqwake_eintmask;
> > +
> > + if (of_have_populated_dt())
> > + eintmask = exynos_get_eint_wake_mask();
> > +
> > + __raw_writel(eintmask, S5P_EINT_WAKEUP_MASK);
> >
> > __raw_writel(s3c_irqwake_intmask & ~(1 << 31),
> > S5P_WAKEUP_MASK);
> >
> > }
> >
> > --
> > 1.8.2.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-samsung-soc" 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