mirror of
https://github.com/torvalds/linux.git
synced 2026-04-28 03:22:27 -04:00
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>
129 lines
2.6 KiB
YAML
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";
|
|
};
|
|
};
|
|
};
|