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