xref: /linux/Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1*1bfaa49aSOskar Senft# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*1bfaa49aSOskar Senft%YAML 1.2
3*1bfaa49aSOskar Senft---
4*1bfaa49aSOskar Senft$id: http://devicetree.org/schemas/hwmon/nuvoton,nct7802.yaml#
5*1bfaa49aSOskar Senft$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1bfaa49aSOskar Senft
7*1bfaa49aSOskar Senfttitle: Nuvoton NCT7802Y Hardware Monitoring IC
8*1bfaa49aSOskar Senft
9*1bfaa49aSOskar Senftmaintainers:
10*1bfaa49aSOskar Senft  - Guenter Roeck <linux@roeck-us.net>
11*1bfaa49aSOskar Senft
12*1bfaa49aSOskar Senftdescription: |
13*1bfaa49aSOskar Senft  The NCT7802Y is a hardware monitor IC which supports one on-die and up to
14*1bfaa49aSOskar Senft  5 remote temperature sensors with SMBus interface.
15*1bfaa49aSOskar Senft
16*1bfaa49aSOskar Senft  Datasheets:
17*1bfaa49aSOskar Senft    https://www.nuvoton.com/export/resource-files/Nuvoton_NCT7802Y_Datasheet_V12.pdf
18*1bfaa49aSOskar Senft
19*1bfaa49aSOskar SenftadditionalProperties: false
20*1bfaa49aSOskar Senft
21*1bfaa49aSOskar Senftproperties:
22*1bfaa49aSOskar Senft  compatible:
23*1bfaa49aSOskar Senft    enum:
24*1bfaa49aSOskar Senft      - nuvoton,nct7802
25*1bfaa49aSOskar Senft
26*1bfaa49aSOskar Senft  reg:
27*1bfaa49aSOskar Senft    maxItems: 1
28*1bfaa49aSOskar Senft
29*1bfaa49aSOskar Senft  "#address-cells":
30*1bfaa49aSOskar Senft    const: 1
31*1bfaa49aSOskar Senft
32*1bfaa49aSOskar Senft  "#size-cells":
33*1bfaa49aSOskar Senft    const: 0
34*1bfaa49aSOskar Senft
35*1bfaa49aSOskar SenftpatternProperties:
36*1bfaa49aSOskar Senft  "^channel@[0-3]$":
37*1bfaa49aSOskar Senft    type: object
38*1bfaa49aSOskar Senft
39*1bfaa49aSOskar Senft    additionalProperties: false
40*1bfaa49aSOskar Senft
41*1bfaa49aSOskar Senft    properties:
42*1bfaa49aSOskar Senft      reg:
43*1bfaa49aSOskar Senft        items:
44*1bfaa49aSOskar Senft          - enum:
45*1bfaa49aSOskar Senft              - 0    # Local Temperature Sensor ("LTD")
46*1bfaa49aSOskar Senft              - 1    # Remote Temperature Sensor or Voltage Sensor 1 ("RTD1")
47*1bfaa49aSOskar Senft              - 2    # Remote Temperature Sensor or Voltage Sensor 2 ("RTD2")
48*1bfaa49aSOskar Senft              - 3    # Remote Temperature Sensor or Voltage Sensor 3 ("RTD3")
49*1bfaa49aSOskar Senft
50*1bfaa49aSOskar Senft      sensor-type:
51*1bfaa49aSOskar Senft        items:
52*1bfaa49aSOskar Senft          - enum:
53*1bfaa49aSOskar Senft              - temperature
54*1bfaa49aSOskar Senft              - voltage
55*1bfaa49aSOskar Senft
56*1bfaa49aSOskar Senft      temperature-mode:
57*1bfaa49aSOskar Senft        items:
58*1bfaa49aSOskar Senft          - enum:
59*1bfaa49aSOskar Senft              - thermistor
60*1bfaa49aSOskar Senft              - thermal-diode
61*1bfaa49aSOskar Senft
62*1bfaa49aSOskar Senft    required:
63*1bfaa49aSOskar Senft      - reg
64*1bfaa49aSOskar Senft
65*1bfaa49aSOskar Senft    allOf:
66*1bfaa49aSOskar Senft      # For channels RTD1, RTD2 and RTD3, require sensor-type to be set.
67*1bfaa49aSOskar Senft      # Otherwise (for all other channels), do not allow temperature-mode to be
68*1bfaa49aSOskar Senft      # set.
69*1bfaa49aSOskar Senft      - if:
70*1bfaa49aSOskar Senft          properties:
71*1bfaa49aSOskar Senft            reg:
72*1bfaa49aSOskar Senft              items:
73*1bfaa49aSOskar Senft                - enum:
74*1bfaa49aSOskar Senft                    - 1
75*1bfaa49aSOskar Senft                    - 2
76*1bfaa49aSOskar Senft                    - 3
77*1bfaa49aSOskar Senft        then:
78*1bfaa49aSOskar Senft          required:
79*1bfaa49aSOskar Senft            - sensor-type
80*1bfaa49aSOskar Senft        else:
81*1bfaa49aSOskar Senft          not:
82*1bfaa49aSOskar Senft            required:
83*1bfaa49aSOskar Senft              - sensor-type
84*1bfaa49aSOskar Senft
85*1bfaa49aSOskar Senft      # For channels RTD1 and RTD2 and if sensor-type is "temperature", require
86*1bfaa49aSOskar Senft      # temperature-mode to be set. Otherwise (for all other channels or
87*1bfaa49aSOskar Senft      # sensor-type settings), do not allow temperature-mode to be set
88*1bfaa49aSOskar Senft      - if:
89*1bfaa49aSOskar Senft          properties:
90*1bfaa49aSOskar Senft            reg:
91*1bfaa49aSOskar Senft              items:
92*1bfaa49aSOskar Senft                - enum:
93*1bfaa49aSOskar Senft                    - 1
94*1bfaa49aSOskar Senft                    - 2
95*1bfaa49aSOskar Senft            sensor-type:
96*1bfaa49aSOskar Senft              items:
97*1bfaa49aSOskar Senft                - enum:
98*1bfaa49aSOskar Senft                    - temperature
99*1bfaa49aSOskar Senft        then:
100*1bfaa49aSOskar Senft          required:
101*1bfaa49aSOskar Senft            - temperature-mode
102*1bfaa49aSOskar Senft        else:
103*1bfaa49aSOskar Senft          not:
104*1bfaa49aSOskar Senft            required:
105*1bfaa49aSOskar Senft              - temperature-mode
106*1bfaa49aSOskar Senft
107*1bfaa49aSOskar Senftrequired:
108*1bfaa49aSOskar Senft  - compatible
109*1bfaa49aSOskar Senft  - reg
110*1bfaa49aSOskar Senft
111*1bfaa49aSOskar Senftexamples:
112*1bfaa49aSOskar Senft  - |
113*1bfaa49aSOskar Senft    i2c {
114*1bfaa49aSOskar Senft        #address-cells = <1>;
115*1bfaa49aSOskar Senft        #size-cells = <0>;
116*1bfaa49aSOskar Senft
117*1bfaa49aSOskar Senft        nct7802@28 {
118*1bfaa49aSOskar Senft            compatible = "nuvoton,nct7802";
119*1bfaa49aSOskar Senft            reg = <0x28>;
120*1bfaa49aSOskar Senft
121*1bfaa49aSOskar Senft            #address-cells = <1>;
122*1bfaa49aSOskar Senft            #size-cells = <0>;
123*1bfaa49aSOskar Senft
124*1bfaa49aSOskar Senft            channel@0 { /* LTD */
125*1bfaa49aSOskar Senft                reg = <0>;
126*1bfaa49aSOskar Senft            };
127*1bfaa49aSOskar Senft
128*1bfaa49aSOskar Senft            channel@1 { /* RTD1 */
129*1bfaa49aSOskar Senft                reg = <1>;
130*1bfaa49aSOskar Senft                sensor-type = "voltage";
131*1bfaa49aSOskar Senft            };
132*1bfaa49aSOskar Senft
133*1bfaa49aSOskar Senft            channel@2 { /* RTD2 */
134*1bfaa49aSOskar Senft                reg = <2>;
135*1bfaa49aSOskar Senft                sensor-type = "temperature";
136*1bfaa49aSOskar Senft                temperature-mode = "thermal-diode";
137*1bfaa49aSOskar Senft            };
138*1bfaa49aSOskar Senft
139*1bfaa49aSOskar Senft            channel@3 { /* RTD3 */
140*1bfaa49aSOskar Senft                reg = <3>;
141*1bfaa49aSOskar Senft                sensor-type = "temperature";
142*1bfaa49aSOskar Senft            };
143*1bfaa49aSOskar Senft        };
144*1bfaa49aSOskar Senft    };
145