[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