[PATCH v2 1/2] dt-bindings: misc: convert axis-fifo binding to YAML
From: Daniel28972897
Date: Fri Sep 18 2026 - 22:59:37 EST
Convert drivers/staging/axis-fifo/axis-fifo.txt to a YAML schema
under Documentation/devicetree/bindings/misc/, so it is checked by
dtbs_check and by checkpatch.pl's undocumented-compatible warning.
The FIFO depth properties are documented as being in 32-bit words,
matching the original text binding and the driver's own arithmetic
in axis_fifo_write(), not bytes as an earlier draft of this schema
incorrectly stated.
All properties from the original text binding are preserved,
including ones the driver itself ignores, since they are generated
unconditionally by the Xilinx IP integrator and may be present in
real-world devicetree sources.
Signed-off-by: Daniel28972897 <danyboy28sep@xxxxxxxxx>
---
.../bindings/misc/xlnx,axi-fifo-mm-s.yaml | 150 ++++++++++++++++++
1 file changed, 150 insertions(+)
create mode 100644 Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
diff --git a/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml b/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
new file mode 100644
index 000000000000..fffd69b12811
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
@@ -0,0 +1,150 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/xlnx,axi-fifo-mm-s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx AXI4-Stream FIFO MM S IP core
+
+maintainers:
+ - Daniel <danyboy28sep@xxxxxxxxx>
+
+description:
+ The Xilinx AXI4-Stream FIFO MM S IP core has read and write AXI-Stream
+ FIFOs, the contents of which can be accessed from the AXI4 memory-mapped
+ interface. This is useful for transferring data from a processor into
+ the FPGA fabric. See Xilinx PG080 for details.
+
+ Currently the Linux driver supports only store-forward mode with a
+ 32-bit AXI4-Lite interface, and does not support cut-through mode or
+ full (non-lite) AXI4.
+
+properties:
+ compatible:
+ enum:
+ - xlnx,axi-fifo-mm-s-4.1
+ - xlnx,axi-fifo-mm-s-4.2
+ - xlnx,axi-fifo-mm-s-4.3
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-names:
+ const: interrupt
+
+ xlnx,axi-str-rxd-tdata-width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ const: 32
+ description:
+ Width, in bits, of the AXI4-Stream receive data interface. Only 32
+ is currently supported by the driver.
+
+ xlnx,axi-str-txd-tdata-width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ const: 32
+ description:
+ Width, in bits, of the AXI4-Stream transmit data interface. Only 32
+ is currently supported by the driver.
+
+ xlnx,rx-fifo-depth:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Depth, in 32-bit words, of the receive FIFO.
+
+ xlnx,tx-fifo-depth:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Depth, in 32-bit words, of the transmit FIFO.
+
+ xlnx,use-rx-data:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1]
+ description:
+ Whether the receive data path is present in this IP core instance.
+
+ xlnx,use-tx-data:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1]
+ description:
+ Whether the transmit data path is present in this IP core instance.
+
+ # The following properties are generated by the Xilinx IP integrator
+ # for this core and may be present in real-world devicetrees, but are
+ # not currently read by the Linux driver.
+ xlnx,axi-str-rxd-protocol: true
+ xlnx,axi-str-txc-protocol: true
+ xlnx,axi-str-txc-tdata-width: true
+ xlnx,axi-str-txd-protocol: true
+ xlnx,axis-tdest-width: true
+ xlnx,axis-tid-width: true
+ xlnx,axis-tuser-width: true
+ xlnx,data-interface-type: true
+ xlnx,has-axis-tdest: true
+ xlnx,has-axis-tid: true
+ xlnx,has-axis-tkeep: true
+ xlnx,has-axis-tstrb: true
+ xlnx,has-axis-tuser: true
+ xlnx,rx-fifo-pe-threshold: true
+ xlnx,rx-fifo-pf-threshold: true
+ xlnx,s-axi-id-width: true
+ xlnx,s-axi4-data-width: true
+ xlnx,select-xpm: true
+ xlnx,tx-fifo-pe-threshold: true
+ xlnx,tx-fifo-pf-threshold: true
+ xlnx,use-rx-cut-through: true
+ xlnx,use-tx-ctrl: true
+ xlnx,use-tx-cut-through: true
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - xlnx,axi-str-rxd-tdata-width
+ - xlnx,axi-str-txd-tdata-width
+ - xlnx,rx-fifo-depth
+ - xlnx,tx-fifo-depth
+ - xlnx,use-rx-data
+ - xlnx,use-tx-data
+
+additionalProperties: false
+
+examples:
+ - |
+ fifo@43c00000 {
+ compatible = "xlnx,axi-fifo-mm-s-4.1";
+ reg = <0x43c00000 0x10000>;
+ interrupt-names = "interrupt";
+ interrupts = <0 29 4>;
+ xlnx,axi-str-rxd-protocol = "XIL_AXI_STREAM_ETH_DATA";
+ xlnx,axi-str-rxd-tdata-width = <32>;
+ xlnx,axi-str-txc-protocol = "XIL_AXI_STREAM_ETH_CTRL";
+ xlnx,axi-str-txc-tdata-width = <32>;
+ xlnx,axi-str-txd-protocol = "XIL_AXI_STREAM_ETH_DATA";
+ xlnx,axi-str-txd-tdata-width = <32>;
+ xlnx,axis-tdest-width = <4>;
+ xlnx,axis-tid-width = <4>;
+ xlnx,axis-tuser-width = <4>;
+ xlnx,data-interface-type = <0>;
+ xlnx,has-axis-tdest = <0>;
+ xlnx,has-axis-tid = <0>;
+ xlnx,has-axis-tkeep = <0>;
+ xlnx,has-axis-tstrb = <0>;
+ xlnx,has-axis-tuser = <0>;
+ xlnx,rx-fifo-depth = <512>;
+ xlnx,rx-fifo-pe-threshold = <2>;
+ xlnx,rx-fifo-pf-threshold = <507>;
+ xlnx,s-axi-id-width = <4>;
+ xlnx,s-axi4-data-width = <32>;
+ xlnx,select-xpm = <0>;
+ xlnx,tx-fifo-depth = <32768>;
+ xlnx,tx-fifo-pe-threshold = <512>;
+ xlnx,tx-fifo-pf-threshold = <32763>;
+ xlnx,use-rx-cut-through = <0>;
+ xlnx,use-rx-data = <0>;
+ xlnx,use-tx-ctrl = <0>;
+ xlnx,use-tx-cut-through = <0>;
+ xlnx,use-tx-data = <1>;
+ };
--
2.34.1