18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/thermal/allwinner,sun8i-a83t-ths.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Allwinner SUN8I Thermal Controller Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Vasily Khoruzhick <anarsoul@gmail.com>
118c2ecf20Sopenharmony_ci  - Yangtao Li <tiny.windzz@gmail.com>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciproperties:
148c2ecf20Sopenharmony_ci  compatible:
158c2ecf20Sopenharmony_ci    enum:
168c2ecf20Sopenharmony_ci      - allwinner,sun8i-a83t-ths
178c2ecf20Sopenharmony_ci      - allwinner,sun8i-h3-ths
188c2ecf20Sopenharmony_ci      - allwinner,sun8i-r40-ths
198c2ecf20Sopenharmony_ci      - allwinner,sun50i-a64-ths
208c2ecf20Sopenharmony_ci      - allwinner,sun50i-a100-ths
218c2ecf20Sopenharmony_ci      - allwinner,sun50i-h5-ths
228c2ecf20Sopenharmony_ci      - allwinner,sun50i-h6-ths
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci  clocks:
258c2ecf20Sopenharmony_ci    minItems: 1
268c2ecf20Sopenharmony_ci    maxItems: 2
278c2ecf20Sopenharmony_ci    items:
288c2ecf20Sopenharmony_ci      - description: Bus Clock
298c2ecf20Sopenharmony_ci      - description: Module Clock
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  clock-names:
328c2ecf20Sopenharmony_ci    minItems: 1
338c2ecf20Sopenharmony_ci    maxItems: 2
348c2ecf20Sopenharmony_ci    items:
358c2ecf20Sopenharmony_ci      - const: bus
368c2ecf20Sopenharmony_ci      - const: mod
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  reg:
398c2ecf20Sopenharmony_ci    maxItems: 1
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  interrupts:
428c2ecf20Sopenharmony_ci    maxItems: 1
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  resets:
458c2ecf20Sopenharmony_ci    maxItems: 1
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  nvmem-cells:
488c2ecf20Sopenharmony_ci    maxItems: 1
498c2ecf20Sopenharmony_ci    description: Calibration data for thermal sensors
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  nvmem-cell-names:
528c2ecf20Sopenharmony_ci    const: calibration
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci  # See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for details
558c2ecf20Sopenharmony_ci  "#thermal-sensor-cells":
568c2ecf20Sopenharmony_ci    enum:
578c2ecf20Sopenharmony_ci      - 0
588c2ecf20Sopenharmony_ci      - 1
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciallOf:
618c2ecf20Sopenharmony_ci  - if:
628c2ecf20Sopenharmony_ci      properties:
638c2ecf20Sopenharmony_ci        compatible:
648c2ecf20Sopenharmony_ci          contains:
658c2ecf20Sopenharmony_ci            enum:
668c2ecf20Sopenharmony_ci              - allwinner,sun50i-a100-ths
678c2ecf20Sopenharmony_ci              - allwinner,sun50i-h6-ths
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci    then:
708c2ecf20Sopenharmony_ci      properties:
718c2ecf20Sopenharmony_ci        clocks:
728c2ecf20Sopenharmony_ci          maxItems: 1
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci        clock-names:
758c2ecf20Sopenharmony_ci          maxItems: 1
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci    else:
788c2ecf20Sopenharmony_ci      properties:
798c2ecf20Sopenharmony_ci        clocks:
808c2ecf20Sopenharmony_ci          minItems: 2
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci        clock-names:
838c2ecf20Sopenharmony_ci          minItems: 2
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci  - if:
868c2ecf20Sopenharmony_ci      properties:
878c2ecf20Sopenharmony_ci        compatible:
888c2ecf20Sopenharmony_ci          contains:
898c2ecf20Sopenharmony_ci            const: allwinner,sun8i-h3-ths
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci    then:
928c2ecf20Sopenharmony_ci      properties:
938c2ecf20Sopenharmony_ci        "#thermal-sensor-cells":
948c2ecf20Sopenharmony_ci          const: 0
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci    else:
978c2ecf20Sopenharmony_ci      properties:
988c2ecf20Sopenharmony_ci        "#thermal-sensor-cells":
998c2ecf20Sopenharmony_ci          const: 1
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci  - if:
1028c2ecf20Sopenharmony_ci      properties:
1038c2ecf20Sopenharmony_ci        compatible:
1048c2ecf20Sopenharmony_ci          contains:
1058c2ecf20Sopenharmony_ci            enum:
1068c2ecf20Sopenharmony_ci              - const: allwinner,sun8i-h3-ths
1078c2ecf20Sopenharmony_ci              - const: allwinner,sun8i-r40-ths
1088c2ecf20Sopenharmony_ci              - const: allwinner,sun50i-a64-ths
1098c2ecf20Sopenharmony_ci              - const: allwinner,sun50i-a100-ths
1108c2ecf20Sopenharmony_ci              - const: allwinner,sun50i-h5-ths
1118c2ecf20Sopenharmony_ci              - const: allwinner,sun50i-h6-ths
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci    then:
1148c2ecf20Sopenharmony_ci      required:
1158c2ecf20Sopenharmony_ci        - clocks
1168c2ecf20Sopenharmony_ci        - clock-names
1178c2ecf20Sopenharmony_ci        - resets
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_cirequired:
1208c2ecf20Sopenharmony_ci  - compatible
1218c2ecf20Sopenharmony_ci  - reg
1228c2ecf20Sopenharmony_ci  - interrupts
1238c2ecf20Sopenharmony_ci  - '#thermal-sensor-cells'
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciadditionalProperties: false
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciexamples:
1288c2ecf20Sopenharmony_ci  - |
1298c2ecf20Sopenharmony_ci    thermal-sensor@1f04000 {
1308c2ecf20Sopenharmony_ci         compatible = "allwinner,sun8i-a83t-ths";
1318c2ecf20Sopenharmony_ci         reg = <0x01f04000 0x100>;
1328c2ecf20Sopenharmony_ci         interrupts = <0 31 0>;
1338c2ecf20Sopenharmony_ci         nvmem-cells = <&ths_calibration>;
1348c2ecf20Sopenharmony_ci         nvmem-cell-names = "calibration";
1358c2ecf20Sopenharmony_ci         #thermal-sensor-cells = <1>;
1368c2ecf20Sopenharmony_ci    };
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci  - |
1398c2ecf20Sopenharmony_ci    thermal-sensor@1c25000 {
1408c2ecf20Sopenharmony_ci         compatible = "allwinner,sun8i-h3-ths";
1418c2ecf20Sopenharmony_ci         reg = <0x01c25000 0x400>;
1428c2ecf20Sopenharmony_ci         clocks = <&ccu 0>, <&ccu 1>;
1438c2ecf20Sopenharmony_ci         clock-names = "bus", "mod";
1448c2ecf20Sopenharmony_ci         resets = <&ccu 2>;
1458c2ecf20Sopenharmony_ci         interrupts = <0 31 0>;
1468c2ecf20Sopenharmony_ci         nvmem-cells = <&ths_calibration>;
1478c2ecf20Sopenharmony_ci         nvmem-cell-names = "calibration";
1488c2ecf20Sopenharmony_ci         #thermal-sensor-cells = <0>;
1498c2ecf20Sopenharmony_ci    };
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci  - |
1528c2ecf20Sopenharmony_ci    thermal-sensor@5070400 {
1538c2ecf20Sopenharmony_ci         compatible = "allwinner,sun50i-h6-ths";
1548c2ecf20Sopenharmony_ci         reg = <0x05070400 0x100>;
1558c2ecf20Sopenharmony_ci         clocks = <&ccu 0>;
1568c2ecf20Sopenharmony_ci         clock-names = "bus";
1578c2ecf20Sopenharmony_ci         resets = <&ccu 2>;
1588c2ecf20Sopenharmony_ci         interrupts = <0 15 0>;
1598c2ecf20Sopenharmony_ci         nvmem-cells = <&ths_calibration>;
1608c2ecf20Sopenharmony_ci         nvmem-cell-names = "calibration";
1618c2ecf20Sopenharmony_ci         #thermal-sensor-cells = <1>;
1628c2ecf20Sopenharmony_ci    };
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci...
165