xref: /linux/Documentation/devicetree/bindings/hwmon/smsc,emc1403.yaml (revision 7acf90feab8b009fde7def08ff2c622d0f10e99f)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/hwmon/smsc,emc1403.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: SMSC EMC1402/1403/1404/1428 thermal sensors
8
9maintainers:
10  - Svyatoslav Ryhel <clamor95@gmail.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - smsc,emc1402
17          - smsc,emc1403
18          - smsc,emc1404
19          - smsc,emc1428
20
21      - items:
22          - enum:
23              - smsc,emc1412
24              - smsc,emc1422
25              - smsc,emc1442
26          - const: smsc,emc1402
27
28      - items:
29          - enum:
30              - smsc,emc1413
31              - smsc,emc1423
32          - const: smsc,emc1403
33
34      - items:
35          - enum:
36              - smsc,emc1414
37              - smsc,emc1424
38          - const: smsc,emc1404
39
40      - items:
41          - enum:
42              - smsc,emc1438
43          - const: smsc,emc1428
44
45  interrupts:
46    items:
47      - description: Sensors "ALERT" pin output.
48
49  reg:
50    maxItems: 1
51
52  "#thermal-sensor-cells":
53    const: 1
54
55  '#address-cells':
56    const: 1
57
58  '#size-cells':
59    const: 0
60
61  vdd-supply: true
62
63required:
64  - compatible
65  - reg
66
67patternProperties:
68  "^channel@([0-7])$":
69    type: object
70    description: Represents channels of the device and their specific configuration.
71
72    properties:
73      reg:
74        description: The channel number. 0 is local channel, 1-7 are remote channels.
75        items:
76          minimum: 0
77          maximum: 7
78
79      label:
80        description: A descriptive name for this channel, like "ambient" or "psu".
81
82    required:
83      - reg
84
85    additionalProperties: false
86
87allOf:
88  - if:
89      properties:
90        compatible:
91          contains:
92            enum:
93              - smsc,emc1402
94    then:
95      patternProperties:
96        "^channel@([0-7])$":
97          properties:
98            reg:
99              items:
100                maximum: 1
101
102  - if:
103      properties:
104        compatible:
105          contains:
106            enum:
107              - smsc,emc1403
108    then:
109      patternProperties:
110        "^channel@([0-7])$":
111          properties:
112            reg:
113              items:
114                maximum: 2
115
116  - if:
117      properties:
118        compatible:
119          contains:
120            enum:
121              - smsc,emc1404
122    then:
123      patternProperties:
124        "^channel@([0-7])$":
125          properties:
126            reg:
127              items:
128                maximum: 3
129
130additionalProperties: false
131
132examples:
133  - |
134    #include <dt-bindings/interrupt-controller/irq.h>
135
136    i2c {
137        #address-cells = <1>;
138        #size-cells = <0>;
139
140        sensor@4c {
141            compatible = "smsc,emc1412", "smsc,emc1402";
142            reg = <0x4c>;
143
144            interrupt-parent = <&gpio>;
145            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
146
147            vdd-supply = <&vdd_3v3_sys>;
148            #thermal-sensor-cells = <1>;
149        };
150    };
151  - |
152    i2c {
153        #address-cells = <1>;
154        #size-cells = <0>;
155
156        sensor@29 {
157            compatible = "smsc,emc1428";
158            reg = <0x29>;
159
160            #address-cells = <1>;
161            #size-cells = <0>;
162
163            channel@0 {
164                reg = <0x0>;
165                label = "local";
166            };
167
168            channel@1 {
169                reg = <0x1>;
170                label = "chan1";
171            };
172
173            channel@2 {
174                reg = <0x2>;
175                label = "chan2";
176            };
177
178            channel@3 {
179                reg = <0x3>;
180                label = "chan3";
181            };
182
183            channel@4 {
184                reg = <0x4>;
185                label = "chan4";
186            };
187
188            channel@5 {
189                reg = <0x5>;
190                label = "chan5";
191            };
192
193            channel@6 {
194                reg = <0x6>;
195                label = "chan6";
196            };
197
198            channel@7 {
199                reg = <0x7>;
200                label = "chan7";
201            };
202        };
203    };
204