| # 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"; |
| }; |
| }; |
| }; |
| |
| ... |