* [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
@ 2026-09-07 0:59 Rosen Penev
2026-09-07 1:12 ` sashiko-bot
0 siblings, 1 reply; 5+ messages in thread
From: Rosen Penev @ 2026-09-07 0:59 UTC (permalink / raw)
To: devicetree
Cc: Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Russell King,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
moderated list:ARM/Marvell Kirkwood and Armada 370, 375, 38x,...,
open list
The PCA9655s on the ClearFog and Helios4 boards are
register-compatible with the pca9555, and the gpio-pca953x driver has
matched "onnn,pca9655" in its OF match table since
commit 6d49b3a0f351 ("gpio: pca953x: Add support for the On Semi
pca9655"). OF matching is tried before the legacy I2C ID-table
matching that the old comment alluded to, so the restriction no longer
applies. List the real part and drop the stale comment.
The I2C client is now named "pca9655" instead of "pca9555", but the
expander is otherwise identical.
Assisted-by: opencode:big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
v2: rebase so it applies
arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi | 7 +------
arch/arm/boot/dts/marvell/armada-388-helios4.dts | 9 +--------
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
index f8a06ae4a3c9..4a61e9d1a2c0 100644
--- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
+++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
@@ -131,12 +131,7 @@ &i2c0 {
* 15-SFP_MOD_DEF0
*/
expander0: gpio-expander@20 {
- /*
- * This is how it should be:
- * compatible = "onnn,pca9655", "nxp,pca9555";
- * but you can't do this because of the way I2C works.
- */
- compatible = "nxp,pca9555";
+ compatible = "onnn,pca9655";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
diff --git a/arch/arm/boot/dts/marvell/armada-388-helios4.dts b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
index 39b2d4fa742c..bf6d70e2078b 100644
--- a/arch/arm/boot/dts/marvell/armada-388-helios4.dts
+++ b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
@@ -160,14 +160,7 @@ i2c@11000 {
* 6-USB3 power
*/
expander0: gpio-expander@20 {
- /*
- * This is how it should be:
- * compatible = "onnn,pca9655",
- * "nxp,pca9555";
- * but you can't do this because of
- * the way I2C works.
- */
- compatible = "nxp,pca9555";
+ compatible = "onnn,pca9655";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
--
2.55.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
2026-09-07 0:59 Rosen Penev
@ 2026-09-07 1:12 ` sashiko-bot
2026-09-07 1:19 ` Rosen Penev
0 siblings, 1 reply; 5+ messages in thread
From: sashiko-bot @ 2026-09-07 1:12 UTC (permalink / raw)
To: Rosen Penev; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Replacing 'nxp,pca9555' entirely with 'onnn,pca9655' removes the fallback string, breaking device tree ABI backward compatibility.
- [Low] The newly introduced compatible string 'onnn,pca9655' is not documented in the device tree bindings, which will cause a schema validation failure.
--
commit c8f9a287a2365f46a814726f590cf6561513d0de
Author: Rosen Penev <rosenp@gmail.com>
ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
This patch updates the GPIO expander compatible string in the Armada 388
ClearFog and Helios4 device trees from nxp,pca9555 to onnn,pca9655, and
removes a stale comment about I2C matching limitations.
> diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> index f8a06ae4a3c91..4a61e9d1a2c0d 100644
> --- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> +++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> @@ -131,12 +131,7 @@ &i2c0 {
> * 15-SFP_MOD_DEF0
> */
> expander0: gpio-expander@20 {
> - /*
> - * This is how it should be:
> - * compatible = "onnn,pca9655", "nxp,pca9555";
> - * but you can't do this because of the way I2C works.
> - */
> - compatible = "nxp,pca9555";
> + compatible = "onnn,pca9655";
[Severity: High]
Does replacing nxp,pca9555 entirely with onnn,pca9655 break backward
compatibility for older kernels booting with this new device tree blob?
Older kernels lacking onnn,pca9655 in their OF match table might fail to
probe the expander0 GPIO expander, breaking features like USB3 power and
SFP modules.
Would it be safer to provide a fallback list to maintain the device tree
ABI, such as: compatible = "onnn,pca9655", "nxp,pca9555"; ?
[Severity: Low]
Is the onnn,pca9655 compatible string documented in the device tree
bindings?
Running make dtbs_check with schema validation enabled might fail if
this string is not listed in the gpio-pca95xx bindings.
> gpio-controller;
> #gpio-cells = <2>;
> reg = <0x20>;
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907005933.230766-1-rosenp@gmail.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
2026-09-07 1:12 ` sashiko-bot
@ 2026-09-07 1:19 ` Rosen Penev
0 siblings, 0 replies; 5+ messages in thread
From: Rosen Penev @ 2026-09-07 1:19 UTC (permalink / raw)
To: sashiko-reviews; +Cc: conor+dt, devicetree, robh
On Sun, Sep 6, 2026 at 6:12 PM <sashiko-bot@kernel.org> wrote:
>
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [High] Replacing 'nxp,pca9555' entirely with 'onnn,pca9655' removes the fallback string, breaking device tree ABI backward compatibility.
> - [Low] The newly introduced compatible string 'onnn,pca9655' is not documented in the device tree bindings, which will cause a schema validation failure.
> --
>
> commit c8f9a287a2365f46a814726f590cf6561513d0de
> Author: Rosen Penev <rosenp@gmail.com>
>
> ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
>
> This patch updates the GPIO expander compatible string in the Armada 388
> ClearFog and Helios4 device trees from nxp,pca9555 to onnn,pca9655, and
> removes a stale comment about I2C matching limitations.
>
> > diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> > index f8a06ae4a3c91..4a61e9d1a2c0d 100644
> > --- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> > +++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> > @@ -131,12 +131,7 @@ &i2c0 {
> > * 15-SFP_MOD_DEF0
> > */
> > expander0: gpio-expander@20 {
> > - /*
> > - * This is how it should be:
> > - * compatible = "onnn,pca9655", "nxp,pca9555";
> > - * but you can't do this because of the way I2C works.
> > - */
> > - compatible = "nxp,pca9555";
> > + compatible = "onnn,pca9655";
>
> [Severity: High]
> Does replacing nxp,pca9555 entirely with onnn,pca9655 break backward
> compatibility for older kernels booting with this new device tree blob?
>
> Older kernels lacking onnn,pca9655 in their OF match table might fail to
> probe the expander0 GPIO expander, breaking features like USB3 power and
> SFP modules.
>
> Would it be safer to provide a fallback list to maintain the device tree
> ABI, such as: compatible = "onnn,pca9655", "nxp,pca9555"; ?
Not relevant.
>
> [Severity: Low]
> Is the onnn,pca9655 compatible string documented in the device tree
> bindings?
>
> Running make dtbs_check with schema validation enabled might fail if
> this string is not listed in the gpio-pca95xx bindings.
I will send such a patch once this gets merged.
>
> > gpio-controller;
> > #gpio-cells = <2>;
> > reg = <0x20>;
>
> [ ... ]
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260907005933.230766-1-rosenp@gmail.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
@ 2026-09-08 6:04 Rosen Penev
2026-09-08 6:12 ` sashiko-bot
0 siblings, 1 reply; 5+ messages in thread
From: Rosen Penev @ 2026-09-08 6:04 UTC (permalink / raw)
To: devicetree
Cc: Russell King, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
moderated list:ARM/Marvell Kirkwood and Armada 370, 375, 38x,...,
open list
The PCA9655s on the ClearFog and Helios4 boards are
register-compatible with the pca9555, and the gpio-pca953x driver has
matched "onnn,pca9655" in its OF match table since
commit 6d49b3a0f351 ("gpio: pca953x: Add support for the On Semi
pca9655"). OF matching is tried before the legacy I2C ID-table
matching that the old comment alluded to, so the restriction no longer
applies. List the real part and drop the stale comment.
The I2C client is now named "pca9655" instead of "pca9555", but the
expander is otherwise identical.
Assisted-by: opencode:big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
v2: rebase.
arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi | 7 +------
arch/arm/boot/dts/marvell/armada-388-helios4.dts | 9 +--------
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
index f8a06ae4a3c9..4a61e9d1a2c0 100644
--- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
+++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
@@ -131,12 +131,7 @@ &i2c0 {
* 15-SFP_MOD_DEF0
*/
expander0: gpio-expander@20 {
- /*
- * This is how it should be:
- * compatible = "onnn,pca9655", "nxp,pca9555";
- * but you can't do this because of the way I2C works.
- */
- compatible = "nxp,pca9555";
+ compatible = "onnn,pca9655";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
diff --git a/arch/arm/boot/dts/marvell/armada-388-helios4.dts b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
index 39b2d4fa742c..bf6d70e2078b 100644
--- a/arch/arm/boot/dts/marvell/armada-388-helios4.dts
+++ b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
@@ -160,14 +160,7 @@ i2c@11000 {
* 6-USB3 power
*/
expander0: gpio-expander@20 {
- /*
- * This is how it should be:
- * compatible = "onnn,pca9655",
- * "nxp,pca9555";
- * but you can't do this because of
- * the way I2C works.
- */
- compatible = "nxp,pca9555";
+ compatible = "onnn,pca9655";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
--
2.55.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
2026-09-08 6:04 [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible Rosen Penev
@ 2026-09-08 6:12 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-09-08 6:12 UTC (permalink / raw)
To: Rosen Penev; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Dropping the 'nxp,pca9555' fallback compatible string breaks backwards compatibility with older kernels and bootloaders.
- [Low] The new compatible string 'onnn,pca9655' is not documented in the device tree bindings schema.
--
commit 0aa44d4fbea2198095d07080778a930cfaf868f9
Author: Rosen Penev <rosenp@gmail.com>
ARM: dts: marvell: armada-388: use onnn,pca9655 compatible
This commit updates the Armada 388 ClearFog and Helios4 device trees to use
the "onnn,pca9655" compatible string for their PCA9655 GPIO expanders,
removing the previous "nxp,pca9555" compatible and a stale comment.
> diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> --- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
> +++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
[ ... ]
> * 15-SFP_MOD_DEF0
> */
> expander0: gpio-expander@20 {
> - /*
> - * This is how it should be:
> - * compatible = "onnn,pca9655", "nxp,pca9555";
> - * but you can't do this because of the way I2C works.
> - */
> - compatible = "nxp,pca9555";
> + compatible = "onnn,pca9655";
[Severity: Low]
Is the new compatible string "onnn,pca9655" documented in the device tree
bindings schema? Running dt validation tools like make dtbs_check against
the modified device tree files might report schema validation failures for
expander0.
[Severity: High]
Does dropping the "nxp,pca9555" fallback compatible string break backwards
compatibility with older kernels and bootloaders?
When booting an older kernel (e.g. LTS v5.10, prior to the addition of
"onnn,pca9655") with this newly compiled device tree binary (DTB), the
driver's OF match table will fail to recognize "onnn,pca9655".
Because the "nxp,pca9555" fallback has been removed instead of combined into
a proper compatible list, probing will fail, making dependent hardware
functionality such as SFP modules unusable.
> diff --git a/arch/arm/boot/dts/marvell/armada-388-helios4.dts b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
> --- a/arch/arm/boot/dts/marvell/armada-388-helios4.dts
> +++ b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
[ ... ]
> * 6-USB3 power
> */
> expander0: gpio-expander@20 {
> - /*
> - * This is how it should be:
> - * compatible = "onnn,pca9655",
> - * "nxp,pca9555";
> - * but you can't do this because of
> - * the way I2C works.
> - */
> - compatible = "nxp,pca9555";
> + compatible = "onnn,pca9655";
[Severity: High]
Similarly for expander0 on the Helios4 board, does removing the fallback
compatible string prevent older kernels from probing the I2C GPIO expander
and break USB3 power functionality when a user updates their DTB independently
of their kernel?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908060438.43338-1-rosenp@gmail.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-08 6:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-08 6:04 [PATCHv2] ARM: dts: marvell: armada-388: use onnn,pca9655 compatible Rosen Penev
2026-09-08 6:12 ` sashiko-bot
-- strict thread matches above, loose matches on Subject: below --
2026-09-07 0:59 Rosen Penev
2026-09-07 1:12 ` sashiko-bot
2026-09-07 1:19 ` Rosen Penev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox