Message ID | 1420212257-22443-2-git-send-email-javier.martinez@collabora.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/03/15 00:24, Javier Martinez Canillas wrote: > The Exynos5250 Snow Chromebook has GPIO keys for power and lid > so the SoC I/O pins have to be configured in external interrupt > mode. Currently, this is working without setting the pinctrl > lines but is better to set it explicitly instead of relying on > the previous state of the I/O pins. > > The DTS snippets were taken from the downstream ChromeOS tree. > > Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > --- > arch/arm/boot/dts/exynos5250-snow.dts | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts > index effaf2a..b9aeec4 100644 > --- a/arch/arm/boot/dts/exynos5250-snow.dts > +++ b/arch/arm/boot/dts/exynos5250-snow.dts > @@ -33,6 +33,8 @@ > > gpio-keys { > compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&power_key_irq &lid_irq>; > > power { > label = "Power"; > @@ -540,6 +542,13 @@ > }; > > &pinctrl_0 { > + power_key_irq: power-key-irq { > + samsung,pins = "gpx1-3"; > + samsung,pin-function = <0xf>; I think, this setting should be same with exynos5250-spring but different. from: arch/arm/boot/dts/exynos5250-spring.dts 491 power_key_irq: power-key-irq { 492 samsung,pins = "gpx1-3"; 493 samsung,pin-function = <0>; 494 samsung,pin-pud = <0>; 495 samsung,pin-drv = <0>; 496 }; Hmm...0xf should be correct so need to fix the spring DT? > + samsung,pin-pud = <0>; > + samsung,pin-drv = <0>; > + }; > + > ec_irq: ec-irq { > samsung,pins = "gpx1-6"; > samsung,pin-function = <0>; > @@ -575,6 +584,13 @@ > samsung,pin-drv = <0>; > }; > > + lid_irq: lid-irq { > + samsung,pins = "gpx3-5"; > + samsung,pin-function = <0xf>; Same as above. > + samsung,pin-pud = <0>; > + samsung,pin-drv = <0>; > + }; > + > hdmi_hpd_irq: hdmi-hpd-irq { > samsung,pins = "gpx3-7"; > samsung,pin-function = <0>; Thanks, Kukjin
Hello Kukjin, On 01/14/2015 04:17 PM, Kukjin Kim wrote: >> >> &pinctrl_0 { >> + power_key_irq: power-key-irq { >> + samsung,pins = "gpx1-3"; >> + samsung,pin-function = <0xf>; > > I think, this setting should be same with exynos5250-spring but different. > > from: arch/arm/boot/dts/exynos5250-spring.dts > 491 power_key_irq: power-key-irq { > 492 samsung,pins = "gpx1-3"; > 493 samsung,pin-function = <0>; > 494 samsung,pin-pud = <0>; > 495 samsung,pin-drv = <0>; > 496 }; > > Hmm...0xf should be correct so need to fix the spring DT? > Yes, the same problem has exynos5250-snow.dts. This is less relevant now after commit f6a8249f9e55 ("pinctrl: exynos: Lock GPIOs as interrupts when used as EINTs") that moved the pinmux reconfiguration to .irq_{request,release}_resources() preventing the pads to be reconfigured as regulator input/output. But still for correctness we should audit spring / snow and change to 0xf. Best regards, Javier
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts index effaf2a..b9aeec4 100644 --- a/arch/arm/boot/dts/exynos5250-snow.dts +++ b/arch/arm/boot/dts/exynos5250-snow.dts @@ -33,6 +33,8 @@ gpio-keys { compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&power_key_irq &lid_irq>; power { label = "Power"; @@ -540,6 +542,13 @@ }; &pinctrl_0 { + power_key_irq: power-key-irq { + samsung,pins = "gpx1-3"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ec_irq: ec-irq { samsung,pins = "gpx1-6"; samsung,pin-function = <0>; @@ -575,6 +584,13 @@ samsung,pin-drv = <0>; }; + lid_irq: lid-irq { + samsung,pins = "gpx3-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + hdmi_hpd_irq: hdmi-hpd-irq { samsung,pins = "gpx3-7"; samsung,pin-function = <0>;
The Exynos5250 Snow Chromebook has GPIO keys for power and lid so the SoC I/O pins have to be configured in external interrupt mode. Currently, this is working without setting the pinctrl lines but is better to set it explicitly instead of relying on the previous state of the I/O pins. The DTS snippets were taken from the downstream ChromeOS tree. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> --- arch/arm/boot/dts/exynos5250-snow.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)