On Wed, Oct 29, 2025 at 05:50:58PM +0200, Marius Cristea wrote: > This is the devicetree schema for Microchip EMC1812/13/14/15/33 > Multichannel Low-Voltage Remote Diode Sensor Family. > > Signed-off-by: Marius Cristea > --- > .../bindings/hwmon/microchip,emc1812.yaml | 176 +++++++++++++++++++++ > MAINTAINERS | 6 + > 2 files changed, 182 insertions(+) > > diff --git a/Documentation/devicetree/bindings/hwmon/microchip,emc1812.yaml b/Documentation/devicetree/bindings/hwmon/microchip,emc1812.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..cc4c7bb53cb13416c1e9419cc8c6c8a56da22df8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/microchip,emc1812.yaml > @@ -0,0 +1,176 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/hwmon/microchip,emc1812.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Microchip EMC1812/13/14/15/33 multichannel temperature sensor > + > +maintainers: > + - Marius Cristea > + > +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 Could you add a note to the commit message about what makes these devices incompatible with one another? > + > + 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. You should be able to just move this into interrupts: interrupts: items: - description: alert-therm2 asserts when a diode temperature exceeds the ALERT threshold. - description: 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 Also, should this and interrupts have minItems: 1? Are both actually required? Can you have therm-addr without alert-therm2? pw-bot: changes-requested Cheers, Conor. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + 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 > + > + 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,parasitic-res-on-channel3-4: false > + - if: > + properties: > + compatible: > + contains: > + enum: > + - microchip,emc1812 > + then: > + properties: > + channel@1: > + properties: > + reg: > + items: > + const: 1 > + patternProperties: > + "^channel@[2-4]$": false > + - if: > + properties: > + compatible: > + pattern: "^microchip,emc18[13]3" > + then: > + patternProperties: > + "^channel@[12]$": > + properties: > + reg: > + items: > + maximum: 2 > + "^channel@[34]$": false > + - if: > + properties: > + compatible: > + pattern: "^microchip,emc1814" > + then: > + patternProperties: > + "^channel@[1-3]$": > + properties: > + reg: > + items: > + maximum: 3 > + properties: > + 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; > + > + 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 6d7b697bfdba16e4f0ee5f4f0195b9d7da06dae5..85c236df781e47c78deeb7ef4d80bc94bba604c4 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -16646,6 +16646,12 @@ S: Supported > F: Documentation/devicetree/bindings/interrupt-controller/microchip,sama7g5-eic.yaml > F: drivers/irqchip/irq-mchp-eic.c > > +MICROCHIP EMC1812 DRIVER > +M: Marius Cristea > +L: linux-hwmon@vger.kernel.org > +S: Supported > +F: Documentation/devicetree/bindings/hwmon/microchip,emc1812.yaml > + > MICROCHIP I2C DRIVER > M: Codrin Ciubotariu > L: linux-i2c@vger.kernel.org > > -- > 2.48.1 >