Re: [PATCH 5/5] dt-bindings: iio: adc: xilinx-xadc: convert to YAML format

From: Sai Krishna Potthuri

Date: Thu Mar 19 2026 - 09:55:15 EST


Hi Krzysztof,

On 2/21/2026 4:08 PM, Krzysztof Kozlowski wrote:
On Fri, Feb 20, 2026 at 11:09:41AM +0530, Sai Krishna Potthuri wrote:
Convert the xilinx-xadc.txt Devicetree binding to a YAML schema format
and remove the old text binding.

+
+ xlnx,channels:
+ $ref: '#/$defs/channels'
+
+allOf:

Missing ref since you use unevaluatedProperties...

+ - if:
+ required:
+ - xlnx,external-mux
+ properties:
+ xlnx,external-mux:
+ enum:
+ - single
+ - dual
+ then:
+ required:
+ - xlnx,external-mux-channel
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false

or you meant additionalProperties?

+
+$defs:

Why this is a def, not used directly? I see only one usage of this def.

I am getting the below error if i define the patternProperties directly.
Seems like complex vendor peroperties should be referenced via $ref.
Please suggest if there is any better way to deal this.

linux-xlnx/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.yaml: properties:xlnx,channels:type: 'boolean' was expected
hint: A vendor boolean property can use "type: boolean"
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
LINT ../Documentation/devicetree/bindings
DTEX Documentation/devicetree/bindings/iio/adc/xilinx-xadc.example.dts
DTC [C] Documentation/devicetree/bindings/iio/adc/xilinx-xadc.example.dtb


Regards
Sai Krishna


+ channels:
+ type: object
+ description: List of external channels that are connected to the ADC
+ properties:
+ '#address-cells':
+ const: 1
+ '#size-cells':
+ const: 0
+
+ patternProperties:
+ "^channel@([0-9]|1[0-6])$":
+ type: object
+ properties:
+ reg:
+ minimum: 0
+ maximum: 16
+ description: |
+ Pair of pins the channel is connected to:
+ 0: VP/VN
+ 1-16: VAUXP[0-15]/VAUXN[0-15]
+ Note each channel number should only be used at most once.
+
+ xlnx,bipolar:
+ type: boolean
+ description: If set, the channel is used in bipolar mode
+
+ required:
+ - reg
+
+ unevaluatedProperties: false

Again, where is any $ref?

+
+ required:
+ - '#address-cells'
+ - '#size-cells'
+
+ unevaluatedProperties: false

And here, please read writing schema and writing bindings docs.

+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ xadc@f8007100 {

adc

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).

+ compatible = "xlnx,zynq-xadc-1.00.a";
+ reg = <0xf8007100 0x20>;
+ interrupts = <0 7 4>;

Use proper defines.

+ 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 {

One example is enough, I don't see differences here.

+ compatible = "xlnx,axi-xadc-1.00.a";
+ reg = <0x43200000 0x1000>;
+ interrupts = <0 53 4>;
+ clocks = <&fpga1_clk>;
+
+ xlnx,channels {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel@0 {
+ reg = <0>;
+ xlnx,bipolar;
+ };
+ };
+ };
+
+ - |
+ adc@80000000 {

Again, one example is enough, unless you have multiple differences in
properties.

Best regards,
Krzysztof