| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/hwmon/microchip,mcp9982.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Microchip MCP998X/33 and MCP998XD/33D Temperature Monitor | |
| maintainers: | |
| - Victor Duicu <victor.duicu@microchip.com> | |
| description: | | |
| The MCP998X/33 and MCP998XD/33D family is a high-accuracy 2-wire | |
| multichannel automotive temperature monitor. | |
| The datasheet can be found here: | |
| https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP998X-Family-Data-Sheet-DS20006827.pdf | |
| properties: | |
| compatible: | |
| enum: | |
| - microchip,mcp9933 | |
| - microchip,mcp9933d | |
| - microchip,mcp9982 | |
| - microchip,mcp9982d | |
| - microchip,mcp9983 | |
| - microchip,mcp9983d | |
| - microchip,mcp9984 | |
| - microchip,mcp9984d | |
| - microchip,mcp9985 | |
| - microchip,mcp9985d | |
| reg: | |
| maxItems: 1 | |
| interrupts: | |
| minItems: 1 | |
| maxItems: 2 | |
| interrupt-names: | |
| description: | |
| The chip family has three different interrupt pins divided among them. | |
| The chips without "D" have alert-therm and therm-addr. | |
| The chips with "D" have alert-therm and sys-shtdwn. | |
| minItems: 1 | |
| items: | |
| - enum: [alert-therm, therm-addr, sys-shtdwn] | |
| - enum: [therm-addr, sys-shtdwn] | |
| "#address-cells": | |
| const: 1 | |
| "#size-cells": | |
| const: 0 | |
| microchip,enable-anti-parallel: | |
| description: | |
| Enable anti-parallel diode mode operation. | |
| MCP9984/84D/85/85D and MCP9933/33D support reading two external diodes | |
| in anti-parallel connection on the same set of pins. | |
| 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 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 | |
| microchip,power-state: | |
| description: | |
| The chip can be set in Run state or Standby state. In Run state the ADC | |
| is converting on all channels at the programmed conversion rate. | |
| In Standby state the host must initiate a conversion cycle by writing | |
| to the One-Shot register. | |
| True value sets Run state. | |
| Chips with "D" in the name can only be set in Run mode. | |
| 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: | |
| maxItems: 1 | |
| 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,mcp9982d | |
| - microchip,mcp9983d | |
| - microchip,mcp9984d | |
| - microchip,mcp9985d | |
| - microchip,mcp9933d | |
| then: | |
| properties: | |
| interrupt-names: | |
| items: | |
| enum: | |
| - alert-therm | |
| - sys-shtdwn | |
| required: | |
| - microchip,power-state | |
| - microchip,parasitic-res-on-channel1-2 | |
| else: | |
| properties: | |
| microchip,power-state: true | |
| interrupt-names: | |
| items: | |
| enum: | |
| - alert-therm | |
| - therm-addr | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - microchip,mcp9983d | |
| - microchip,mcp9984d | |
| - microchip,mcp9985d | |
| then: | |
| required: | |
| - microchip,parasitic-res-on-channel3-4 | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - microchip,mcp9982 | |
| - microchip,mcp9982d | |
| then: | |
| properties: | |
| microchip,enable-anti-parallel: false | |
| patternProperties: | |
| "^channel@[2-4]$": false | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - microchip,mcp9983 | |
| - microchip,mcp9983d | |
| then: | |
| properties: | |
| microchip,enable-anti-parallel: false | |
| patternProperties: | |
| "^channel@[3-4]$": false | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - microchip,mcp9933 | |
| - microchip,mcp9933d | |
| then: | |
| patternProperties: | |
| "^channel@[3-4]$": false | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - microchip,mcp9984 | |
| - microchip,mcp9984d | |
| then: | |
| properties: | |
| channel@4: false | |
| additionalProperties: false | |
| examples: | |
| - | | |
| i2c { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| temperature-sensor@4c { | |
| compatible = "microchip,mcp9985"; | |
| reg = <0x4c>; | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| microchip,enable-anti-parallel; | |
| microchip,parasitic-res-on-channel1-2; | |
| microchip,parasitic-res-on-channel3-4; | |
| vdd-supply = <&vdd>; | |
| channel@1 { | |
| reg = <1>; | |
| label = "Room Temperature"; | |
| }; | |
| channel@2 { | |
| reg = <2>; | |
| label = "GPU Temperature"; | |
| }; | |
| }; | |
| }; | |
| ... |