On Wed, Oct 20, 2021 at 12:42:12PM -0400, Oskar Senft wrote: > This change documents the device tree bindings for the Nuvoton > NCT7802Y driver. > > Signed-off-by: Oskar Senft <osk@xxxxxxxxxx> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> Applied. Thanks, Guenter > --- > Changes from PATCH v7: > - Implemented review comments: > - Added blank lines to increase readability. > - Moved "additionalProperties" up to increase readability. > > Changes from PATCH v6: > - Fixed formatting error reported by yamllint > > Changes from PATCH v5: > - Refactored to use patternProperties. > - Added validation for sensor-type and temperature-mode. > --- > .../bindings/hwmon/nuvoton,nct7802.yaml | 145 ++++++++++++++++++ > 1 file changed, 145 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml b/Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml > new file mode 100644 > index 000000000000..2f0620ecccc9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml > @@ -0,0 +1,145 @@ > +# 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@xxxxxxxxxxxx> > + > +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"; > + }; > + }; > + };