On Sun, Oct 10, 2021 at 09:22:11PM -0400, Oskar Senft wrote: > This change documents the device tree bindings for the Nuvoton > NCT7802Y driver. > > Signed-off-by: Oskar Senft <osk@xxxxxxxxxx> > --- > 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 | 144 ++++++++++++++++++ > 1 file changed, 144 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..a0a245938528 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml > @@ -0,0 +1,144 @@ > +# 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 > + > +properties: > + compatible: > + enum: > + - nuvoton,nct7802 > + > + reg: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^channel@[0-3]$": > + type: object I would move the 'additionalProperties' here. I think that's a bit easier to read. > + 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") blank line > + sensor-type: > + items: > + - enum: > + - temperature > + - voltage blank line > + temperature-mode: > + items: > + - enum: > + - thermistor > + - thermal-diode blank line > + required: > + - reg blank line > + 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 > + > + additionalProperties: false > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +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>; > + status = "okay"; Don't show status in examples. > + }; > + > + channel@1 { /* RTD1 */ > + reg = <1>; > + status = "okay"; > + sensor-type = "voltage"; > + }; > + > + channel@2 { /* RTD2 */ > + reg = <2>; > + status = "okay"; > + sensor-type = "temperature"; > + temperature-mode = "thermal-diode"; > + }; > + > + channel@3 { /* RTD3 */ > + reg = <3>; > + status = "okay"; > + sensor-type = "temperature"; > + }; > + }; > + }; > -- > 2.33.0.882.g93a45727a2-goog > >