Hi, On Tue, Nov 26, 2019 at 09:29:30PM -0800, Vasily Khoruzhick wrote: > From: Yangtao Li > > sun8i-thermal driver supports thermal sensor in wide range of Allwinner > SoCs. Add YAML schema for its bindings. > > Signed-off-by: Yangtao Li > Signed-off-by: Vasily Khoruzhick > --- > .../thermal/allwinner,sun8i-a83t-ths.yaml | 103 ++++++++++++++++++ > 1 file changed, 103 insertions(+) > create mode 100644 Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml > > diff --git a/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml b/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml > new file mode 100644 > index 000000000000..e622f0a4be90 > --- /dev/null > +++ b/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml > @@ -0,0 +1,103 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/thermal/allwinner,sun8i-a83t-ths.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Allwinner SUN8I Thermal Controller Device Tree Bindings > + > +maintainers: > + - Yangtao Li > + > +properties: > + compatible: > + oneOf: > + - const: allwinner,sun8i-a83t-ths > + - const: allwinner,sun8i-h3-ths > + - const: allwinner,sun8i-r40-ths > + - const: allwinner,sun50i-a64-ths > + - const: allwinner,sun50i-h5-ths > + - const: allwinner,sun50i-h6-ths > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + clocks: > + minItems: 1 > + maxItems: 2 > + > + clock-names: > + anyOf: > + - items: > + - const: bus > + - const: mod > + - items: > + - const: bus This can be: clock-names: minItems: 1 maxItems: 2 items: - const: bus - const: mod And the length should be checked based on the compatible value, with something like if: properties: compatible: contains: const: allwinner,sun50i-h6-ths then: properties: clocks: maxItems: 1 clock-names: maxItems: 1 else: properties: clocks: maxItems: 2 clock-names: maxItems: 2 > + > + '#thermal-sensor-cells': > + enum: [ 0, 1 ] > + description: | > + Definition depends on soc version: > + > + For "allwinner,sun8i-h3-ths", > + value must be 0. > + For all other compatibles > + value must be 1. This should be checked using an if as well. > + > + nvmem-cells: > + maxItems: 1 > + items: > + - description: Calibration data for thermal sensors You can drop the items and just move the description up one level, under nvmem-cells > + > + nvmem-cell-names: > + items: > + - const: calibration Ditto for the const > + > +required: > + - compatible > + - reg > + - interrupts > + - '#thermal-sensor-cells' Whether clocks, clock-names and resets are thereshould be check using an if statement as well. > + > +examples: > + - | > + ths_a83t: ths@1f04000 { You don't need the label at all, and the node name should be temperature-sensor according to the DT spec, not ths. This applies to all you examples. > + compatible = "allwinner,sun8i-a83t-ths"; > + reg = <0x01f04000 0x100>; > + interrupts = <0 31 0>; > + nvmem-cells = <&ths_calibration>; > + nvmem-cell-names = "calibration"; > + #thermal-sensor-cells = <1>; > + }; New line. Thanks! Maxime