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 so that the child nodes of the fsl,lx2160ardb-fpga node are
addressable.
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.
Impose this restriction for the new compatible through an if-statement.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- Enforce a unit address on the child gpios nodes (remove the ?)
- Enforce the use of unit addresses by having #address-size and
#size-cells only for the newly added fsl,lx2160ardb-fpga compatible
.../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++
1 file changed, 47 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..da21d0defa04 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,10 +39,26 @@ properties:
mux-controller:
$ref: /schemas/mux/reg-mux.yaml
+patternProperties:
+ "^gpio@[0-9a-f]+$":
+ $ref: /schemas/gpio/trivial-gpio.yaml
+
required:
- compatible
- reg
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,lx2160ardb-fpga
+ then:
+ required:
+ - "#address-cells"
+ - "#size-cells"
+
additionalProperties: false
examples:
@@ -68,3 +91,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-sfp";
+ 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 Mon, Sep 15, 2025 at 03:23:47PM +0300, Ioana Ciornei wrote:
subject:
dt-bindings: fsl,fpga-qixis-i2c: add support for LX2160ARDB FPGA
> 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 so that the child nodes of the fsl,lx2160ardb-fpga node are
> addressable.
>
> 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.
These are neccesary because reg of child gpio controller nodes is in I2C
device's address space.
need empty line here.
> Impose this restriction for the new compatible through an if-statement.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> Changes in v2:
> - Enforce a unit address on the child gpios nodes (remove the ?)
> - Enforce the use of unit addresses by having #address-size and
> #size-cells only for the newly added fsl,lx2160ardb-fpga compatible
>
> .../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++
> 1 file changed, 47 insertions(+)
>
...
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,lx2160ardb-fpga
> + then:
> + required:
> + - "#address-cells"
> + - "#size-cells"
> +
else:
properties:
'#address-cells': false
'size-cells': false
Frank
> additionalProperties: false
>
> examples:
> @@ -68,3 +91,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-sfp";
> + 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 Tue, Sep 16, 2025 at 12:18:10PM -0400, Frank Li wrote: > On Mon, Sep 15, 2025 at 03:23:47PM +0300, Ioana Ciornei wrote: > > subject: > dt-bindings: fsl,fpga-qixis-i2c: add support for LX2160ARDB FPGA > > > 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 so that the child nodes of the fsl,lx2160ardb-fpga node are > > addressable. > > > > 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. > > These are neccesary because reg of child gpio controller nodes is in I2C > device's address space. Will incorporate the remark in this paragraph. > > need empty line here. Ok. > > > Impose this restriction for the new compatible through an if-statement. > > > > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > > --- > > Changes in v2: > > - Enforce a unit address on the child gpios nodes (remove the ?) > > - Enforce the use of unit addresses by having #address-size and > > #size-cells only for the newly added fsl,lx2160ardb-fpga compatible > > > > .../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++ > > 1 file changed, 47 insertions(+) > > > ... > > > > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - fsl,lx2160ardb-fpga > > + then: > > + required: > > + - "#address-cells" > > + - "#size-cells" > > + > else: > properties: > '#address-cells': false > 'size-cells': false So that we also catch the cases in which address-cells/size-cells shoudn't be used. Will do. Thanks, Ioana
On Mon, Sep 15, 2025 at 03:23:47PM +0300, 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 so that the child nodes of the fsl,lx2160ardb-fpga node are
> addressable.
>
> 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.
> Impose this restriction for the new compatible through an if-statement.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> Changes in v2:
> - Enforce a unit address on the child gpios nodes (remove the ?)
> - Enforce the use of unit addresses by having #address-size and
> #size-cells only for the newly added fsl,lx2160ardb-fpga compatible
>
> .../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++
> 1 file changed, 47 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..da21d0defa04 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,10 +39,26 @@ properties:
> mux-controller:
> $ref: /schemas/mux/reg-mux.yaml
>
> +patternProperties:
> + "^gpio@[0-9a-f]+$":
> + $ref: /schemas/gpio/trivial-gpio.yaml
This results in this schema being applied twice and more
importantly allows any compatible listed in it to be allowed here. So I
would drop the $ref and do this instead:
additionalProperties: true
properties:
compatible:
contains:
enum:
- fsl,lx2160ardb-fpga-gpio-sfp
...
> +
> required:
> - compatible
> - reg
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,lx2160ardb-fpga
> + then:
> + required:
> + - "#address-cells"
> + - "#size-cells"
> +
> additionalProperties: false
>
> examples:
> @@ -68,3 +91,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-sfp";
> + 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 Mon, Sep 15, 2025 at 03:27:42PM -0500, Rob Herring wrote: > On Mon, Sep 15, 2025 at 03:23:47PM +0300, 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 so that the child nodes of the fsl,lx2160ardb-fpga node are > > addressable. > > > > 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. > > Impose this restriction for the new compatible through an if-statement. > > > > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > > --- > > Changes in v2: > > - Enforce a unit address on the child gpios nodes (remove the ?) > > - Enforce the use of unit addresses by having #address-size and > > #size-cells only for the newly added fsl,lx2160ardb-fpga compatible > > > > .../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++ > > 1 file changed, 47 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..da21d0defa04 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,10 +39,26 @@ properties: > > mux-controller: > > $ref: /schemas/mux/reg-mux.yaml > > > > +patternProperties: > > + "^gpio@[0-9a-f]+$": > > + $ref: /schemas/gpio/trivial-gpio.yaml > > This results in this schema being applied twice and more > importantly allows any compatible listed in it to be allowed here. So I > would drop the $ref and do this instead: > > additionalProperties: true > > properties: > compatible: > contains: > enum: > - fsl,lx2160ardb-fpga-gpio-sfp > ... Ok, sure. Will do this instead. I just realized that I didn't update the fsl,fpga-qixis.yaml which covers the LS1046AQDS board. I will use the same approach there as well for the gpio@ pattern property. Thanks! Ioana
On Mon, 15 Sep 2025 15:23:47 +0300, 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 so that the child nodes of the fsl,lx2160ardb-fpga node are
> addressable.
>
> 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.
> Impose this restriction for the new compatible through an if-statement.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> Changes in v2:
> - Enforce a unit address on the child gpios nodes (remove the ?)
> - Enforce the use of unit addresses by having #address-size and
> #size-cells only for the newly added fsl,lx2160ardb-fpga compatible
>
> .../bindings/board/fsl,fpga-qixis-i2c.yaml | 47 +++++++++++++++++++
> 1 file changed, 47 insertions(+)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.example.dtb: board-control@66 (fsl,lx2160ardb-fpga): gpio@19: {'compatible': ['fsl,lx2160ardb-fpga-gpio-sfp'], 'reg': [[25]], 'gpio-controller': True, '#gpio-cells': 2, 'gpio-line-names': ['SFP2_TX_EN', '', '', '', 'SFP2_RX_LOS', 'SFP2_TX_FAULT', '', 'SFP2_MOD_ABS']} should not be valid under {'description': "Can't find referenced schema: http://devicetree.org/schemas/gpio/trivial-gpio.yaml#"}
from schema $id: http://devicetree.org/schemas/board/fsl,fpga-qixis-i2c.yaml#
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250915122354.217720-3-ioana.ciornei@nxp.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2026 Red Hat, Inc.