Files
linux/Documentation/devicetree/bindings/board/fsl,fpga-qixis-i2c.yaml
Ioana Ciornei b8ac5ceef2 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>
2025-10-27 14:20:55 +08:00

129 lines
2.6 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/board/fsl,fpga-qixis-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale on-board FPGA connected on I2C bus
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
oneOf:
- items:
- enum:
- fsl,bsc9132qds-fpga
- const: fsl,fpga-qixis-i2c
- items:
- enum:
- fsl,ls1028aqds-fpga
- 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
reg:
maxItems: 1
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:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
board-control@66 {
compatible = "fsl,bsc9132qds-fpga", "fsl,fpga-qixis-i2c";
reg = <0x66>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
board-control@66 {
compatible = "fsl,ls1028aqds-fpga", "fsl,fpga-qixis-i2c",
"simple-mfd";
reg = <0x66>;
mux-controller {
compatible = "reg-mux";
#mux-control-cells = <1>;
mux-reg-masks = <0x54 0xf0>; /* 0: reg 0x54, bits 7:4 */
};
};
};
- |
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";
};
};
};