xref: /linux/Documentation/devicetree/bindings/hwmon/microchip,emc1812.yaml (revision 9611c0ce215a66770ccbe5c126bf57ba8c31bcad)
1*1df240f3SMarius Cristea# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*1df240f3SMarius Cristea%YAML 1.2
3*1df240f3SMarius Cristea---
4*1df240f3SMarius Cristea$id: http://devicetree.org/schemas/hwmon/microchip,emc1812.yaml#
5*1df240f3SMarius Cristea$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1df240f3SMarius Cristea
7*1df240f3SMarius Cristeatitle: Microchip EMC1812/13/14/15/33 multichannel temperature sensor
8*1df240f3SMarius Cristea
9*1df240f3SMarius Cristeamaintainers:
10*1df240f3SMarius Cristea  - Marius Cristea <marius.cristea@microchip.com>
11*1df240f3SMarius Cristea
12*1df240f3SMarius Cristeadescription: |
13*1df240f3SMarius Cristea  The Microchip EMC1812/13/14/15/33 is a high-accuracy 2-wire multichannel
14*1df240f3SMarius Cristea  low-voltage remote diode temperature monitor.
15*1df240f3SMarius Cristea
16*1df240f3SMarius Cristea  The datasheet can be found here:
17*1df240f3SMarius Cristea    https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC1812-3-4-5-33-Data-Sheet-DS20005751.pdf
18*1df240f3SMarius Cristea
19*1df240f3SMarius Cristea  EMC1812 has one external remote temperature monitoring channel
20*1df240f3SMarius Cristea  EMC1813 has two external remote temperature monitoring channels
21*1df240f3SMarius Cristea  EMC1814 has three external remote temperature monitoring channels and
22*1df240f3SMarius Cristea    channels 2 and 3 support anti parallel diode
23*1df240f3SMarius Cristea  EMC1815 has four external remote temperature monitoring channels and
24*1df240f3SMarius Cristea    channels 1/2 and 3/4 support anti parallel diode
25*1df240f3SMarius Cristea  EMC1833 has two external remote temperature monitoring channels and
26*1df240f3SMarius Cristea    channels 1 and 2 support anti parallel diode
27*1df240f3SMarius Cristea
28*1df240f3SMarius Cristeaproperties:
29*1df240f3SMarius Cristea  compatible:
30*1df240f3SMarius Cristea    enum:
31*1df240f3SMarius Cristea      - microchip,emc1812
32*1df240f3SMarius Cristea      - microchip,emc1813
33*1df240f3SMarius Cristea      - microchip,emc1814
34*1df240f3SMarius Cristea      - microchip,emc1815
35*1df240f3SMarius Cristea      - microchip,emc1833
36*1df240f3SMarius Cristea
37*1df240f3SMarius Cristea  reg:
38*1df240f3SMarius Cristea    maxItems: 1
39*1df240f3SMarius Cristea
40*1df240f3SMarius Cristea  interrupts:
41*1df240f3SMarius Cristea    items:
42*1df240f3SMarius Cristea      - description: alert-therm2 asserts when the ALERT limit is exceeded.
43*1df240f3SMarius Cristea      - description: therm-addr asserts when the THERM limit is exceeded.
44*1df240f3SMarius Cristea    minItems: 1
45*1df240f3SMarius Cristea
46*1df240f3SMarius Cristea  interrupt-names:
47*1df240f3SMarius Cristea    items:
48*1df240f3SMarius Cristea      - const: alert-therm2
49*1df240f3SMarius Cristea      - const: therm-addr
50*1df240f3SMarius Cristea    minItems: 1
51*1df240f3SMarius Cristea
52*1df240f3SMarius Cristea  "#address-cells":
53*1df240f3SMarius Cristea    const: 1
54*1df240f3SMarius Cristea
55*1df240f3SMarius Cristea  "#size-cells":
56*1df240f3SMarius Cristea    const: 0
57*1df240f3SMarius Cristea
58*1df240f3SMarius Cristea  microchip,enable-anti-parallel:
59*1df240f3SMarius Cristea    description:
60*1df240f3SMarius Cristea      Enable anti-parallel diode mode operation. EMC1814, EMC1815 and EMC1833
61*1df240f3SMarius Cristea      support reading two external diodes in anti-parallel connection on the
62*1df240f3SMarius Cristea      same set of pins. Disabling APD functionality to implement substrate
63*1df240f3SMarius Cristea      diodes on devices that support APD eliminates the benefit of APD
64*1df240f3SMarius Cristea      (two diodes on one channel).
65*1df240f3SMarius Cristea    type: boolean
66*1df240f3SMarius Cristea
67*1df240f3SMarius Cristea  microchip,parasitic-res-on-channel1-2:
68*1df240f3SMarius Cristea    description:
69*1df240f3SMarius Cristea      Indicates that the chip and the diodes/transistors are sufficiently
70*1df240f3SMarius Cristea      far apart that a parasitic resistance is added to the wires, which can
71*1df240f3SMarius Cristea      affect the measurements. Due to the availability of only a single
72*1df240f3SMarius Cristea      configuration bit in hardware, channels 1 and 2 are affected together.
73*1df240f3SMarius Cristea      If channel 2 is not available in hardware, this setting affects only
74*1df240f3SMarius Cristea      channel 1.
75*1df240f3SMarius Cristea    type: boolean
76*1df240f3SMarius Cristea
77*1df240f3SMarius Cristea  microchip,parasitic-res-on-channel3-4:
78*1df240f3SMarius Cristea    description:
79*1df240f3SMarius Cristea      Indicates that the chip and the diodes/transistors are sufficiently
80*1df240f3SMarius Cristea      far apart that a parasitic resistance is added to the wires, which can
81*1df240f3SMarius Cristea      affect the measurements. Due to the availability of only a single
82*1df240f3SMarius Cristea      configuration bit in hardware, channels 3 and 4 are affected together.
83*1df240f3SMarius Cristea      If channel 4 is not available in hardware, this setting affects only
84*1df240f3SMarius Cristea      channel 3.
85*1df240f3SMarius Cristea    type: boolean
86*1df240f3SMarius Cristea
87*1df240f3SMarius Cristea  vdd-supply: true
88*1df240f3SMarius Cristea
89*1df240f3SMarius CristeapatternProperties:
90*1df240f3SMarius Cristea  "^channel@[0-4]$":
91*1df240f3SMarius Cristea    description: |
92*1df240f3SMarius Cristea      Represents the temperature channels.
93*1df240f3SMarius Cristea      0: Internal sensor
94*1df240f3SMarius Cristea      1-4: External remote diodes
95*1df240f3SMarius Cristea    type: object
96*1df240f3SMarius Cristea
97*1df240f3SMarius Cristea    properties:
98*1df240f3SMarius Cristea      reg:
99*1df240f3SMarius Cristea        maxItems: 1
100*1df240f3SMarius Cristea
101*1df240f3SMarius Cristea      label:
102*1df240f3SMarius Cristea        description: Unique name to identify which channel this is.
103*1df240f3SMarius Cristea
104*1df240f3SMarius Cristea    required:
105*1df240f3SMarius Cristea      - reg
106*1df240f3SMarius Cristea
107*1df240f3SMarius Cristea    additionalProperties: false
108*1df240f3SMarius Cristea
109*1df240f3SMarius Cristearequired:
110*1df240f3SMarius Cristea  - compatible
111*1df240f3SMarius Cristea  - reg
112*1df240f3SMarius Cristea  - vdd-supply
113*1df240f3SMarius Cristea
114*1df240f3SMarius CristeaallOf:
115*1df240f3SMarius Cristea  # EMC1812: 1 Internal, 1 External Channels, No APD,
116*1df240f3SMarius Cristea  # parasitic-res-on-channel1-2: for channel 1
117*1df240f3SMarius Cristea  - if:
118*1df240f3SMarius Cristea      properties:
119*1df240f3SMarius Cristea        compatible:
120*1df240f3SMarius Cristea          const: microchip,emc1812
121*1df240f3SMarius Cristea    then:
122*1df240f3SMarius Cristea      properties:
123*1df240f3SMarius Cristea        microchip,enable-anti-parallel: false
124*1df240f3SMarius Cristea        microchip,parasitic-res-on-channel3-4: false
125*1df240f3SMarius Cristea      patternProperties:
126*1df240f3SMarius Cristea        "^channel@[2-4]$": false
127*1df240f3SMarius Cristea
128*1df240f3SMarius Cristea  # EMC1813: 1 Internal, 2 External Channels, No APD,
129*1df240f3SMarius Cristea  # parasitic-res-on-channel1-2: on both channel 1 & 2
130*1df240f3SMarius Cristea  - if:
131*1df240f3SMarius Cristea      properties:
132*1df240f3SMarius Cristea        compatible:
133*1df240f3SMarius Cristea          const: microchip,emc1813
134*1df240f3SMarius Cristea    then:
135*1df240f3SMarius Cristea      properties:
136*1df240f3SMarius Cristea        microchip,enable-anti-parallel: false
137*1df240f3SMarius Cristea        microchip,parasitic-res-on-channel3-4: false
138*1df240f3SMarius Cristea      patternProperties:
139*1df240f3SMarius Cristea        "^channel@[3-4]$": false
140*1df240f3SMarius Cristea
141*1df240f3SMarius Cristea  # EMC1833: 1 Internal, 2 External Channels, Supports APD,
142*1df240f3SMarius Cristea  # parasitic-res-on-channel1-2: on both channel 1 & 2
143*1df240f3SMarius Cristea  - if:
144*1df240f3SMarius Cristea      properties:
145*1df240f3SMarius Cristea        compatible:
146*1df240f3SMarius Cristea          const: microchip,emc1833
147*1df240f3SMarius Cristea    then:
148*1df240f3SMarius Cristea      properties:
149*1df240f3SMarius Cristea        microchip,parasitic-res-on-channel3-4: false
150*1df240f3SMarius Cristea      patternProperties:
151*1df240f3SMarius Cristea        "^channel@[3-4]$": false
152*1df240f3SMarius Cristea
153*1df240f3SMarius Cristea  # EMC1814: 1 Internal, 3 External Channels, Supports APD,
154*1df240f3SMarius Cristea  # parasitic-res-on-channel1-2: on both channel 1 & 2
155*1df240f3SMarius Cristea  # parasitic-res-on-channel3-4: for channel 3
156*1df240f3SMarius Cristea  - if:
157*1df240f3SMarius Cristea      properties:
158*1df240f3SMarius Cristea        compatible:
159*1df240f3SMarius Cristea          const: microchip,emc1814
160*1df240f3SMarius Cristea    then:
161*1df240f3SMarius Cristea      properties:
162*1df240f3SMarius Cristea        channel@4: false
163*1df240f3SMarius Cristea
164*1df240f3SMarius CristeaunevaluatedProperties: false
165*1df240f3SMarius Cristea
166*1df240f3SMarius Cristeaexamples:
167*1df240f3SMarius Cristea  - |
168*1df240f3SMarius Cristea    i2c {
169*1df240f3SMarius Cristea        #address-cells = <1>;
170*1df240f3SMarius Cristea        #size-cells = <0>;
171*1df240f3SMarius Cristea
172*1df240f3SMarius Cristea        temperature-sensor@4c {
173*1df240f3SMarius Cristea            compatible = "microchip,emc1813";
174*1df240f3SMarius Cristea            reg = <0x4c>;
175*1df240f3SMarius Cristea
176*1df240f3SMarius Cristea            #address-cells = <1>;
177*1df240f3SMarius Cristea            #size-cells = <0>;
178*1df240f3SMarius Cristea
179*1df240f3SMarius Cristea            microchip,parasitic-res-on-channel1-2;
180*1df240f3SMarius Cristea
181*1df240f3SMarius Cristea            vdd-supply = <&vdd>;
182*1df240f3SMarius Cristea
183*1df240f3SMarius Cristea            channel@1 {
184*1df240f3SMarius Cristea                reg = <1>;
185*1df240f3SMarius Cristea                label = "External CH1 Temperature";
186*1df240f3SMarius Cristea            };
187*1df240f3SMarius Cristea
188*1df240f3SMarius Cristea            channel@2 {
189*1df240f3SMarius Cristea                reg = <2>;
190*1df240f3SMarius Cristea                label = "External CH2 Temperature";
191*1df240f3SMarius Cristea            };
192*1df240f3SMarius Cristea        };
193*1df240f3SMarius Cristea    };
194