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