2022-07-14 18:35:29

by Pali Rohár

[permalink] [raw]
Subject: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
variants like Armada 370 do not support per CPU interrupts for gpios.

So change compatible string for Armada 38x from "marvell,armada-370-gpio"
which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
XP variant or new.

Driver gpio-mvebu.c which handles both pre-XP and XP variants already
provides support for per CPU interrupts on XP and newer variants.

Signed-off-by: Pali Rohár <[email protected]>
Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
---
arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index df3c8d1d8f64..9343de6947b3 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -292,7 +292,7 @@
};

gpio0: gpio@18100 {
- compatible = "marvell,armada-370-gpio",
+ compatible = "marvell,armadaxp-gpio",
"marvell,orion-gpio";
reg = <0x18100 0x40>, <0x181c0 0x08>;
reg-names = "gpio", "pwm";
@@ -310,7 +310,7 @@
};

gpio1: gpio@18140 {
- compatible = "marvell,armada-370-gpio",
+ compatible = "marvell,armadaxp-gpio",
"marvell,orion-gpio";
reg = <0x18140 0x40>, <0x181c8 0x08>;
reg-names = "gpio", "pwm";
--
2.20.1


2022-07-16 14:56:16

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Saturday 16 July 2022 16:40:28 Uwe Kleine-König wrote:
> On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Rohár wrote:
> > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > variants like Armada 370 do not support per CPU interrupts for gpios.
> >
> > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > XP variant or new.
> >
> > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > provides support for per CPU interrupts on XP and newer variants.
> >
> > Signed-off-by: Pali Rohár <[email protected]>
> > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > ---
> > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > index df3c8d1d8f64..9343de6947b3 100644
> > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > @@ -292,7 +292,7 @@
> > };
> >
> > gpio0: gpio@18100 {
> > - compatible = "marvell,armada-370-gpio",
> > + compatible = "marvell,armadaxp-gpio",
> > "marvell,orion-gpio";
>
> If you can treat the XP variant as 370 and everything that is supposed
> to work on 370 works then, then maybe the right incarnation is:
>
> compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";
>
> ?

For pre-XP variants is "marvell,orion-gpio" enough and for XP + post-XP
is needed "marvell,armadaxp-gpio" (with possible "marvell,orion-gpio"
for backward compatibility).

So I do not see reason why to add "marvell,armada-370-gpio" nor what
value it brings.

> Best regards
> Uwe
>
> --
> Pengutronix e.K. | Uwe Kleine-König |
> Industrial Linux Solutions | https://www.pengutronix.de/ |


2022-07-16 14:56:26

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Roh?r wrote:
> Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> variants like Armada 370 do not support per CPU interrupts for gpios.
>
> So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> XP variant or new.
>
> Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> provides support for per CPU interrupts on XP and newer variants.
>
> Signed-off-by: Pali Roh?r <[email protected]>
> Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> ---
> arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> index df3c8d1d8f64..9343de6947b3 100644
> --- a/arch/arm/boot/dts/armada-38x.dtsi
> +++ b/arch/arm/boot/dts/armada-38x.dtsi
> @@ -292,7 +292,7 @@
> };
>
> gpio0: gpio@18100 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";

If you can treat the XP variant as 370 and everything that is supposed
to work on 370 works then, then maybe the right incarnation is:

compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";

?

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |


Attachments:
(No filename) (1.56 kB)
signature.asc (499.00 B)
Download all attachments

2022-07-16 15:15:24

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Sat, Jul 16, 2022 at 04:50:19PM +0200, Pali Roh?r wrote:
> On Saturday 16 July 2022 16:40:28 Uwe Kleine-K?nig wrote:
> > On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Roh?r wrote:
> > > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > > variants like Armada 370 do not support per CPU interrupts for gpios.
> > >
> > > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > > XP variant or new.
> > >
> > > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > > provides support for per CPU interrupts on XP and newer variants.
> > >
> > > Signed-off-by: Pali Roh?r <[email protected]>
> > > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > > ---
> > > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > > index df3c8d1d8f64..9343de6947b3 100644
> > > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > > @@ -292,7 +292,7 @@
> > > };
> > >
> > > gpio0: gpio@18100 {
> > > - compatible = "marvell,armada-370-gpio",
> > > + compatible = "marvell,armadaxp-gpio",
> > > "marvell,orion-gpio";
> >
> > If you can treat the XP variant as 370 and everything that is supposed
> > to work on 370 works then, then maybe the right incarnation is:
> >
> > compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";
> >
> > ?
>
> For pre-XP variants is "marvell,orion-gpio" enough and for XP + post-XP
> is needed "marvell,armadaxp-gpio" (with possible "marvell,orion-gpio"
> for backward compatibility).
>
> So I do not see reason why to add "marvell,armada-370-gpio" nor what
> value it brings.

If you boot an older kernel (i.e. one that doesn't support
marvell,armadaxp-gpio, but does support marvell,armada-370-gpio), it
will work better as there are relevant differences between
marvell,orion-gpio and marvell,armada-370-gpio. For example some
registers seem to have a different offset ...

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |


Attachments:
(No filename) (2.39 kB)
signature.asc (499.00 B)
Download all attachments

2022-07-16 16:17:57

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Saturday 16 July 2022 17:07:51 Uwe Kleine-König wrote:
> On Sat, Jul 16, 2022 at 04:50:19PM +0200, Pali Rohár wrote:
> > On Saturday 16 July 2022 16:40:28 Uwe Kleine-König wrote:
> > > On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Rohár wrote:
> > > > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > > > variants like Armada 370 do not support per CPU interrupts for gpios.
> > > >
> > > > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > > > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > > > XP variant or new.
> > > >
> > > > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > > > provides support for per CPU interrupts on XP and newer variants.
> > > >
> > > > Signed-off-by: Pali Rohár <[email protected]>
> > > > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > > > ---
> > > > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > > > index df3c8d1d8f64..9343de6947b3 100644
> > > > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > > > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > > > @@ -292,7 +292,7 @@
> > > > };
> > > >
> > > > gpio0: gpio@18100 {
> > > > - compatible = "marvell,armada-370-gpio",
> > > > + compatible = "marvell,armadaxp-gpio",
> > > > "marvell,orion-gpio";
> > >
> > > If you can treat the XP variant as 370 and everything that is supposed
> > > to work on 370 works then, then maybe the right incarnation is:
> > >
> > > compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";
> > >
> > > ?
> >
> > For pre-XP variants is "marvell,orion-gpio" enough and for XP + post-XP
> > is needed "marvell,armadaxp-gpio" (with possible "marvell,orion-gpio"
> > for backward compatibility).
> >
> > So I do not see reason why to add "marvell,armada-370-gpio" nor what
> > value it brings.
>
> If you boot an older kernel (i.e. one that doesn't support
> marvell,armadaxp-gpio, but does support marvell,armada-370-gpio), it

Is there such kernel version?

> will work better as there are relevant differences between
> marvell,orion-gpio and marvell,armada-370-gpio.

And if yes, do we really need this in DTS files for new kernel
versions? I can imagine that such change can be relevant for old LTS
kernel version, but not for new versions.

> For example some
> registers seem to have a different offset ...

armada-370-gpio is mapped to MVEBU_GPIO_SOC_VARIANT_ORION, so it will
get same offsets as orion-gpio. So no change.

2022-07-25 20:13:00

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

Hello Pali,

On Sat, Jul 16, 2022 at 06:09:16PM +0200, Pali Roh?r wrote:
> On Saturday 16 July 2022 17:07:51 Uwe Kleine-K?nig wrote:
> > On Sat, Jul 16, 2022 at 04:50:19PM +0200, Pali Roh?r wrote:
> > > On Saturday 16 July 2022 16:40:28 Uwe Kleine-K?nig wrote:
> > > > On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Roh?r wrote:
> > > > > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > > > > variants like Armada 370 do not support per CPU interrupts for gpios.
> > > > >
> > > > > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > > > > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > > > > XP variant or new.
> > > > >
> > > > > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > > > > provides support for per CPU interrupts on XP and newer variants.
> > > > >
> > > > > Signed-off-by: Pali Roh?r <[email protected]>
> > > > > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > > > > ---
> > > > > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > > > > index df3c8d1d8f64..9343de6947b3 100644
> > > > > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > > > > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > > > > @@ -292,7 +292,7 @@
> > > > > };
> > > > >
> > > > > gpio0: gpio@18100 {
> > > > > - compatible = "marvell,armada-370-gpio",
> > > > > + compatible = "marvell,armadaxp-gpio",
> > > > > "marvell,orion-gpio";
> > > >
> > > > If you can treat the XP variant as 370 and everything that is supposed
> > > > to work on 370 works then, then maybe the right incarnation is:
> > > >
> > > > compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";
> > > >
> > > > ?
> > >
> > > For pre-XP variants is "marvell,orion-gpio" enough and for XP + post-XP
> > > is needed "marvell,armadaxp-gpio" (with possible "marvell,orion-gpio"
> > > for backward compatibility).
> > >
> > > So I do not see reason why to add "marvell,armada-370-gpio" nor what
> > > value it brings.
> >
> > If you boot an older kernel (i.e. one that doesn't support
> > marvell,armadaxp-gpio, but does support marvell,armada-370-gpio), it
>
> Is there such kernel version?

Ah, I thought you added "marvell,armadaxp-gpio" with this patch series.

> > will work better as there are relevant differences between
> > marvell,orion-gpio and marvell,armada-370-gpio.
>
> And if yes, do we really need this in DTS files for new kernel
> versions? I can imagine that such change can be relevant for old LTS
> kernel version, but not for new versions.
>
> > For example some
> > registers seem to have a different offset ...
>
> armada-370-gpio is mapped to MVEBU_GPIO_SOC_VARIANT_ORION, so it will
> get same offsets as orion-gpio. So no change.

OK, you're right, my assumptions were wrong. I'm convinced your change
is fine now:

Acked-by: Uwe Kleine-K?nig <[email protected]>

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |


Attachments:
(No filename) (3.29 kB)
signature.asc (499.00 B)
Download all attachments

2022-08-31 14:47:33

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Monday 25 July 2022 22:04:17 Uwe Kleine-König wrote:
> Hello Pali,
>
> On Sat, Jul 16, 2022 at 06:09:16PM +0200, Pali Rohár wrote:
> > On Saturday 16 July 2022 17:07:51 Uwe Kleine-König wrote:
> > > On Sat, Jul 16, 2022 at 04:50:19PM +0200, Pali Rohár wrote:
> > > > On Saturday 16 July 2022 16:40:28 Uwe Kleine-König wrote:
> > > > > On Thu, Jul 14, 2022 at 08:33:27PM +0200, Pali Rohár wrote:
> > > > > > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > > > > > variants like Armada 370 do not support per CPU interrupts for gpios.
> > > > > >
> > > > > > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > > > > > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > > > > > XP variant or new.
> > > > > >
> > > > > > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > > > > > provides support for per CPU interrupts on XP and newer variants.
> > > > > >
> > > > > > Signed-off-by: Pali Rohár <[email protected]>
> > > > > > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > > > > > ---
> > > > > > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > > > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > > > >
> > > > > > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > > > > > index df3c8d1d8f64..9343de6947b3 100644
> > > > > > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > > > > > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > > > > > @@ -292,7 +292,7 @@
> > > > > > };
> > > > > >
> > > > > > gpio0: gpio@18100 {
> > > > > > - compatible = "marvell,armada-370-gpio",
> > > > > > + compatible = "marvell,armadaxp-gpio",
> > > > > > "marvell,orion-gpio";
> > > > >
> > > > > If you can treat the XP variant as 370 and everything that is supposed
> > > > > to work on 370 works then, then maybe the right incarnation is:
> > > > >
> > > > > compatible = "marvell,armadaxp-gpio", "marvell,armada-370-gpio", "marvell,orion-gpio";
> > > > >
> > > > > ?
> > > >
> > > > For pre-XP variants is "marvell,orion-gpio" enough and for XP + post-XP
> > > > is needed "marvell,armadaxp-gpio" (with possible "marvell,orion-gpio"
> > > > for backward compatibility).
> > > >
> > > > So I do not see reason why to add "marvell,armada-370-gpio" nor what
> > > > value it brings.
> > >
> > > If you boot an older kernel (i.e. one that doesn't support
> > > marvell,armadaxp-gpio, but does support marvell,armada-370-gpio), it
> >
> > Is there such kernel version?
>
> Ah, I thought you added "marvell,armadaxp-gpio" with this patch series.
>
> > > will work better as there are relevant differences between
> > > marvell,orion-gpio and marvell,armada-370-gpio.
> >
> > And if yes, do we really need this in DTS files for new kernel
> > versions? I can imagine that such change can be relevant for old LTS
> > kernel version, but not for new versions.
> >
> > > For example some
> > > registers seem to have a different offset ...
> >
> > armada-370-gpio is mapped to MVEBU_GPIO_SOC_VARIANT_ORION, so it will
> > get same offsets as orion-gpio. So no change.
>
> OK, you're right, my assumptions were wrong. I'm convinced your change
> is fine now:
>
> Acked-by: Uwe Kleine-König <[email protected]>
>
> Best regards
> Uwe

Ok, are there any other objections with this patch series?

2022-09-30 23:39:23

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

Gregory: ping

On Thursday 14 July 2022 20:33:27 Pali Rohár wrote:
> Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> variants like Armada 370 do not support per CPU interrupts for gpios.
>
> So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> XP variant or new.
>
> Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> provides support for per CPU interrupts on XP and newer variants.
>
> Signed-off-by: Pali Rohár <[email protected]>
> Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> ---
> arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> index df3c8d1d8f64..9343de6947b3 100644
> --- a/arch/arm/boot/dts/armada-38x.dtsi
> +++ b/arch/arm/boot/dts/armada-38x.dtsi
> @@ -292,7 +292,7 @@
> };
>
> gpio0: gpio@18100 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18100 0x40>, <0x181c0 0x08>;
> reg-names = "gpio", "pwm";
> @@ -310,7 +310,7 @@
> };
>
> gpio1: gpio@18140 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18140 0x40>, <0x181c8 0x08>;
> reg-names = "gpio", "pwm";
> --
> 2.20.1
>

2022-10-09 12:25:03

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

PING

On Saturday 01 October 2022 01:34:53 Pali Rohár wrote:
> Gregory: ping
>
> On Thursday 14 July 2022 20:33:27 Pali Rohár wrote:
> > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > variants like Armada 370 do not support per CPU interrupts for gpios.
> >
> > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > XP variant or new.
> >
> > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > provides support for per CPU interrupts on XP and newer variants.
> >
> > Signed-off-by: Pali Rohár <[email protected]>
> > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > ---
> > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > index df3c8d1d8f64..9343de6947b3 100644
> > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > @@ -292,7 +292,7 @@
> > };
> >
> > gpio0: gpio@18100 {
> > - compatible = "marvell,armada-370-gpio",
> > + compatible = "marvell,armadaxp-gpio",
> > "marvell,orion-gpio";
> > reg = <0x18100 0x40>, <0x181c0 0x08>;
> > reg-names = "gpio", "pwm";
> > @@ -310,7 +310,7 @@
> > };
> >
> > gpio1: gpio@18140 {
> > - compatible = "marvell,armada-370-gpio",
> > + compatible = "marvell,armadaxp-gpio",
> > "marvell,orion-gpio";
> > reg = <0x18140 0x40>, <0x181c8 0x08>;
> > reg-names = "gpio", "pwm";
> > --
> > 2.20.1
> >

2022-11-01 23:22:31

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

PING?

On Sunday 09 October 2022 14:05:58 Pali Rohár wrote:
> PING
>
> On Saturday 01 October 2022 01:34:53 Pali Rohár wrote:
> > Gregory: ping
> >
> > On Thursday 14 July 2022 20:33:27 Pali Rohár wrote:
> > > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > > variants like Armada 370 do not support per CPU interrupts for gpios.
> > >
> > > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > > XP variant or new.
> > >
> > > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > > provides support for per CPU interrupts on XP and newer variants.
> > >
> > > Signed-off-by: Pali Rohár <[email protected]>
> > > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> > > ---
> > > arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > > index df3c8d1d8f64..9343de6947b3 100644
> > > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > > @@ -292,7 +292,7 @@
> > > };
> > >
> > > gpio0: gpio@18100 {
> > > - compatible = "marvell,armada-370-gpio",
> > > + compatible = "marvell,armadaxp-gpio",
> > > "marvell,orion-gpio";
> > > reg = <0x18100 0x40>, <0x181c0 0x08>;
> > > reg-names = "gpio", "pwm";
> > > @@ -310,7 +310,7 @@
> > > };
> > >
> > > gpio1: gpio@18140 {
> > > - compatible = "marvell,armada-370-gpio",
> > > + compatible = "marvell,armadaxp-gpio",
> > > "marvell,orion-gpio";
> > > reg = <0x18140 0x40>, <0x181c8 0x08>;
> > > reg-names = "gpio", "pwm";
> > > --
> > > 2.20.1
> > >

2022-11-28 00:21:16

by Gregory CLEMENT

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

Pali Rohár <[email protected]> writes:

> Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> variants like Armada 370 do not support per CPU interrupts for gpios.
>
> So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> XP variant or new.
>
> Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> provides support for per CPU interrupts on XP and newer variants.
>
> Signed-off-by: Pali Rohár <[email protected]>
> Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")

Applied on mvebu/dt

Thanks,

Gregory
> ---
> arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> index df3c8d1d8f64..9343de6947b3 100644
> --- a/arch/arm/boot/dts/armada-38x.dtsi
> +++ b/arch/arm/boot/dts/armada-38x.dtsi
> @@ -292,7 +292,7 @@
> };
>
> gpio0: gpio@18100 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18100 0x40>, <0x181c0 0x08>;
> reg-names = "gpio", "pwm";
> @@ -310,7 +310,7 @@
> };
>
> gpio1: gpio@18140 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18140 0x40>, <0x181c8 0x08>;
> reg-names = "gpio", "pwm";
> --
> 2.20.1
>

--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com

2022-11-28 20:58:47

by Chris Packham

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

Hi Pali,

On 15/07/22 06:33, Pali Rohár wrote:
> Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> variants like Armada 370 do not support per CPU interrupts for gpios.
>
> So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> XP variant or new.
>
> Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> provides support for per CPU interrupts on XP and newer variants.
>
> Signed-off-by: Pali Rohár <[email protected]>
> Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
> ---
> arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> index df3c8d1d8f64..9343de6947b3 100644
> --- a/arch/arm/boot/dts/armada-38x.dtsi
> +++ b/arch/arm/boot/dts/armada-38x.dtsi
> @@ -292,7 +292,7 @@
> };
>
> gpio0: gpio@18100 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18100 0x40>, <0x181c0 0x08>;
> reg-names = "gpio", "pwm";

Currently when you specify the "marvell,armadaxp-gpio" compatible this
causes the driver to expect the 2nd reg property to be the per-CPU
interrupt registers. The code in question is

        /*
         * The Armada XP has a second range of registers for the
         * per-CPU registers
         */
        if (mvchip->soc_variant == MVEBU_GPIO_SOC_VARIANT_ARMADAXP) {
                base = devm_platform_ioremap_resource(pdev, 1);
                if (IS_ERR(base))
                        return PTR_ERR(base);

                mvchip->percpu_regs =
                        devm_regmap_init_mmio(&pdev->dev, base,
&mvebu_gpio_regmap_config);
                if (IS_ERR(mvchip->percpu_regs))
                        return PTR_ERR(mvchip->percpu_regs);
        }

But with your code change resource[1] is pointing at the blink enable
register not at the per-CPU interrupt register (offset 18800/18840).


> @@ -310,7 +310,7 @@
> };
>
> gpio1: gpio@18140 {
> - compatible = "marvell,armada-370-gpio",
> + compatible = "marvell,armadaxp-gpio",
> "marvell,orion-gpio";
> reg = <0x18140 0x40>, <0x181c8 0x08>;
> reg-names = "gpio", "pwm";

2022-12-31 07:57:58

by Klaus Kudielka

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] ARM: dts: armada-38x: Fix compatible string for gpios

On Mon, 2022-11-28 at 01:05 +0100, Gregory CLEMENT wrote:
> Pali Rohár <[email protected]> writes:
>
> > Armada 38x supports per CPU interrupts for gpios, like Armada XP. Pre-XP
> > variants like Armada 370 do not support per CPU interrupts for gpios.
> >
> > So change compatible string for Armada 38x from "marvell,armada-370-gpio"
> > which indicates pre-XP variant to "marvell,armadaxp-gpio" which indicates
> > XP variant or new.
> >
> > Driver gpio-mvebu.c which handles both pre-XP and XP variants already
> > provides support for per CPU interrupts on XP and newer variants.
> >
> > Signed-off-by: Pali Rohár <[email protected]>
> > Fixes: 7cb2acb3fbae ("ARM: dts: mvebu: Add PWM properties for armada-38x")
>
> Applied on mvebu/dt
>
> Thanks,
>
> Gregory

This patch made it into mainline, but unfortunately broke gpio interrupts on
Turris Omnia (Armada 385), with rather bad consequences. I have submitted a
regression report.

Link: https://lore.kernel.org/r/[email protected]/

I am happy to test potential fixes. The trivial one (getting the "reg"
properties right, as stated by Chris Packham) doesn't work, either.

A revert would solve the problem on the Omnia, for the time being.

Regards, Klaus

> > ---
> >  arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
> > index df3c8d1d8f64..9343de6947b3 100644
> > --- a/arch/arm/boot/dts/armada-38x.dtsi
> > +++ b/arch/arm/boot/dts/armada-38x.dtsi
> > @@ -292,7 +292,7 @@
> >                         };
> >  
> >                         gpio0: gpio@18100 {
> > -                               compatible = "marvell,armada-370-gpio",
> > +                               compatible = "marvell,armadaxp-gpio",
> >                                              "marvell,orion-gpio";
> >                                 reg = <0x18100 0x40>, <0x181c0 0x08>;
> >                                 reg-names = "gpio", "pwm";
> > @@ -310,7 +310,7 @@
> >                         };
> >  
> >                         gpio1: gpio@18140 {
> > -                               compatible = "marvell,armada-370-gpio",
> > +                               compatible = "marvell,armadaxp-gpio",
> >                                              "marvell,orion-gpio";
> >                                 reg = <0x18140 0x40>, <0x181c8 0x08>;
> >                                 reg-names = "gpio", "pwm";
> > --
> > 2.20.1
> >
>