[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250917-iio-emc1812-v1-1-0b1f74cea7ab@microchip.com>
Date: Wed, 17 Sep 2025 15:21:57 +0300
From: Marius Cristea <marius.cristea@...rochip.com>
To: Jonathan Cameron <jic23@...nel.org>, David Lechner
<dlechner@...libre.com>, Nuno Sá <nuno.sa@...log.com>, "Andy
Shevchenko" <andy@...nel.org>, Rob Herring <robh@...nel.org>, "Krzysztof
Kozlowski" <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>
CC: <linux-iio@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, Marius Cristea <marius.cristea@...rochip.com>
Subject: [PATCH 1/2] dt-bindings: iio: temperature: add support for EMC1812
This is the devicetree schema for Microchip EMC1812/13/14/15/33
Multichannel Low-Voltage Remote Diode Sensor Family.
Signed-off-by: Marius Cristea <marius.cristea@...rochip.com>
---
.../iio/temperature/microchip,emc1812.yaml | 223 +++++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 229 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/temperature/microchip,emc1812.yaml b/Documentation/devicetree/bindings/iio/temperature/microchip,emc1812.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..898d6d246746e229cb004f447872ee6bd5a65074
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/temperature/microchip,emc1812.yaml
@@ -0,0 +1,223 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/temperature/microchip,emc1812.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip EMC1812/13/14/15/33 multichannel temperature sensor
+
+maintainers:
+ - Marius Cristea <marius.cristea@...rochip.com>
+
+description: |
+ The Microchip EMC1812/13/14/15/33 is a high-accuracy 2-wire multichannel
+ low-voltage remote diode temperature monitor.
+
+ The datasheet can be found here:
+ https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC1812-3-4-5-33-Data-Sheet-DS20005751.pdf
+
+properties:
+ compatible:
+ enum:
+ - microchip,emc1812
+ - microchip,emc1813
+ - microchip,emc1814
+ - microchip,emc1815
+ - microchip,emc1833
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 2
+
+ interrupt-names:
+ description:
+ -alert-therm2 asserts when a diode temperature exceeds the ALERT
+ threshold.
+ -therm-addr asserts low when the hardware-set THERM limit threshold is
+ exceeded by one of the temperature sensors.
+ items:
+ - const: alert-therm2
+ - const: therm-addr
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ microchip,beta1:
+ description:
+ Set beta compensation value for external channel 1.
+ <0> 0.050
+ <1> 0.066
+ <2> 0.087
+ <3> 0.114
+ <4> 0.150
+ <5> 0.197
+ <6> 0.260
+ <7> 0.342
+ <8> 0.449
+ <9> 0.591
+ <10> 0.778
+ <11> 1.024
+ <12> 1.348
+ <13> 1.773
+ <14> 2.333
+ <15> Diode_Mode
+ <16> Auto
+ - Diode_Mode is used when measuring a discrete thermal diode
+ or a CPU diode that functions like a discrete thermal diode.
+ - Auto enables beta auto-detection. The chip monitors
+ external diode/transistor and determines the optimum
+ setting.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 16
+ default: 16
+
+ microchip,beta2:
+ description:
+ Set beta compensation value for external channel 2.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 16
+ default: 16
+
+ microchip,parasitic-res-on-channel1-2:
+ description:
+ Indicates that the chip and the diodes/transistors are sufficiently far
+ apart that a parasitic resistance is added to the wires, which can affect
+ the measurements. Due to the anti-parallel diode connections, channels
+ 1 and 2 are affected together.
+ type: boolean
+
+ microchip,parasitic-res-on-channel3-4:
+ description:
+ Indicates that the chip and the diodes/transistors are sufficiently far
+ apart that a parasitic resistance is added to the wires, which can affect
+ the measurements. Due to the anti-parallel diode connections, channels
+ 3 and 4 are affected together.
+ type: boolean
+
+ vdd-supply: true
+
+patternProperties:
+ "^channel@[1-4]$":
+ description:
+ Represents the external temperature channels to which
+ a remote diode is connected.
+ type: object
+
+ properties:
+ reg:
+ items:
+ minimum: 1
+ maximum: 4
+
+ microchip,ideality-factor:
+ description:
+ Each channel has an ideality factor.
+ Beta compensation and resistance error correction automatically
+ correct for most ideality errors. So ideality factor does not need
+ to be adjusted in general.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 8
+ maximum: 55
+ default: 18
+
+ label:
+ description: Unique name to identify which channel this is.
+
+ required:
+ - reg
+
+ additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - vdd-supply
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - microchip,emc1812
+ - microchip,emc1813
+ - microchip,emc1833
+ then:
+ properties:
+ microchip,beta2: false
+ microchip,parasitic-res-on-channel3-4: false
+ - if:
+ properties:
+ compatible:
+ pattern: "^microchip,emc1812"
+ then:
+ patternProperties:
+ "^channel@1$":
+ properties:
+ reg:
+ items:
+ maximum: 1
+ "^channel@[2-4]$": false
+ - if:
+ properties:
+ compatible:
+ pattern: "^microchip,emc18[13]3"
+ then:
+ patternProperties:
+ "^channel@[12]$":
+ properties:
+ reg:
+ items:
+ maximum: 1
+ "^channel@[34]$": false
+ - if:
+ properties:
+ compatible:
+ pattern: "^microchip,emc1814"
+ then:
+ patternProperties:
+ "^channel@[1-3]$":
+ properties:
+ reg:
+ items:
+ maximum: 1
+ "^channel@4$": false
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ temperature-sensor@4c {
+ compatible = "microchip,emc1813";
+ reg = <0x4c>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ microchip,parasitic-res-on-channel1-2;
+
+ microchip,beta1 = <16>;
+ vdd-supply = <&vdd>;
+
+ channel@1 {
+ reg = <1>;
+ label = "External CH1 Temperature";
+ };
+
+ channel@2 {
+ reg = <2>;
+ label = "External CH2 Temperature";
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index a92290fffa163f9fe8fe3f04bf66426f9a894409..09efda36a17e398b3ad807ac47485e530154bae4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -22862,6 +22862,12 @@ M: Nicolas Pitre <nico@...xnic.net>
S: Odd Fixes
F: drivers/net/ethernet/smsc/smc91x.*
+MICROCHIP EMC1812 TEMPERATURE DRIVER
+M: Marius Cristea <marius.cristea@...rochip.com>
+L: linux-iio@...r.kernel.org
+S: Supported
+F: Documentation/devicetree/bindings/iio/temperature/microchip,emc1812.yaml
+
SMSC EMC2103 HARDWARE MONITOR DRIVER
M: Steve Glendinning <steve.glendinning@...well.net>
L: linux-hwmon@...r.kernel.org
--
2.48.1
Powered by blists - more mailing lists