# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/hwmon/nuvoton,nct7802.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Nuvoton NCT7802Y Hardware Monitoring IC maintainers: - Guenter Roeck <linux@roeck-us.net> description: | The NCT7802Y is a hardware monitor IC which supports one on-die and up to 5 remote temperature sensors with SMBus interface. Datasheets: https://www.nuvoton.com/export/resource-files/Nuvoton_NCT7802Y_Datasheet_V12.pdf additionalProperties: false properties: compatible: enum: - nuvoton,nct7802 reg: maxItems: 1 "#address-cells": const: 1 "#size-cells": const: 0 patternProperties: "^channel@[0-3]$": type: object additionalProperties: false properties: reg: items: - enum: - 0 # Local Temperature Sensor ("LTD") - 1 # Remote Temperature Sensor or Voltage Sensor 1 ("RTD1") - 2 # Remote Temperature Sensor or Voltage Sensor 2 ("RTD2") - 3 # Remote Temperature Sensor or Voltage Sensor 3 ("RTD3") sensor-type: items: - enum: - temperature - voltage temperature-mode: items: - enum: - thermistor - thermal-diode required: - reg allOf: # For channels RTD1, RTD2 and RTD3, require sensor-type to be set. # Otherwise (for all other channels), do not allow temperature-mode to be # set. - if: properties: reg: items: - enum: - 1 - 2 - 3 then: required: - sensor-type else: not: required: - sensor-type # For channels RTD1 and RTD2 and if sensor-type is "temperature", require # temperature-mode to be set. Otherwise (for all other channels or # sensor-type settings), do not allow temperature-mode to be set - if: properties: reg: items: - enum: - 1 - 2 sensor-type: items: - enum: - temperature then: required: - temperature-mode else: not: required: - temperature-mode required: - compatible - reg examples: - | i2c { #address-cells = <1>; #size-cells = <0>; nct7802@28 { compatible = "nuvoton,nct7802"; reg = <0x28>; #address-cells = <1>; #size-cells = <0>; channel@0 { /* LTD */ reg = <0>; }; channel@1 { /* RTD1 */ reg = <1>; sensor-type = "voltage"; }; channel@2 { /* RTD2 */ reg = <2>; sensor-type = "temperature"; temperature-mode = "thermal-diode"; }; channel@3 { /* RTD3 */ reg = <3>; sensor-type = "temperature"; }; }; };