Message ID | 20181201145614.5381-1-ccaione@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: meson-axg: Fix and enable GPIO interrupt controller | expand |
Hi Carlo, On Sat, Dec 1, 2018 at 3:56 PM Carlo Caione <ccaione@baylibre.com> wrote: > > The GPIO interrupt controller registers are mapped to the wrong > offset in the DTSI. Fix the offset in the DTSI and enable the interrupt > controller in the DTS of the only AXG board enabled. > > Signed-off-by: Carlo Caione <ccaione@baylibre.com> > --- > arch/arm64/boot/dts/amlogic/meson-axg-s400.dts | 6 ++++++ > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > index 18778ada7bd3..c3e4aac75782 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > +++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > @@ -374,6 +374,12 @@ > status = "okay"; > }; > > +&gpio_intc { > + compatible = "amlogic,meson-gpio-intc", > + "amlogic,meson-axg-gpio-intc"; multiple compatible strings should be ordered: - use the most specific compatible (the AXG one) first - the the less specific ones also why did you add the AXG compatible string in the s400 board .dts instead of meson-axg.dtsi (which makes it available for all AXG boards)? > + status = "okay"; > +}; > + > &ir { > status = "okay"; > pinctrl-0 = <&remote_input_ao_pins>; > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index df017dbd2e57..f1affc12e3e6 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -1415,7 +1415,7 @@ > > gpio_intc: interrupt-controller@f080 { unit-address should match the reg property: ...@9880 > compatible = "amlogic,meson-gpio-intc"; > - reg = <0x0 0xf080 0x0 0x10>; > + reg = <0x0 0x9880 0x0 0x10>; Amlogic's patched 4.9 buildroot kernel uses 0xf080 - can you add a short sentence to the description on which board you have tested this (I assume you used the s400) Regards Martin
On Sat, 2018-12-01 at 16:20 +0100, Martin Blumenstingl wrote: > Hi Carlo, Hi Martin, > On Sat, Dec 1, 2018 at 3:56 PM Carlo Caione <ccaione@baylibre.com> > wrote: > > The GPIO interrupt controller registers are mapped to the wrong > > offset in the DTSI. Fix the offset in the DTSI and enable the > > interrupt > > controller in the DTS of the only AXG board enabled. > > > > Signed-off-by: Carlo Caione <ccaione@baylibre.com> > > --- > > arch/arm64/boot/dts/amlogic/meson-axg-s400.dts | 6 ++++++ > > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +- > > 2 files changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > > b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > > index 18778ada7bd3..c3e4aac75782 100644 > > --- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > > +++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts > > @@ -374,6 +374,12 @@ > > status = "okay"; > > }; > > > > +&gpio_intc { > > + compatible = "amlogic,meson-gpio-intc", > > + "amlogic,meson-axg-gpio-intc"; > multiple compatible strings should be ordered: > - use the most specific compatible (the AXG one) first > - the the less specific ones mindlessly copied and pasted from the GXL. > also why did you add the AXG compatible string in the s400 board .dts > instead of meson-axg.dtsi (which makes it available for all AXG > boards)? good point. > > + status = "okay"; > > +}; > > + > > &ir { > > status = "okay"; > > pinctrl-0 = <&remote_input_ao_pins>; > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > > b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > > index df017dbd2e57..f1affc12e3e6 100644 > > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > > @@ -1415,7 +1415,7 @@ > > > > gpio_intc: interrupt-controller@f080 { > unit-address should match the reg property: ...@9880 > > > compatible = "amlogic,meson-gpio- > > intc"; > > - reg = <0x0 0xf080 0x0 0x10>; > > + reg = <0x0 0x9880 0x0 0x10>; > Amlogic's patched 4.9 buildroot kernel uses 0xf080 - can you add a > short sentence to the description on which board you have tested this > (I assume you used the s400) The datasheet reports a different offset. But I tested again on 0xf080 and it looks like 0xf080 is actually the correct one? Need to test this better. I'll follow this up with v2. Cheers, -- Carlo Caione
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts index 18778ada7bd3..c3e4aac75782 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts +++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts @@ -374,6 +374,12 @@ status = "okay"; }; +&gpio_intc { + compatible = "amlogic,meson-gpio-intc", + "amlogic,meson-axg-gpio-intc"; + status = "okay"; +}; + &ir { status = "okay"; pinctrl-0 = <&remote_input_ao_pins>; diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi index df017dbd2e57..f1affc12e3e6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi @@ -1415,7 +1415,7 @@ gpio_intc: interrupt-controller@f080 { compatible = "amlogic,meson-gpio-intc"; - reg = <0x0 0xf080 0x0 0x10>; + reg = <0x0 0x9880 0x0 0x10>; interrupt-controller; #interrupt-cells = <2>; amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
The GPIO interrupt controller registers are mapped to the wrong offset in the DTSI. Fix the offset in the DTSI and enable the interrupt controller in the DTS of the only AXG board enabled. Signed-off-by: Carlo Caione <ccaione@baylibre.com> --- arch/arm64/boot/dts/amlogic/meson-axg-s400.dts | 6 ++++++ arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-)