| # 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 <marius.cristea@microchip.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 | |
| EMC1812 has one external remote temperature monitoring channel | |
| EMC1813 has two external remote temperature monitoring channels | |
| EMC1814 has three external remote temperature monitoring channels and | |
| channels 2 and 3 support anti parallel diode | |
| EMC1815 has four external remote temperature monitoring channels and | |
| channels 1/2 and 3/4 support anti parallel diode | |
| EMC1833 has two external remote temperature monitoring channels and | |
| channels 1 and 2 support anti parallel diode | |
| properties: | |
| compatible: | |
| enum: | |
| - microchip,emc1812 | |
| - microchip,emc1813 | |
| - microchip,emc1814 | |
| - microchip,emc1815 | |
| - microchip,emc1833 | |
| reg: | |
| maxItems: 1 | |
| interrupts: | |
| items: | |
| - description: alert-therm2 asserts when the ALERT limit is exceeded. | |
| - description: therm-addr asserts when the THERM limit is exceeded. | |
| minItems: 1 | |
| interrupt-names: | |
| items: | |
| - const: alert-therm2 | |
| - const: therm-addr | |
| minItems: 1 | |
| "#address-cells": | |
| const: 1 | |
| "#size-cells": | |
| const: 0 | |
| microchip,enable-anti-parallel: | |
| description: | |
| Enable anti-parallel diode mode operation. EMC1814, EMC1815 and EMC1833 | |
| support reading two external diodes in anti-parallel connection on the | |
| same set of pins. Disabling APD functionality to implement substrate | |
| diodes on devices that support APD eliminates the benefit of APD | |
| (two diodes on one channel). | |
| type: boolean | |
| 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 availability of only a single | |
| configuration bit in hardware, channels 1 and 2 are affected together. | |
| If channel 2 is not available in hardware, this setting affects only | |
| channel 1. | |
| 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 availability of only a single | |
| configuration bit in hardware, channels 3 and 4 are affected together. | |
| If channel 4 is not available in hardware, this setting affects only | |
| channel 3. | |
| type: boolean | |
| vdd-supply: true | |
| patternProperties: | |
| "^channel@[0-4]$": | |
| description: | | |
| Represents the temperature channels. | |
| 0: Internal sensor | |
| 1-4: External remote diodes | |
| type: object | |
| properties: | |
| reg: | |
| maxItems: 1 | |
| label: | |
| description: Unique name to identify which channel this is. | |
| required: | |
| - reg | |
| additionalProperties: false | |
| required: | |
| - compatible | |
| - reg | |
| - vdd-supply | |
| allOf: | |
| # EMC1812: 1 Internal, 1 External Channels, No APD, | |
| # parasitic-res-on-channel1-2: for channel 1 | |
| - if: | |
| properties: | |
| compatible: | |
| const: microchip,emc1812 | |
| then: | |
| properties: | |
| microchip,enable-anti-parallel: false | |
| microchip,parasitic-res-on-channel3-4: false | |
| patternProperties: | |
| "^channel@[2-4]$": false | |
| # EMC1813: 1 Internal, 2 External Channels, No APD, | |
| # parasitic-res-on-channel1-2: on both channel 1 & 2 | |
| - if: | |
| properties: | |
| compatible: | |
| const: microchip,emc1813 | |
| then: | |
| properties: | |
| microchip,enable-anti-parallel: false | |
| microchip,parasitic-res-on-channel3-4: false | |
| patternProperties: | |
| "^channel@[3-4]$": false | |
| # EMC1833: 1 Internal, 2 External Channels, Supports APD, | |
| # parasitic-res-on-channel1-2: on both channel 1 & 2 | |
| - if: | |
| properties: | |
| compatible: | |
| const: microchip,emc1833 | |
| then: | |
| properties: | |
| microchip,parasitic-res-on-channel3-4: false | |
| patternProperties: | |
| "^channel@[3-4]$": false | |
| # EMC1814: 1 Internal, 3 External Channels, Supports APD, | |
| # parasitic-res-on-channel1-2: on both channel 1 & 2 | |
| # parasitic-res-on-channel3-4: for channel 3 | |
| - if: | |
| properties: | |
| compatible: | |
| const: microchip,emc1814 | |
| then: | |
| properties: | |
| channel@4: false | |
| unevaluatedProperties: 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"; | |
| }; | |
| }; | |
| }; |