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 necessary 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 in the parent
I2C device address space.

Impose this restriction for the new compatible through an if-statement.

The feature set exposed by these QIXIS FPGA devices is highly dependent
on the board type, meaning that even though the FPGA found on the
LX2160AQDS board (fsl,lx2160aqds-fpga) works in the same way in terms of
access over I2C as the one found on the LX2160ARDB (fsl,lx2160ardb-fpga
added here), the register map inside the device space is different since
there are different on-board devices to be controlled.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
Ioana Ciornei
2025-10-14 18:53:51 +03:00
committed by Shawn Guo
parent e252582624
commit b8ac5ceef2

View File

@@ -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,37 @@ properties:
mux-controller:
$ref: /schemas/mux/reg-mux.yaml
patternProperties:
"^gpio@[0-9a-f]+$":
type: object
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"
else:
properties:
"#address-cells": false
"#size-cells": false
additionalProperties: false
examples:
@@ -68,3 +102,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";
};
};
};