Extend the list of supported compatible strings with fsl,lx2160ardb-fpga.
Since the register map exposed by the LX2160ARDB's FPGA also contains
two GPIO controllers, accept the necessary GPIO pattern property. At the
same time, add the #address-cells and #size-cells properties as valid
ones.
This is needed because when defining child devices such as the GPIO
controller described in the added example, the child device needs a the
reg property to properly identify its register location.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
.../bindings/board/fsl,fpga-qixis-i2c.yaml | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml
index 28b37772fb65..e8981f974210 100644
--- a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml
+++ b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml
@@ -22,6 +22,13 @@ properties:
- fsl,lx2160aqds-fpga
- const: fsl,fpga-qixis-i2c
- const: simple-mfd
+ - const: fsl,lx2160ardb-fpga
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
interrupts:
maxItems: 1
@@ -32,6 +39,10 @@ properties:
mux-controller:
$ref: /schemas/mux/reg-mux.yaml
+patternProperties:
+ "^gpio(@[0-9a-f]+)?$":
+ $ref: /schemas/gpio/fsl,fpga-gpio.yaml
+
required:
- compatible
- reg
@@ -68,3 +79,27 @@ examples:
};
};
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ board-control@66 {
+ compatible = "fsl,lx2160ardb-fpga";
+ reg = <0x66>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ gpio@19 {
+ compatible = "fsl,lx2160ardb-fpga-gpio-sfp2";
+ reg = <0x19>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "SFP2_TX_EN", "",
+ "", "",
+ "SFP2_RX_LOS", "SFP2_TX_FAULT",
+ "", "SFP2_MOD_ABS";
+ };
+ };
+ };
--
2.25.1
On 09/07/2025 13:26, Ioana Ciornei wrote: > Extend the list of supported compatible strings with fsl,lx2160ardb-fpga. > > Since the register map exposed by the LX2160ARDB's FPGA also contains > two GPIO controllers, accept the necessary GPIO pattern property. At the > same time, add the #address-cells and #size-cells properties as valid > ones. > > This is needed because when defining child devices such as the GPIO > controller described in the added example, the child device needs a the > reg property to properly identify its register location. > > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > --- > .../bindings/board/fsl,fpga-qixis-i2c.yaml | 35 +++++++++++++++++++ So here is the board? Why FPGA is in the board... > 1 file changed, 35 insertions(+) > > diff --git a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > index 28b37772fb65..e8981f974210 100644 > --- a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > +++ b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > @@ -22,6 +22,13 @@ properties: > - fsl,lx2160aqds-fpga > - const: fsl,fpga-qixis-i2c > - const: simple-mfd > + - const: fsl,lx2160ardb-fpga Weird, your first patch added three compatibles, this adds only one. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > > interrupts: > maxItems: 1 > @@ -32,6 +39,10 @@ properties: > mux-controller: > $ref: /schemas/mux/reg-mux.yaml > > +patternProperties: > + "^gpio(@[0-9a-f]+)?$": Why unit address is optional? Anyway, this is wrong. You do not have ranges here and earlier you already said children do not have any addressing. Look at mux. > + $ref: /schemas/gpio/fsl,fpga-gpio.yaml > + > required: > - compatible > - reg > @@ -68,3 +79,27 @@ examples: > }; > }; > > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + board-control@66 { > + compatible = "fsl,lx2160ardb-fpga"; > + reg = <0x66>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + gpio@19 { And what is the meaning of @19? Best regards, Krzysztof
On Wed, Jul 09, 2025 at 02:17:27PM +0200, Krzysztof Kozlowski wrote: > On 09/07/2025 13:26, Ioana Ciornei wrote: > > Extend the list of supported compatible strings with fsl,lx2160ardb-fpga. > > > > Since the register map exposed by the LX2160ARDB's FPGA also contains > > two GPIO controllers, accept the necessary GPIO pattern property. At the > > same time, add the #address-cells and #size-cells properties as valid > > ones. > > > > This is needed because when defining child devices such as the GPIO > > controller described in the added example, the child device needs a the > > reg property to properly identify its register location. > > > > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > > --- > > .../bindings/board/fsl,fpga-qixis-i2c.yaml | 35 +++++++++++++++++++ > > So here is the board? Why FPGA is in the board... This directory is for board level custom logic in FPGA, CPLD, etc. Rob
On Wed, Jul 09, 2025 at 02:17:27PM +0200, Krzysztof Kozlowski wrote: > On 09/07/2025 13:26, Ioana Ciornei wrote: > > Extend the list of supported compatible strings with fsl,lx2160ardb-fpga. > > > > Since the register map exposed by the LX2160ARDB's FPGA also contains > > two GPIO controllers, accept the necessary GPIO pattern property. At the > > same time, add the #address-cells and #size-cells properties as valid > > ones. > > > > This is needed because when defining child devices such as the GPIO > > controller described in the added example, the child device needs a the > > reg property to properly identify its register location. > > > > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > > --- > > .../bindings/board/fsl,fpga-qixis-i2c.yaml | 35 +++++++++++++++++++ > > So here is the board? Why FPGA is in the board... I think because its usage and integration is very much dependant on the board? I am really not sure why it was added there in the first place as a .txt file. > > > 1 file changed, 35 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > > index 28b37772fb65..e8981f974210 100644 > > --- a/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > > +++ b/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml > > @@ -22,6 +22,13 @@ properties: > > - fsl,lx2160aqds-fpga > > - const: fsl,fpga-qixis-i2c > > - const: simple-mfd > > + - const: fsl,lx2160ardb-fpga > > Weird, your first patch added three compatibles, this adds only one. The first patch added 3 compatibles for the registers exposed by this FPGA that act as a GPIO controller. There are 3 compatibles and not just one because the registers backing them have different layouts, each exposing different control/status bits. As you have pointed out in your last reply on patch 1/9, two of those compatibles can be merged into a single one. In this patch I am adding a new compatible for the QIXIS FPGA found on the LX2160ARDB board so that the simple-mfd-i2c driver has something to probe on and expose its regmap to the child devices - the gpio controllers. > > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > > > interrupts: > > maxItems: 1 > > @@ -32,6 +39,10 @@ properties: > > mux-controller: > > $ref: /schemas/mux/reg-mux.yaml > > > > +patternProperties: > > + "^gpio(@[0-9a-f]+)?$": > > Why unit address is optional? Anyway, this is wrong. You do not have > ranges here and earlier you already said children do not have any > addressing. Look at mux. Agree on the '?' not being needed here since my plan is to enforce that if the dts has a GPIO controller defined as a child device then it needs a unit address. The unit address is there to convey to the driver what is the address of the register backing the GPIO controller. I am not sure how else could I cleanly do that. My current plan is to: - Not change how the board DT files which already define their QIXIS FPGAs look like, meaning that they will keep their FPGA child nodes without addressing. Very much like the mux is used currently in the fsl-lx2160a-qds.dts. - For any new boards that need a GPIO driver to be probed on one of the FPGA's registers, impose the use of the unit address. I acknowledge the fact that this a bit confusing, I am open to suggestions, but I currently do not know another way forward which cleanly does what I need. > > > + $ref: /schemas/gpio/fsl,fpga-gpio.yaml > > + > > required: > > - compatible > > - reg > > @@ -68,3 +79,27 @@ examples: > > }; > > }; > > > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + board-control@66 { > > + compatible = "fsl,lx2160ardb-fpga"; > > + reg = <0x66>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + gpio@19 { > > And what is the meaning of @19? The register found at address 0x19 is the one backing this GPIO controller.
© 2016 - 2025 Red Hat, Inc.