* [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
@ 2026-05-10 8:32 Pramod Maurya
2026-05-10 9:43 ` Rob Herring (Arm)
` (2 more replies)
0 siblings, 3 replies; 20+ messages in thread
From: Pramod Maurya @ 2026-05-10 8:32 UTC (permalink / raw)
To: jic23
Cc: pramod.nexgen, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
Convert the Xilinx XADC and UltraScale System Monitor device tree binding
from the legacy plain-text format to a YAML schema, enabling automated
validation with dt-schema.
The new binding covers the same hardware and compatible strings:
- xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
- xlnx,axi-xadc-1.00.a (AXI softmacro)
- xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
---
Changes in v3:
- Move xlnx,channels from properties: to patternProperties: to satisfy
vendor-props.yaml meta-schema, which requires vendor-prefixed entries
in properties: to be type: boolean; xlnx,channels is a subnode (object)
so it belongs in patternProperties:
Changes in v2:
- Fix patternProperties regex to use lowercase hex unit addresses
(channel@a through channel@f) instead of decimal; correct range
is now "^channel@([0-9a-f]|10)$"
- Add allOf/if/then conditional to enforce xlnx,external-mux-channel
is required when xlnx,external-mux is "single" or "dual"
.../bindings/iio/adc/xilinx-xadc.txt | 141 ------------
.../bindings/iio/adc/xlnx,xadc.yaml | 205 ++++++++++++++++++
MAINTAINERS | 7 +
3 files changed, 212 insertions(+), 141 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
diff --git a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt b/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
deleted file mode 100644
index f42e18078376..000000000000
--- a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-Xilinx XADC device driver
-
-This binding document describes the bindings for the Xilinx 7 Series XADC as well
-as the UltraScale/UltraScale+ System Monitor.
-
-The Xilinx XADC is an ADC that can be found in the Series 7 FPGAs from Xilinx.
-The XADC has a DRP interface for communication. Currently two different
-frontends for the DRP interface exist. One that is only available on the ZYNQ
-family as a hardmacro in the SoC portion of the ZYNQ. The other one is available
-on all series 7 platforms and is a softmacro with a AXI interface. This binding
-document describes the bindings for both of them since the bindings are very
-similar.
-
-The Xilinx System Monitor is an ADC that is found in the UltraScale and
-UltraScale+ FPGAs from Xilinx. The System Monitor provides a DRP interface for
-communication. Xilinx provides a standard IP core that can be used to access the
-System Monitor through an AXI interface in the FPGA fabric. This IP core is
-called the Xilinx System Management Wizard. This document describes the bindings
-for this IP.
-
-Required properties:
- - compatible: Should be one of
- * "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
- configuration interface to interface to the XADC hardmacro.
- * "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
- interface to the XADC hardmacro.
- * "xlnx,system-management-wiz-1.3": When using the
- Xilinx System Management Wizard fabric IP core to access the
- UltraScale and UltraScale+ System Monitor.
- - reg: Address and length of the register set for the device
- - interrupts: Interrupt for the XADC control interface.
- - clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
- when using the axi-xadc or the axi-system-management-wizard this must be
- the clock that provides the clock to the AXI bus interface of the core.
-
-Optional properties:
- - xlnx,external-mux:
- * "none": No external multiplexer is used, this is the default
- if the property is omitted.
- * "single": External multiplexer mode is used with one
- multiplexer.
- * "dual": External multiplexer mode is used with two
- multiplexers for simultaneous sampling.
- - xlnx,external-mux-channel: Configures which pair of pins is used to
- sample data in external mux mode.
- Valid values for single external multiplexer mode are:
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Valid values for dual external multiplexer mode are:
- 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
- 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
- ...
- 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
-
- This property needs to be present if the device is configured for
- external multiplexer mode (either single or dual). If the device is
- not using external multiplexer mode the property is ignored.
- - xnlx,channels: List of external channels that are connected to the ADC
- Required properties:
- * #address-cells: Should be 1.
- * #size-cells: Should be 0.
-
- The child nodes of this node represent the external channels which are
- connected to the ADC. If the property is no present no external
- channels will be assumed to be connected.
-
- Each child node represents one channel and has the following
- properties:
- Required properties:
- * reg: Pair of pins the channel is connected to.
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Note each channel number should only be used at most
- once.
- Optional properties:
- * xlnx,bipolar: If set the channel is used in bipolar
- mode.
-
-
-Examples:
- xadc@f8007100 {
- compatible = "xlnx,zynq-xadc-1.00.a";
- reg = <0xf8007100 0x20>;
- interrupts = <0 7 4>;
- interrupt-parent = <&gic>;
- clocks = <&pcap_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- };
- channel@1 {
- reg = <1>;
- };
- channel@8 {
- reg = <8>;
- };
- };
- };
-
- xadc@43200000 {
- compatible = "xlnx,axi-xadc-1.00.a";
- reg = <0x43200000 0x1000>;
- interrupts = <0 53 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
-
- adc@80000000 {
- compatible = "xlnx,system-management-wiz-1.3";
- reg = <0x80000000 0x1000>;
- interrupts = <0 81 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
diff --git a/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
new file mode 100644
index 000000000000..ab6f16109aeb
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
@@ -0,0 +1,205 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/xlnx,xadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx XADC and UltraScale System Monitor
+
+maintainers:
+ - Lars-Peter Clausen <lars@metafoo.de>
+
+description: |
+ The Xilinx XADC is an ADC found in the Series 7 FPGAs. It has a DRP
+ (Dynamic Reconfiguration Port) interface for communication. Two different
+ frontends for the DRP interface are supported:
+
+ - ZYNQ hardmacro: available only on the ZYNQ family as a hardmacro in
+ the SoC portion of the ZYNQ device.
+ - AXI softmacro: available on all Series 7 platforms as a softmacro
+ with an AXI interface (PG019).
+
+ The Xilinx System Monitor is an ADC found in UltraScale and UltraScale+
+ FPGAs. It is accessed through the Xilinx System Management Wizard IP core
+ via an AXI interface in the FPGA fabric.
+
+properties:
+ compatible:
+ enum:
+ - xlnx,zynq-xadc-1.00.a
+ - xlnx,axi-xadc-1.00.a
+ - xlnx,system-management-wiz-1.3
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ description: |
+ When using the ZYNQ this must be the ZYNQ PCAP clock.
+ When using the axi-xadc or system-management-wiz this must be
+ the clock that provides the clock to the AXI bus interface.
+ maxItems: 1
+
+ xlnx,external-mux:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Selects the external multiplexer mode.
+ enum:
+ - none
+ - single
+ - dual
+
+ xlnx,external-mux-channel:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Configures which pair of pins is used to sample data in external
+ multiplexer mode. This property is required when the device is
+ configured for external multiplexer mode.
+
+ Valid values for single external multiplexer mode:
+ 0: VP/VN
+ 1-16: VAUXP[0]/VAUXN[0] through VAUXP[15]/VAUXN[15]
+
+ Valid values for dual external multiplexer mode:
+ 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
+ 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
+ ...
+ 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
+ minimum: 0
+ maximum: 16
+
+patternProperties:
+ "^xlnx,channels$":
+ type: object
+ description:
+ List of external channels connected to the ADC. If this property is
+ absent, no external channels are assumed to be connected.
+
+ properties:
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ patternProperties:
+ "^channel@([0-9a-f]|10)$":
+ type: object
+ description:
+ Represents an external channel connected to the ADC.
+
+ properties:
+ reg:
+ description: |
+ Pair of pins the channel is connected to.
+ 0: VP/VN
+ 1: VAUXP[0]/VAUXN[0]
+ 2: VAUXP[1]/VAUXN[1]
+ ...
+ 16: VAUXP[15]/VAUXN[15]
+ minimum: 0
+ maximum: 16
+
+ xlnx,bipolar:
+ $ref: /schemas/types.yaml#/definitions/flag
+ type: boolean
+ description:
+ If set, the channel is used in bipolar mode.
+
+ required:
+ - reg
+
+ additionalProperties: false
+
+ required:
+ - '#address-cells'
+ - '#size-cells'
+
+ additionalProperties: false
+
+allOf:
+ - if:
+ properties:
+ xlnx,external-mux:
+ enum:
+ - single
+ - dual
+ required:
+ - xlnx,external-mux
+ then:
+ required:
+ - xlnx,external-mux-channel
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ /* ZYNQ hardmacro example */
+ adc@f8007100 {
+ compatible = "xlnx,zynq-xadc-1.00.a";
+ reg = <0xf8007100 0x20>;
+ interrupts = <0 7 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&pcap_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ };
+ channel@1 {
+ reg = <1>;
+ };
+ channel@8 {
+ reg = <8>;
+ };
+ };
+ };
+
+ - |
+ /* AXI softmacro example */
+ adc@43200000 {
+ compatible = "xlnx,axi-xadc-1.00.a";
+ reg = <0x43200000 0x1000>;
+ interrupts = <0 53 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
+
+ - |
+ /* UltraScale System Management Wizard example */
+ adc@80000000 {
+ compatible = "xlnx,system-management-wiz-1.3";
+ reg = <0x80000000 0x1000>;
+ interrupts = <0 81 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 2fb1c75afd16..9b107057ad8c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -29226,6 +29226,13 @@ F: Documentation/devicetree/bindings/watchdog/xlnx,xps-timebase-wdt.yaml
F: drivers/watchdog/of_xilinx_wdt.c
F: drivers/watchdog/xilinx_wwdt.c
+XILINX XADC DRIVER
+M: Lars-Peter Clausen <lars@metafoo.de>
+L: linux-iio@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
+F: drivers/iio/adc/xilinx-xadc*
+
XILINX XDMA DRIVER
M: Lizhi Hou <lizhi.hou@amd.com>
M: Brian Xu <brian.xu@amd.com>
--
2.52.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-10 8:32 [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
@ 2026-05-10 9:43 ` Rob Herring (Arm)
2026-05-10 12:01 ` Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
2 siblings, 0 replies; 20+ messages in thread
From: Rob Herring (Arm) @ 2026-05-10 9:43 UTC (permalink / raw)
To: Pramod Maurya
Cc: Krzysztof Kozlowski, linux-arm-kernel, jic23, linux-kernel,
David Lechner, Michal Simek, Andy Shevchenko, Conor Dooley,
Lars-Peter Clausen, devicetree, Nuno Sá, linux-iio
On Sun, 10 May 2026 04:32:13 -0400, Pramod Maurya wrote:
> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> from the legacy plain-text format to a YAML schema, enabling automated
> validation with dt-schema.
>
> The new binding covers the same hardware and compatible strings:
> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>
> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
> ---
> Changes in v3:
> - Move xlnx,channels from properties: to patternProperties: to satisfy
> vendor-props.yaml meta-schema, which requires vendor-prefixed entries
> in properties: to be type: boolean; xlnx,channels is a subnode (object)
> so it belongs in patternProperties:
>
> Changes in v2:
> - Fix patternProperties regex to use lowercase hex unit addresses
> (channel@a through channel@f) instead of decimal; correct range
> is now "^channel@([0-9a-f]|10)$"
> - Add allOf/if/then conditional to enforce xlnx,external-mux-channel
> is required when xlnx,external-mux is "single" or "dual"
>
> .../bindings/iio/adc/xilinx-xadc.txt | 141 ------------
> .../bindings/iio/adc/xlnx,xadc.yaml | 205 ++++++++++++++++++
> MAINTAINERS | 7 +
> 3 files changed, 212 insertions(+), 141 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
> create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
>
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/iio/adc/xlnx,xadc.yaml: patternProperties: '^xlnx,channels$' should not be valid under {'pattern': '^\\^[a-zA-Z0-9,\\-._#@]+\\$$'}
hint: Fixed strings belong in 'properties', not 'patternProperties'
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml
doc reference errors (make refcheckdocs):
See https://patchwork.kernel.org/project/devicetree/patch/20260510083219.70224-1-pramod.nexgen@gmail.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.
^ permalink raw reply [flat|nested] 20+ messages in thread* [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-10 8:32 [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
2026-05-10 9:43 ` Rob Herring (Arm)
@ 2026-05-10 12:01 ` Pramod Maurya
2026-05-11 16:15 ` Jonathan Cameron
2026-05-11 16:17 ` Jonathan Cameron
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
2 siblings, 2 replies; 20+ messages in thread
From: Pramod Maurya @ 2026-05-10 12:01 UTC (permalink / raw)
To: jic23
Cc: pramod.nexgen, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
Convert the Xilinx XADC and UltraScale System Monitor device tree binding
from the legacy plain-text format to a YAML schema, enabling automated
validation with dt-schema.
The new binding covers the same hardware and compatible strings:
- xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
- xlnx,axi-xadc-1.00.a (AXI softmacro)
- xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
---
Changes in v3:
- Move xlnx,channels from properties: to patternProperties: to satisfy
vendor-props.yaml meta-schema, which requires vendor-prefixed entries
in properties: to be type: boolean; xlnx,channels is a subnode (object)
so it belongs in patternProperties:
Changes in v2:
- Fix patternProperties regex to use lowercase hex unit addresses
(channel@a through channel@f) instead of decimal; correct range
is now "^channel@([0-9a-f]|10)$"
- Add allOf/if/then conditional to enforce xlnx,external-mux-channel
is required when xlnx,external-mux is "single" or "dual"
.../bindings/iio/adc/xilinx-xadc.txt | 141 ------------
.../bindings/iio/adc/xlnx,xadc.yaml | 205 ++++++++++++++++++
MAINTAINERS | 7 +
3 files changed, 212 insertions(+), 141 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
diff --git a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt b/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
deleted file mode 100644
index f42e18078376..000000000000
--- a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-Xilinx XADC device driver
-
-This binding document describes the bindings for the Xilinx 7 Series XADC as well
-as the UltraScale/UltraScale+ System Monitor.
-
-The Xilinx XADC is an ADC that can be found in the Series 7 FPGAs from Xilinx.
-The XADC has a DRP interface for communication. Currently two different
-frontends for the DRP interface exist. One that is only available on the ZYNQ
-family as a hardmacro in the SoC portion of the ZYNQ. The other one is available
-on all series 7 platforms and is a softmacro with a AXI interface. This binding
-document describes the bindings for both of them since the bindings are very
-similar.
-
-The Xilinx System Monitor is an ADC that is found in the UltraScale and
-UltraScale+ FPGAs from Xilinx. The System Monitor provides a DRP interface for
-communication. Xilinx provides a standard IP core that can be used to access the
-System Monitor through an AXI interface in the FPGA fabric. This IP core is
-called the Xilinx System Management Wizard. This document describes the bindings
-for this IP.
-
-Required properties:
- - compatible: Should be one of
- * "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
- configuration interface to interface to the XADC hardmacro.
- * "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
- interface to the XADC hardmacro.
- * "xlnx,system-management-wiz-1.3": When using the
- Xilinx System Management Wizard fabric IP core to access the
- UltraScale and UltraScale+ System Monitor.
- - reg: Address and length of the register set for the device
- - interrupts: Interrupt for the XADC control interface.
- - clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
- when using the axi-xadc or the axi-system-management-wizard this must be
- the clock that provides the clock to the AXI bus interface of the core.
-
-Optional properties:
- - xlnx,external-mux:
- * "none": No external multiplexer is used, this is the default
- if the property is omitted.
- * "single": External multiplexer mode is used with one
- multiplexer.
- * "dual": External multiplexer mode is used with two
- multiplexers for simultaneous sampling.
- - xlnx,external-mux-channel: Configures which pair of pins is used to
- sample data in external mux mode.
- Valid values for single external multiplexer mode are:
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Valid values for dual external multiplexer mode are:
- 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
- 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
- ...
- 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
-
- This property needs to be present if the device is configured for
- external multiplexer mode (either single or dual). If the device is
- not using external multiplexer mode the property is ignored.
- - xnlx,channels: List of external channels that are connected to the ADC
- Required properties:
- * #address-cells: Should be 1.
- * #size-cells: Should be 0.
-
- The child nodes of this node represent the external channels which are
- connected to the ADC. If the property is no present no external
- channels will be assumed to be connected.
-
- Each child node represents one channel and has the following
- properties:
- Required properties:
- * reg: Pair of pins the channel is connected to.
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Note each channel number should only be used at most
- once.
- Optional properties:
- * xlnx,bipolar: If set the channel is used in bipolar
- mode.
-
-
-Examples:
- xadc@f8007100 {
- compatible = "xlnx,zynq-xadc-1.00.a";
- reg = <0xf8007100 0x20>;
- interrupts = <0 7 4>;
- interrupt-parent = <&gic>;
- clocks = <&pcap_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- };
- channel@1 {
- reg = <1>;
- };
- channel@8 {
- reg = <8>;
- };
- };
- };
-
- xadc@43200000 {
- compatible = "xlnx,axi-xadc-1.00.a";
- reg = <0x43200000 0x1000>;
- interrupts = <0 53 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
-
- adc@80000000 {
- compatible = "xlnx,system-management-wiz-1.3";
- reg = <0x80000000 0x1000>;
- interrupts = <0 81 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
diff --git a/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
new file mode 100644
index 000000000000..ab6f16109aeb
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
@@ -0,0 +1,205 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/xlnx,xadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx XADC and UltraScale System Monitor
+
+maintainers:
+ - Lars-Peter Clausen <lars@metafoo.de>
+
+description: |
+ The Xilinx XADC is an ADC found in the Series 7 FPGAs. It has a DRP
+ (Dynamic Reconfiguration Port) interface for communication. Two different
+ frontends for the DRP interface are supported:
+
+ - ZYNQ hardmacro: available only on the ZYNQ family as a hardmacro in
+ the SoC portion of the ZYNQ device.
+ - AXI softmacro: available on all Series 7 platforms as a softmacro
+ with an AXI interface (PG019).
+
+ The Xilinx System Monitor is an ADC found in UltraScale and UltraScale+
+ FPGAs. It is accessed through the Xilinx System Management Wizard IP core
+ via an AXI interface in the FPGA fabric.
+
+properties:
+ compatible:
+ enum:
+ - xlnx,zynq-xadc-1.00.a
+ - xlnx,axi-xadc-1.00.a
+ - xlnx,system-management-wiz-1.3
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ description: |
+ When using the ZYNQ this must be the ZYNQ PCAP clock.
+ When using the axi-xadc or system-management-wiz this must be
+ the clock that provides the clock to the AXI bus interface.
+ maxItems: 1
+
+ xlnx,external-mux:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Selects the external multiplexer mode.
+ enum:
+ - none
+ - single
+ - dual
+
+ xlnx,external-mux-channel:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Configures which pair of pins is used to sample data in external
+ multiplexer mode. This property is required when the device is
+ configured for external multiplexer mode.
+
+ Valid values for single external multiplexer mode:
+ 0: VP/VN
+ 1-16: VAUXP[0]/VAUXN[0] through VAUXP[15]/VAUXN[15]
+
+ Valid values for dual external multiplexer mode:
+ 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
+ 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
+ ...
+ 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
+ minimum: 0
+ maximum: 16
+
+patternProperties:
+ "^xlnx,channels$":
+ type: object
+ description:
+ List of external channels connected to the ADC. If this property is
+ absent, no external channels are assumed to be connected.
+
+ properties:
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ patternProperties:
+ "^channel@([0-9a-f]|10)$":
+ type: object
+ description:
+ Represents an external channel connected to the ADC.
+
+ properties:
+ reg:
+ description: |
+ Pair of pins the channel is connected to.
+ 0: VP/VN
+ 1: VAUXP[0]/VAUXN[0]
+ 2: VAUXP[1]/VAUXN[1]
+ ...
+ 16: VAUXP[15]/VAUXN[15]
+ minimum: 0
+ maximum: 16
+
+ xlnx,bipolar:
+ $ref: /schemas/types.yaml#/definitions/flag
+ type: boolean
+ description:
+ If set, the channel is used in bipolar mode.
+
+ required:
+ - reg
+
+ additionalProperties: false
+
+ required:
+ - '#address-cells'
+ - '#size-cells'
+
+ additionalProperties: false
+
+allOf:
+ - if:
+ properties:
+ xlnx,external-mux:
+ enum:
+ - single
+ - dual
+ required:
+ - xlnx,external-mux
+ then:
+ required:
+ - xlnx,external-mux-channel
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ /* ZYNQ hardmacro example */
+ adc@f8007100 {
+ compatible = "xlnx,zynq-xadc-1.00.a";
+ reg = <0xf8007100 0x20>;
+ interrupts = <0 7 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&pcap_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ };
+ channel@1 {
+ reg = <1>;
+ };
+ channel@8 {
+ reg = <8>;
+ };
+ };
+ };
+
+ - |
+ /* AXI softmacro example */
+ adc@43200000 {
+ compatible = "xlnx,axi-xadc-1.00.a";
+ reg = <0x43200000 0x1000>;
+ interrupts = <0 53 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
+
+ - |
+ /* UltraScale System Management Wizard example */
+ adc@80000000 {
+ compatible = "xlnx,system-management-wiz-1.3";
+ reg = <0x80000000 0x1000>;
+ interrupts = <0 81 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 2fb1c75afd16..9b107057ad8c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -29226,6 +29226,13 @@ F: Documentation/devicetree/bindings/watchdog/xlnx,xps-timebase-wdt.yaml
F: drivers/watchdog/of_xilinx_wdt.c
F: drivers/watchdog/xilinx_wwdt.c
+XILINX XADC DRIVER
+M: Lars-Peter Clausen <lars@metafoo.de>
+L: linux-iio@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
+F: drivers/iio/adc/xilinx-xadc*
+
XILINX XDMA DRIVER
M: Lizhi Hou <lizhi.hou@amd.com>
M: Brian Xu <brian.xu@amd.com>
--
2.52.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-10 12:01 ` Pramod Maurya
@ 2026-05-11 16:15 ` Jonathan Cameron
2026-05-11 16:24 ` David Lechner
2026-05-11 16:17 ` Jonathan Cameron
1 sibling, 1 reply; 20+ messages in thread
From: Jonathan Cameron @ 2026-05-11 16:15 UTC (permalink / raw)
To: Pramod Maurya
Cc: David Lechner, Nuno Sá, Andy Shevchenko, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On Sun, 10 May 2026 08:01:36 -0400
Pramod Maurya <pramod.nexgen@gmail.com> wrote:
> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> from the legacy plain-text format to a YAML schema, enabling automated
> validation with dt-schema.
>
> The new binding covers the same hardware and compatible strings:
> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>
> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Hi Pramod,
Something went wrong with your sending of v3. I have two versions sent
half a day apart and no idea how they are related.
Anyhow one of them got feedback from Rob's bot so I'll assume we are
getting a v4 and wait for that.
Jonathan
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-11 16:15 ` Jonathan Cameron
@ 2026-05-11 16:24 ` David Lechner
2026-05-12 12:14 ` Rob Herring
0 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2026-05-11 16:24 UTC (permalink / raw)
To: Jonathan Cameron, Pramod Maurya
Cc: Nuno Sá, Andy Shevchenko, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Michal Simek, Lars-Peter Clausen, linux-iio,
devicetree, linux-arm-kernel, linux-kernel
On 5/11/26 11:15 AM, Jonathan Cameron wrote:
> On Sun, 10 May 2026 08:01:36 -0400
> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>
>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>> from the legacy plain-text format to a YAML schema, enabling automated
>> validation with dt-schema.
>>
>> The new binding covers the same hardware and compatible strings:
>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>
>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
> Hi Pramod,
>
> Something went wrong with your sending of v3. I have two versions sent
> half a day apart and no idea how they are related.
>
> Anyhow one of them got feedback from Rob's bot so I'll assume we are
> getting a v4 and wait for that.
>
> Jonathan
I think Rob will have to fix the bot to make an exception for the
legacy bindings. This should have been called out in the commit message
as requested in a previous revision.
https://lore.kernel.org/linux-iio/20260220053941.611415-6-sai.krishna.potthuri@amd.com/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-11 16:24 ` David Lechner
@ 2026-05-12 12:14 ` Rob Herring
2026-05-12 13:58 ` David Lechner
0 siblings, 1 reply; 20+ messages in thread
From: Rob Herring @ 2026-05-12 12:14 UTC (permalink / raw)
To: David Lechner
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>
> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
> > On Sun, 10 May 2026 08:01:36 -0400
> > Pramod Maurya <pramod.nexgen@gmail.com> wrote:
> >
> >> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> >> from the legacy plain-text format to a YAML schema, enabling automated
> >> validation with dt-schema.
> >>
> >> The new binding covers the same hardware and compatible strings:
> >> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> >> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> >> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
> >>
> >> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
> > Hi Pramod,
> >
> > Something went wrong with your sending of v3. I have two versions sent
> > half a day apart and no idea how they are related.
> >
> > Anyhow one of them got feedback from Rob's bot so I'll assume we are
> > getting a v4 and wait for that.
> >
> > Jonathan
>
> I think Rob will have to fix the bot to make an exception for the
> legacy bindings. This should have been called out in the commit message
> as requested in a previous revision.
The bot is not the problem. It just runs validation. The schemas will
have to either drop this check (comma's in nodenames) or exclude just
this property.
Rob
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 12:14 ` Rob Herring
@ 2026-05-12 13:58 ` David Lechner
2026-05-12 14:10 ` Michal Simek
` (2 more replies)
0 siblings, 3 replies; 20+ messages in thread
From: David Lechner @ 2026-05-12 13:58 UTC (permalink / raw)
To: Rob Herring
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On 5/12/26 7:14 AM, Rob Herring wrote:
> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>
>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>> On Sun, 10 May 2026 08:01:36 -0400
>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>
>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>> validation with dt-schema.
>>>>
>>>> The new binding covers the same hardware and compatible strings:
>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>
>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>> Hi Pramod,
>>>
>>> Something went wrong with your sending of v3. I have two versions sent
>>> half a day apart and no idea how they are related.
>>>
>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>> getting a v4 and wait for that.
>>>
>>> Jonathan
>>
>> I think Rob will have to fix the bot to make an exception for the
>> legacy bindings. This should have been called out in the commit message
>> as requested in a previous revision.
>
> The bot is not the problem. It just runs validation. The schemas will
> have to either drop this check (comma's in nodenames) or exclude just
> this property.
>
>
> Rob
Even though this is an existing text-based schema that has been around
for 12 years with this name already? Changing it could be a breaking
change to existing users. Although there aren't any in any .dts in the
kernel source.
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 13:58 ` David Lechner
@ 2026-05-12 14:10 ` Michal Simek
2026-05-12 14:16 ` David Lechner
2026-05-12 14:13 ` David Lechner
2026-05-12 19:42 ` Rob Herring
2 siblings, 1 reply; 20+ messages in thread
From: Michal Simek @ 2026-05-12 14:10 UTC (permalink / raw)
To: David Lechner, Rob Herring
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Lars-Peter Clausen, linux-iio,
devicetree, linux-arm-kernel, linux-kernel
On 5/12/26 15:58, David Lechner wrote:
> On 5/12/26 7:14 AM, Rob Herring wrote:
>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>>
>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>>> On Sun, 10 May 2026 08:01:36 -0400
>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>>
>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>>> validation with dt-schema.
>>>>>
>>>>> The new binding covers the same hardware and compatible strings:
>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>>
>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>>> Hi Pramod,
>>>>
>>>> Something went wrong with your sending of v3. I have two versions sent
>>>> half a day apart and no idea how they are related.
>>>>
>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>>> getting a v4 and wait for that.
>>>>
>>>> Jonathan
>>>
>>> I think Rob will have to fix the bot to make an exception for the
>>> legacy bindings. This should have been called out in the commit message
>>> as requested in a previous revision.
>>
>> The bot is not the problem. It just runs validation. The schemas will
>> have to either drop this check (comma's in nodenames) or exclude just
>> this property.
>>
>>
>> Rob
>
> Even though this is an existing text-based schema that has been around
> for 12 years with this name already? Changing it could be a breaking
> change to existing users. Although there aren't any in any .dts in the
> kernel source.
Zynq has it described.
arch/arm/boot/dts/xilinx/zynq-7000.dtsi:111: compatible =
"xlnx,zynq-xadc-1.00.a";
And make no sense to describe programmable logic which are that other two.
Thanks,
Michal
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 14:10 ` Michal Simek
@ 2026-05-12 14:16 ` David Lechner
2026-05-12 14:21 ` Michal Simek
0 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2026-05-12 14:16 UTC (permalink / raw)
To: Michal Simek, Rob Herring
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Lars-Peter Clausen, linux-iio,
devicetree, linux-arm-kernel, linux-kernel
On 5/12/26 9:10 AM, Michal Simek wrote:
>
>
> On 5/12/26 15:58, David Lechner wrote:
>> On 5/12/26 7:14 AM, Rob Herring wrote:
>>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>>>
>>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>>>> On Sun, 10 May 2026 08:01:36 -0400
>>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>>>
>>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>>>> validation with dt-schema.
>>>>>>
>>>>>> The new binding covers the same hardware and compatible strings:
>>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>>>
>>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>>>> Hi Pramod,
>>>>>
>>>>> Something went wrong with your sending of v3. I have two versions sent
>>>>> half a day apart and no idea how they are related.
>>>>>
>>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>>>> getting a v4 and wait for that.
>>>>>
>>>>> Jonathan
>>>>
>>>> I think Rob will have to fix the bot to make an exception for the
>>>> legacy bindings. This should have been called out in the commit message
>>>> as requested in a previous revision.
>>>
>>> The bot is not the problem. It just runs validation. The schemas will
>>> have to either drop this check (comma's in nodenames) or exclude just
>>> this property.
>>>
>>>
>>> Rob
>>
>> Even though this is an existing text-based schema that has been around
>> for 12 years with this name already? Changing it could be a breaking
>> change to existing users. Although there aren't any in any .dts in the
>> kernel source.
>
> Zynq has it described.
> arch/arm/boot/dts/xilinx/zynq-7000.dtsi:111: compatible = "xlnx,zynq-xadc-1.00.a";
>
> And make no sense to describe programmable logic which are that other two.
>
> Thanks,
> Michal
The issue is with the xlnx,channels property name. Searching only shows
this in the driver and in the examples in the bindings .txt file.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 14:16 ` David Lechner
@ 2026-05-12 14:21 ` Michal Simek
0 siblings, 0 replies; 20+ messages in thread
From: Michal Simek @ 2026-05-12 14:21 UTC (permalink / raw)
To: David Lechner, Rob Herring
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Lars-Peter Clausen, linux-iio,
devicetree, linux-arm-kernel, linux-kernel
On 5/12/26 16:16, David Lechner wrote:
> On 5/12/26 9:10 AM, Michal Simek wrote:
>>
>>
>> On 5/12/26 15:58, David Lechner wrote:
>>> On 5/12/26 7:14 AM, Rob Herring wrote:
>>>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>>>>
>>>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>>>>> On Sun, 10 May 2026 08:01:36 -0400
>>>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>>>>
>>>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>>>>> validation with dt-schema.
>>>>>>>
>>>>>>> The new binding covers the same hardware and compatible strings:
>>>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>>>>
>>>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>>>>> Hi Pramod,
>>>>>>
>>>>>> Something went wrong with your sending of v3. I have two versions sent
>>>>>> half a day apart and no idea how they are related.
>>>>>>
>>>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>>>>> getting a v4 and wait for that.
>>>>>>
>>>>>> Jonathan
>>>>>
>>>>> I think Rob will have to fix the bot to make an exception for the
>>>>> legacy bindings. This should have been called out in the commit message
>>>>> as requested in a previous revision.
>>>>
>>>> The bot is not the problem. It just runs validation. The schemas will
>>>> have to either drop this check (comma's in nodenames) or exclude just
>>>> this property.
>>>>
>>>>
>>>> Rob
>>>
>>> Even though this is an existing text-based schema that has been around
>>> for 12 years with this name already? Changing it could be a breaking
>>> change to existing users. Although there aren't any in any .dts in the
>>> kernel source.
>>
>> Zynq has it described.
>> arch/arm/boot/dts/xilinx/zynq-7000.dtsi:111: compatible = "xlnx,zynq-xadc-1.00.a";
>>
>> And make no sense to describe programmable logic which are that other two.
>>
>> Thanks,
>> Michal
>
> The issue is with the xlnx,channels property name. Searching only shows
> this in the driver and in the examples in the bindings .txt file.
Because it depends on HW design configuration. Different configuration have
different channels exposed. We are using device tree generator which take
current design configuration and describe them. zynq-7000.dtsi is generic for
all boards. I can't remember all details but I wouldn't be surprise if no
channel is exported on minimal/default designs which are described.
Thanks,
Michal
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 13:58 ` David Lechner
2026-05-12 14:10 ` Michal Simek
@ 2026-05-12 14:13 ` David Lechner
2026-05-12 19:42 ` Rob Herring
2 siblings, 0 replies; 20+ messages in thread
From: David Lechner @ 2026-05-12 14:13 UTC (permalink / raw)
To: Rob Herring
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On 5/12/26 8:58 AM, David Lechner wrote:
> On 5/12/26 7:14 AM, Rob Herring wrote:
>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>>
>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>>> On Sun, 10 May 2026 08:01:36 -0400
>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>>
>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>>> validation with dt-schema.
>>>>>
>>>>> The new binding covers the same hardware and compatible strings:
>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>>
>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>>> Hi Pramod,
>>>>
>>>> Something went wrong with your sending of v3. I have two versions sent
>>>> half a day apart and no idea how they are related.
>>>>
>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>>> getting a v4 and wait for that.
>>>>
>>>> Jonathan
>>>
>>> I think Rob will have to fix the bot to make an exception for the
>>> legacy bindings. This should have been called out in the commit message
>>> as requested in a previous revision.
>>
>> The bot is not the problem. It just runs validation. The schemas will
>> have to either drop this check (comma's in nodenames) or exclude just
>> this property.
>>
>>
>> Rob
>
> Even though this is an existing text-based schema that has been around
> for 12 years with this name already? Changing it could be a breaking
> change to existing users. Although there aren't any in any .dts in the
> kernel source.
Pramod,
Unless Rob changes his mind, the thing to do would be to use the standard
channels property from adc.yaml when converting the binding instead of
xlnx,channels.
We will also need to add handling in the driver for "channels" while
preserving "xlnx,channels" handling for backwards compatibility.
xlnx,channels will just be undocumented.
And all of this reasoning must be explained in the commit messages.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 13:58 ` David Lechner
2026-05-12 14:10 ` Michal Simek
2026-05-12 14:13 ` David Lechner
@ 2026-05-12 19:42 ` Rob Herring
2026-05-12 20:03 ` David Lechner
2 siblings, 1 reply; 20+ messages in thread
From: Rob Herring @ 2026-05-12 19:42 UTC (permalink / raw)
To: David Lechner
Cc: Jonathan Cameron, Pramod Maurya, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On Tue, May 12, 2026 at 8:58 AM David Lechner <dlechner@baylibre.com> wrote:
>
> On 5/12/26 7:14 AM, Rob Herring wrote:
> > On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
> >>
> >> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
> >>> On Sun, 10 May 2026 08:01:36 -0400
> >>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
> >>>
> >>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> >>>> from the legacy plain-text format to a YAML schema, enabling automated
> >>>> validation with dt-schema.
> >>>>
> >>>> The new binding covers the same hardware and compatible strings:
> >>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> >>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> >>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
> >>>>
> >>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
> >>> Hi Pramod,
> >>>
> >>> Something went wrong with your sending of v3. I have two versions sent
> >>> half a day apart and no idea how they are related.
> >>>
> >>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
> >>> getting a v4 and wait for that.
> >>>
> >>> Jonathan
> >>
> >> I think Rob will have to fix the bot to make an exception for the
> >> legacy bindings. This should have been called out in the commit message
> >> as requested in a previous revision.
> >
> > The bot is not the problem. It just runs validation. The schemas will
> > have to either drop this check (comma's in nodenames) or exclude just
> > this property.
> >
> >
> > Rob
>
> Even though this is an existing text-based schema that has been around
> for 12 years with this name already? Changing it could be a breaking
> change to existing users. Although there aren't any in any .dts in the
> kernel source.
I'm absolutely not suggesting changing the node name.
The common schemas globally disallow commas in nodenames. We can relax
that and allow commas in any nodename. That check is largely from
QCom's amazingly consistent use of 'qcom' prefix in nodenames. We've
finally beat that practice out of them. So maybe it's not needed
anymore.
The other approach is to exclude this nodename and any other we have
to keep. I don't like dtschema having to know about some random name,
but we already have that in a few cases and I don't expect that list
to be too long given this is the first case we've seen.
Rob
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 19:42 ` Rob Herring
@ 2026-05-12 20:03 ` David Lechner
2026-05-12 20:48 ` Rob Herring
0 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2026-05-12 20:03 UTC (permalink / raw)
To: Rob Herring, Pramod Maurya
Cc: Jonathan Cameron, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On 5/12/26 2:42 PM, Rob Herring wrote:
> On Tue, May 12, 2026 at 8:58 AM David Lechner <dlechner@baylibre.com> wrote:
>>
>> On 5/12/26 7:14 AM, Rob Herring wrote:
>>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
>>>>
>>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
>>>>> On Sun, 10 May 2026 08:01:36 -0400
>>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
>>>>>
>>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
>>>>>> from the legacy plain-text format to a YAML schema, enabling automated
>>>>>> validation with dt-schema.
>>>>>>
>>>>>> The new binding covers the same hardware and compatible strings:
>>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
>>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
>>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>>>>>>
>>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
>>>>> Hi Pramod,
>>>>>
>>>>> Something went wrong with your sending of v3. I have two versions sent
>>>>> half a day apart and no idea how they are related.
>>>>>
>>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
>>>>> getting a v4 and wait for that.
>>>>>
>>>>> Jonathan
>>>>
>>>> I think Rob will have to fix the bot to make an exception for the
>>>> legacy bindings. This should have been called out in the commit message
>>>> as requested in a previous revision.
>>>
>>> The bot is not the problem. It just runs validation. The schemas will
>>> have to either drop this check (comma's in nodenames) or exclude just
>>> this property.
>>>
>>>
>>> Rob
>>
>> Even though this is an existing text-based schema that has been around
>> for 12 years with this name already? Changing it could be a breaking
>> change to existing users. Although there aren't any in any .dts in the
>> kernel source.
>
> I'm absolutely not suggesting changing the node name.
>
> The common schemas globally disallow commas in nodenames. We can relax
> that and allow commas in any nodename. That check is largely from
> QCom's amazingly consistent use of 'qcom' prefix in nodenames. We've
> finally beat that practice out of them. So maybe it's not needed
> anymore.
>
> The other approach is to exclude this nodename and any other we have
> to keep. I don't like dtschema having to know about some random name,
> but we already have that in a few cases and I don't expect that list
> to be too long given this is the first case we've seen.
>
> Rob
Got it. So when I said "fix the bot" earlier, I should have said
"fix dtschema". We went through this before with adi,channels, but
I didn't remember exactly what you did.
I created a pull request for dt-schema [1] for this since it was
easier than trying to explain it for someone else to do.
[1]: https://github.com/devicetree-org/dt-schema/pull/195
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-12 20:03 ` David Lechner
@ 2026-05-12 20:48 ` Rob Herring
0 siblings, 0 replies; 20+ messages in thread
From: Rob Herring @ 2026-05-12 20:48 UTC (permalink / raw)
To: David Lechner
Cc: Pramod Maurya, Jonathan Cameron, Nuno Sá, Andy Shevchenko,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On Tue, May 12, 2026 at 3:03 PM David Lechner <dlechner@baylibre.com> wrote:
>
> On 5/12/26 2:42 PM, Rob Herring wrote:
> > On Tue, May 12, 2026 at 8:58 AM David Lechner <dlechner@baylibre.com> wrote:
> >>
> >> On 5/12/26 7:14 AM, Rob Herring wrote:
> >>> On Mon, May 11, 2026 at 11:24 AM David Lechner <dlechner@baylibre.com> wrote:
> >>>>
> >>>> On 5/11/26 11:15 AM, Jonathan Cameron wrote:
> >>>>> On Sun, 10 May 2026 08:01:36 -0400
> >>>>> Pramod Maurya <pramod.nexgen@gmail.com> wrote:
> >>>>>
> >>>>>> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> >>>>>> from the legacy plain-text format to a YAML schema, enabling automated
> >>>>>> validation with dt-schema.
> >>>>>>
> >>>>>> The new binding covers the same hardware and compatible strings:
> >>>>>> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> >>>>>> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> >>>>>> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
> >>>>>>
> >>>>>> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
> >>>>> Hi Pramod,
> >>>>>
> >>>>> Something went wrong with your sending of v3. I have two versions sent
> >>>>> half a day apart and no idea how they are related.
> >>>>>
> >>>>> Anyhow one of them got feedback from Rob's bot so I'll assume we are
> >>>>> getting a v4 and wait for that.
> >>>>>
> >>>>> Jonathan
> >>>>
> >>>> I think Rob will have to fix the bot to make an exception for the
> >>>> legacy bindings. This should have been called out in the commit message
> >>>> as requested in a previous revision.
> >>>
> >>> The bot is not the problem. It just runs validation. The schemas will
> >>> have to either drop this check (comma's in nodenames) or exclude just
> >>> this property.
> >>>
> >>>
> >>> Rob
> >>
> >> Even though this is an existing text-based schema that has been around
> >> for 12 years with this name already? Changing it could be a breaking
> >> change to existing users. Although there aren't any in any .dts in the
> >> kernel source.
> >
> > I'm absolutely not suggesting changing the node name.
> >
> > The common schemas globally disallow commas in nodenames. We can relax
> > that and allow commas in any nodename. That check is largely from
> > QCom's amazingly consistent use of 'qcom' prefix in nodenames. We've
> > finally beat that practice out of them. So maybe it's not needed
> > anymore.
> >
> > The other approach is to exclude this nodename and any other we have
> > to keep. I don't like dtschema having to know about some random name,
> > but we already have that in a few cases and I don't expect that list
> > to be too long given this is the first case we've seen.
> >
> > Rob
>
> Got it. So when I said "fix the bot" earlier, I should have said
> "fix dtschema". We went through this before with adi,channels, but
> I didn't remember exactly what you did.
Completely forgot that. That makes picking which one easy...
> I created a pull request for dt-schema [1] for this since it was
> easier than trying to explain it for someone else to do.
>
> [1]: https://github.com/devicetree-org/dt-schema/pull/195
Thank you! Applied.
Rob
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-10 12:01 ` Pramod Maurya
2026-05-11 16:15 ` Jonathan Cameron
@ 2026-05-11 16:17 ` Jonathan Cameron
1 sibling, 0 replies; 20+ messages in thread
From: Jonathan Cameron @ 2026-05-11 16:17 UTC (permalink / raw)
To: Pramod Maurya
Cc: David Lechner, Nuno Sá, Andy Shevchenko, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Michal Simek,
Lars-Peter Clausen, linux-iio, devicetree, linux-arm-kernel,
linux-kernel
On Sun, 10 May 2026 08:01:36 -0400
Pramod Maurya <pramod.nexgen@gmail.com> wrote:
> Convert the Xilinx XADC and UltraScale System Monitor device tree binding
> from the legacy plain-text format to a YAML schema, enabling automated
> validation with dt-schema.
>
> The new binding covers the same hardware and compatible strings:
> - xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
> - xlnx,axi-xadc-1.00.a (AXI softmacro)
> - xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
>
> Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
On another note - please slow down. I now see that v1-3 all came in less
than 2 days. Typically wait around a week for a significant patch like
this - that gives time for multiple reviewers to take a look.
Maybe we can relax that given the v3 many versions confusion - but I would
still wait a day or so before sending a v4
Thanks,
Jonathan
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups
2026-05-10 8:32 [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
2026-05-10 9:43 ` Rob Herring (Arm)
2026-05-10 12:01 ` Pramod Maurya
@ 2026-05-15 7:57 ` Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 1/3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
` (2 more replies)
2 siblings, 3 replies; 20+ messages in thread
From: Pramod Maurya @ 2026-05-15 7:57 UTC (permalink / raw)
To: jic23
Cc: lars, linux-iio, devicetree, linux-kernel, robh, krzk+dt,
conor+dt, pramod.nexgen
This series converts the Xilinx XADC device tree binding from the legacy
plain-text format to a validated YAML schema, fixes a checkpatch alignment
warning in the axis-fifo staging driver, and adds a YAML DT binding for
the Xilinx AXI-Stream FIFO IP core.
Patch 1 is v4 of the XADC binding conversion. Previous versions had the
following issues that are now addressed:
- v3: xlnx,channels was placed in patternProperties to satisfy the
vendor-props.yaml meta-schema; dt-schema PR#195 (merged by Rob
Herring) now allows commas in nodenames so it correctly lives in
properties. A companion dt-schema update is needed to add
xlnx,channels to the vendor-props.yaml explicit object exceptions
(similar to the existing adi,channels entry).
- v3: reg constraints inside channel subnodes used bare minimum/maximum
keywords which are silently ignored on array types; the description
now documents the valid range and reg uses maxItems: 1 per cell.yaml.
- v3: xlnx,bipolar had a redundant type: boolean alongside the $ref
to /schemas/types.yaml#/definitions/flag; the $ref already implies
the boolean type so type: boolean is removed.
Patches 2 and 3 are new additions to this series.
Pramod Maurya (3):
dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
staging: axis-fifo: Fix alignment of wait_event_interruptible
arguments
dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO
.../bindings/iio/adc/xilinx-xadc.txt | 141 ------------
.../bindings/iio/adc/xlnx,xadc.yaml | 210 ++++++++++++++++++
.../bindings/misc/xlnx,axi-fifo-mm-s.yaml | 93 ++++++++
MAINTAINERS | 13 ++
drivers/staging/axis-fifo/axis-fifo.c | 3 +-
5 files changed, 318 insertions(+), 142 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
create mode 100644 Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
--
2.52.0
^ permalink raw reply [flat|nested] 20+ messages in thread* [PATCH v4 1/3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
@ 2026-05-15 7:57 ` Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 2/3] staging: axis-fifo: Fix alignment of wait_event_interruptible arguments Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO Pramod Maurya
2 siblings, 0 replies; 20+ messages in thread
From: Pramod Maurya @ 2026-05-15 7:57 UTC (permalink / raw)
To: jic23
Cc: lars, linux-iio, devicetree, linux-kernel, robh, krzk+dt,
conor+dt, pramod.nexgen
Convert the Xilinx XADC and UltraScale System Monitor device tree binding
from the legacy plain-text format to a YAML schema, enabling automated
validation with dt-schema.
The new binding covers the same hardware and compatible strings:
- xlnx,zynq-xadc-1.00.a (ZYNQ hardmacro)
- xlnx,axi-xadc-1.00.a (AXI softmacro)
- xlnx,system-management-wiz-1.3 (UltraScale System Management Wizard)
The xlnx,channels subnode retains its legacy name (including the comma)
for backwards compatibility with existing device trees.
Place xlnx,channels under properties: now that dt-schema PR#195 allows
comma-containing nodenames for long-established bindings. Fix reg
constraints inside channel subnodes to use maxItems and an items block
rather than bare minimum/maximum keywords which are silently ignored on
array types. Remove the redundant type: boolean from xlnx,bipolar since
the $ref to /schemas/types.yaml#/definitions/flag already implies it.
Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
---
Changes in v4:
- Move xlnx,channels from patternProperties: to properties: per Rob
Herring's guidance (keywords.yaml: "Fixed strings belong in properties")
This requires a companion dt-schema update to add xlnx,channels as an
object-type exception in vendor-props.yaml (like adi,channels).
- Fix reg constraints inside channel subnodes: remove items block with
minimum/maximum which is invalid for cell arrays per cell.yaml; the
valid channel range (0-16) is documented in the description instead.
- Remove redundant type: boolean from xlnx,bipolar; the $ref to
/schemas/types.yaml#/definitions/flag already implies boolean type.
- Fix patternProperties regex for channel subnodes to "^channel@([0-9a-f]|10)$"
covering all valid hex unit addresses for channels 0-16.
Changes in v3:
- Move xlnx,channels from properties: to patternProperties: to satisfy
vendor-props.yaml meta-schema (reversed in v4, see above)
Changes in v2:
- Fix patternProperties regex to use lowercase hex unit addresses
- Add allOf/if/then conditional requiring xlnx,external-mux-channel
when xlnx,external-mux is "single" or "dual"
.../bindings/iio/adc/xilinx-xadc.txt | 141 ------------
.../bindings/iio/adc/xlnx,xadc.yaml | 210 ++++++++++++++++++
MAINTAINERS | 7 +
3 files changed, 217 insertions(+), 141 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
diff --git a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt b/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
deleted file mode 100644
index f42e18078376..000000000000
--- a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-Xilinx XADC device driver
-
-This binding document describes the bindings for the Xilinx 7 Series XADC as well
-as the UltraScale/UltraScale+ System Monitor.
-
-The Xilinx XADC is an ADC that can be found in the Series 7 FPGAs from Xilinx.
-The XADC has a DRP interface for communication. Currently two different
-frontends for the DRP interface exist. One that is only available on the ZYNQ
-family as a hardmacro in the SoC portion of the ZYNQ. The other one is available
-on all series 7 platforms and is a softmacro with a AXI interface. This binding
-document describes the bindings for both of them since the bindings are very
-similar.
-
-The Xilinx System Monitor is an ADC that is found in the UltraScale and
-UltraScale+ FPGAs from Xilinx. The System Monitor provides a DRP interface for
-communication. Xilinx provides a standard IP core that can be used to access the
-System Monitor through an AXI interface in the FPGA fabric. This IP core is
-called the Xilinx System Management Wizard. This document describes the bindings
-for this IP.
-
-Required properties:
- - compatible: Should be one of
- * "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
- configuration interface to interface to the XADC hardmacro.
- * "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
- interface to the XADC hardmacro.
- * "xlnx,system-management-wiz-1.3": When using the
- Xilinx System Management Wizard fabric IP core to access the
- UltraScale and UltraScale+ System Monitor.
- - reg: Address and length of the register set for the device
- - interrupts: Interrupt for the XADC control interface.
- - clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
- when using the axi-xadc or the axi-system-management-wizard this must be
- the clock that provides the clock to the AXI bus interface of the core.
-
-Optional properties:
- - xlnx,external-mux:
- * "none": No external multiplexer is used, this is the default
- if the property is omitted.
- * "single": External multiplexer mode is used with one
- multiplexer.
- * "dual": External multiplexer mode is used with two
- multiplexers for simultaneous sampling.
- - xlnx,external-mux-channel: Configures which pair of pins is used to
- sample data in external mux mode.
- Valid values for single external multiplexer mode are:
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Valid values for dual external multiplexer mode are:
- 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
- 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
- ...
- 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
-
- This property needs to be present if the device is configured for
- external multiplexer mode (either single or dual). If the device is
- not using external multiplexer mode the property is ignored.
- - xnlx,channels: List of external channels that are connected to the ADC
- Required properties:
- * #address-cells: Should be 1.
- * #size-cells: Should be 0.
-
- The child nodes of this node represent the external channels which are
- connected to the ADC. If the property is no present no external
- channels will be assumed to be connected.
-
- Each child node represents one channel and has the following
- properties:
- Required properties:
- * reg: Pair of pins the channel is connected to.
- 0: VP/VN
- 1: VAUXP[0]/VAUXN[0]
- 2: VAUXP[1]/VAUXN[1]
- ...
- 16: VAUXP[15]/VAUXN[15]
- Note each channel number should only be used at most
- once.
- Optional properties:
- * xlnx,bipolar: If set the channel is used in bipolar
- mode.
-
-
-Examples:
- xadc@f8007100 {
- compatible = "xlnx,zynq-xadc-1.00.a";
- reg = <0xf8007100 0x20>;
- interrupts = <0 7 4>;
- interrupt-parent = <&gic>;
- clocks = <&pcap_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- };
- channel@1 {
- reg = <1>;
- };
- channel@8 {
- reg = <8>;
- };
- };
- };
-
- xadc@43200000 {
- compatible = "xlnx,axi-xadc-1.00.a";
- reg = <0x43200000 0x1000>;
- interrupts = <0 53 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
-
- adc@80000000 {
- compatible = "xlnx,system-management-wiz-1.3";
- reg = <0x80000000 0x1000>;
- interrupts = <0 81 4>;
- interrupt-parent = <&gic>;
- clocks = <&fpga1_clk>;
-
- xlnx,channels {
- #address-cells = <1>;
- #size-cells = <0>;
- channel@0 {
- reg = <0>;
- xlnx,bipolar;
- };
- };
- };
diff --git a/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
new file mode 100644
index 000000000000..06a0ce498352
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
@@ -0,0 +1,210 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/xlnx,xadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx XADC and UltraScale System Monitor
+
+maintainers:
+ - Lars-Peter Clausen <lars@metafoo.de>
+
+description: |
+ The Xilinx XADC is an ADC found in the Series 7 FPGAs. It has a DRP
+ (Dynamic Reconfiguration Port) interface for communication. Two different
+ frontends for the DRP interface are supported:
+
+ - ZYNQ hardmacro: available only on the ZYNQ family as a hardmacro in
+ the SoC portion of the ZYNQ device.
+ - AXI softmacro: available on all Series 7 platforms as a softmacro
+ with an AXI interface (PG019).
+
+ The Xilinx System Monitor is an ADC found in UltraScale and UltraScale+
+ FPGAs. It is accessed through the Xilinx System Management Wizard IP core
+ via an AXI interface in the FPGA fabric.
+
+ The xlnx,channels subnode name contains a comma as part of the legacy
+ device tree binding that has been in use for over a decade. This name is
+ retained for backwards compatibility with existing device trees.
+
+properties:
+ compatible:
+ enum:
+ - xlnx,zynq-xadc-1.00.a
+ - xlnx,axi-xadc-1.00.a
+ - xlnx,system-management-wiz-1.3
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ description: |
+ When using the ZYNQ this must be the ZYNQ PCAP clock.
+ When using the axi-xadc or system-management-wiz this must be
+ the clock that provides the clock to the AXI bus interface.
+ maxItems: 1
+
+ xlnx,external-mux:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Selects the external multiplexer mode. If omitted, no external
+ multiplexer is used.
+ enum:
+ - none
+ - single
+ - dual
+
+ xlnx,external-mux-channel:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Configures which pair of pins is used to sample data in external
+ multiplexer mode. Required when xlnx,external-mux is "single" or
+ "dual".
+
+ Valid values for single external multiplexer mode:
+ 0: VP/VN
+ 1: VAUXP[0]/VAUXN[0]
+ 2: VAUXP[1]/VAUXN[1]
+ ...
+ 16: VAUXP[15]/VAUXN[15]
+
+ Valid values for dual external multiplexer mode:
+ 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
+ 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
+ ...
+ 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
+ minimum: 0
+ maximum: 16
+
+ xlnx,channels:
+ type: object
+ description:
+ List of external channels connected to the ADC. If this node is
+ absent, no external channels are assumed to be connected.
+
+ properties:
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ patternProperties:
+ "^channel@([0-9a-f]|10)$":
+ type: object
+ description:
+ Represents an external channel connected to the ADC.
+
+ properties:
+ reg:
+ description: |
+ Pair of pins the channel is connected to.
+ 0: VP/VN
+ 1: VAUXP[0]/VAUXN[0]
+ 2: VAUXP[1]/VAUXN[1]
+ ...
+ 16: VAUXP[15]/VAUXN[15]
+ maxItems: 1
+
+ xlnx,bipolar:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description:
+ If set, the channel is used in bipolar mode.
+
+ required:
+ - reg
+
+ additionalProperties: false
+
+ required:
+ - '#address-cells'
+ - '#size-cells'
+
+ additionalProperties: false
+
+allOf:
+ - if:
+ properties:
+ xlnx,external-mux:
+ enum:
+ - single
+ - dual
+ required:
+ - xlnx,external-mux
+ then:
+ required:
+ - xlnx,external-mux-channel
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ /* ZYNQ hardmacro example */
+ adc@f8007100 {
+ compatible = "xlnx,zynq-xadc-1.00.a";
+ reg = <0xf8007100 0x20>;
+ interrupts = <0 7 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&pcap_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ };
+ channel@1 {
+ reg = <1>;
+ };
+ channel@8 {
+ reg = <8>;
+ };
+ };
+ };
+
+ - |
+ /* AXI softmacro example */
+ adc@43200000 {
+ compatible = "xlnx,axi-xadc-1.00.a";
+ reg = <0x43200000 0x1000>;
+ interrupts = <0 53 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
+
+ - |
+ /* UltraScale System Management Wizard example */
+ adc@80000000 {
+ compatible = "xlnx,system-management-wiz-1.3";
+ reg = <0x80000000 0x1000>;
+ interrupts = <0 81 4>;
+ interrupt-parent = <&gic>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index b2040011a386..58d35c17704d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -29266,6 +29266,13 @@ F: Documentation/devicetree/bindings/watchdog/xlnx,xps-timebase-wdt.yaml
F: drivers/watchdog/of_xilinx_wdt.c
F: drivers/watchdog/xilinx_wwdt.c
+XILINX XADC DRIVER
+M: Lars-Peter Clausen <lars@metafoo.de>
+L: linux-iio@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/iio/adc/xlnx,xadc.yaml
+F: drivers/iio/adc/xilinx-xadc*
+
XILINX XDMA DRIVER
M: Lizhi Hou <lizhi.hou@amd.com>
M: Brian Xu <brian.xu@amd.com>
--
2.52.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH v4 2/3] staging: axis-fifo: Fix alignment of wait_event_interruptible arguments
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 1/3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
@ 2026-05-15 7:57 ` Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO Pramod Maurya
2 siblings, 0 replies; 20+ messages in thread
From: Pramod Maurya @ 2026-05-15 7:57 UTC (permalink / raw)
To: jic23
Cc: lars, linux-iio, devicetree, linux-kernel, robh, krzk+dt,
conor+dt, pramod.nexgen
The second argument to wait_event_interruptible() was indented with a
single tab instead of being aligned to the opening parenthesis. Since
the fully-aligned form exceeds 80 columns, break the condition at the
comparison operator and align the continuation line to the opening
parenthesis.
Fixes the following checkpatch.pl warning:
CHECK: Alignment should match open parenthesis
Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
---
drivers/staging/axis-fifo/axis-fifo.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/axis-fifo/axis-fifo.c b/drivers/staging/axis-fifo/axis-fifo.c
index 3aa2aa870ea9..1c34de020cf8 100644
--- a/drivers/staging/axis-fifo/axis-fifo.c
+++ b/drivers/staging/axis-fifo/axis-fifo.c
@@ -246,7 +246,8 @@ static ssize_t axis_fifo_write(struct file *f, const char __user *buf,
mutex_lock(&fifo->write_lock);
ret = wait_event_interruptible(fifo->write_queue,
- ioread32(fifo->base_addr + XLLF_TDFV_OFFSET) >= words_to_write);
+ ioread32(fifo->base_addr + XLLF_TDFV_OFFSET) >=
+ words_to_write);
if (ret)
goto end_unlock;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 1/3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 2/3] staging: axis-fifo: Fix alignment of wait_event_interruptible arguments Pramod Maurya
@ 2026-05-15 7:57 ` Pramod Maurya
2026-05-15 11:03 ` Krzysztof Kozlowski
2 siblings, 1 reply; 20+ messages in thread
From: Pramod Maurya @ 2026-05-15 7:57 UTC (permalink / raw)
To: jic23
Cc: lars, linux-iio, devicetree, linux-kernel, robh, krzk+dt,
conor+dt, pramod.nexgen
Add a YAML schema for the Xilinx AXI-Stream FIFO IP core (PG080).
The binding documents the three supported compatible strings and the
vendor-specific properties that the axis-fifo staging driver reads from
the device tree.
This resolves the following checkpatch.pl warnings in
drivers/staging/axis-fifo/axis-fifo.c:
WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.1" appears un-documented
WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.2" appears un-documented
WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.3" appears un-documented
Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
---
.../bindings/misc/xlnx,axi-fifo-mm-s.yaml | 93 +++++++++++++++++++
MAINTAINERS | 6 ++
2 files changed, 99 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..f4ef7c277cd7
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only 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 AXI-Stream FIFO
+
+maintainers:
+ - Jacob Feder <jacobsfeder@gmail.com>
+
+description:
+ The Xilinx AXI-Stream FIFO (PG080) provides a memory-mapped interface to
+ an AXI-Stream FIFO IP core. It allows a processor to transmit and receive
+ AXI-Stream packets via simple MMIO register reads and writes. Currently
+ only store-forward mode with a 32-bit AXI4-Lite interface is supported.
+
+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
+
+ xlnx,axi-str-rxd-tdata-width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Width of the receive AXI-Stream data bus in bits. Currently only 32
+ is supported.
+ const: 32
+
+ xlnx,axi-str-txd-tdata-width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Width of the transmit AXI-Stream data bus in bits. Currently only 32
+ is supported.
+ const: 32
+
+ xlnx,rx-fifo-depth:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Depth of the receive FIFO in words.
+
+ xlnx,tx-fifo-depth:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Depth of the transmit FIFO in words.
+
+ xlnx,use-rx-data:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Set to 1 if the receive data FIFO is enabled, 0 otherwise.
+ enum: [0, 1]
+
+ xlnx,use-tx-data:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Set to 1 if the transmit data FIFO is enabled, 0 otherwise.
+ enum: [0, 1]
+
+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:
+ - |
+ axi_fifo: fifo@43c00000 {
+ compatible = "xlnx,axi-fifo-mm-s-4.3";
+ reg = <0x43c00000 0x10000>;
+ interrupts = <0 30 4>;
+ interrupt-parent = <&intc>;
+ xlnx,axi-str-rxd-tdata-width = <32>;
+ xlnx,axi-str-txd-tdata-width = <32>;
+ xlnx,rx-fifo-depth = <0x1000>;
+ xlnx,tx-fifo-depth = <0x1000>;
+ xlnx,use-rx-data = <1>;
+ xlnx,use-tx-data = <1>;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 58d35c17704d..bbb6b8c20ed6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -29164,6 +29164,12 @@ S: Maintained
F: Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml
F: drivers/iio/adc/xilinx-ams.c
+XILINX AXI-STREAM FIFO DRIVER
+M: Jacob Feder <jacobsfeder@gmail.com>
+S: Maintained
+F: Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s.yaml
+F: drivers/staging/axis-fifo/
+
XILINX AXI ETHERNET DRIVER
M: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
S: Maintained
--
2.52.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO
2026-05-15 7:57 ` [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO Pramod Maurya
@ 2026-05-15 11:03 ` Krzysztof Kozlowski
0 siblings, 0 replies; 20+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-15 11:03 UTC (permalink / raw)
To: Pramod Maurya
Cc: jic23, lars, linux-iio, devicetree, linux-kernel, robh, krzk+dt,
conor+dt
On Fri, May 15, 2026 at 03:57:36AM -0400, Pramod Maurya wrote:
> Add a YAML schema for the Xilinx AXI-Stream FIFO IP core (PG080).
> The binding documents the three supported compatible strings and the
> vendor-specific properties that the axis-fifo staging driver reads from
> the device tree.
>
> This resolves the following checkpatch.pl warnings in
> drivers/staging/axis-fifo/axis-fifo.c:
> WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.1" appears un-documented
> WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.2" appears un-documented
> WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.3" appears un-documented
Do not fix checkpatch warnings blindly. You could have checked the
mailing list before sending this.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2026-05-15 11:03 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-10 8:32 [PATCH v3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
2026-05-10 9:43 ` Rob Herring (Arm)
2026-05-10 12:01 ` Pramod Maurya
2026-05-11 16:15 ` Jonathan Cameron
2026-05-11 16:24 ` David Lechner
2026-05-12 12:14 ` Rob Herring
2026-05-12 13:58 ` David Lechner
2026-05-12 14:10 ` Michal Simek
2026-05-12 14:16 ` David Lechner
2026-05-12 14:21 ` Michal Simek
2026-05-12 14:13 ` David Lechner
2026-05-12 19:42 ` Rob Herring
2026-05-12 20:03 ` David Lechner
2026-05-12 20:48 ` Rob Herring
2026-05-11 16:17 ` Jonathan Cameron
2026-05-15 7:57 ` [PATCH v4 0/3] Convert Xilinx XADC binding to YAML and related cleanups Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 1/3] dt-bindings: iio: adc: Convert xilinx-xadc bindings to YAML schema Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 2/3] staging: axis-fifo: Fix alignment of wait_event_interruptible arguments Pramod Maurya
2026-05-15 7:57 ` [PATCH v4 3/3] dt-bindings: misc: Add binding for Xilinx AXI-Stream FIFO Pramod Maurya
2026-05-15 11:03 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox