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

Sai Krishna Potthuri sai.krishna.potthuri at amd.com
Thu Mar 19 06:52:54 PDT 2026


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 at 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 at 0 {
>> +                reg = <0>;
>> +            };
>> +            channel at 1 {
>> +                reg = <1>;
>> +            };
>> +            channel at 8 {
>> +                reg = <8>;
>> +            };
>> +        };
>> +    };
>> +
>> +  - |
>> +    xadc at 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 at 0 {
>> +                reg = <0>;
>> +                xlnx,bipolar;
>> +            };
>> +        };
>> +    };
>> +
>> +  - |
>> +    adc at 80000000 {
> 
> Again, one example is enough, unless you have multiple differences in
> properties.
> 
> Best regards,
> Krzysztof
> 




More information about the linux-arm-kernel mailing list