# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/gmt,g762.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: GMT G761/G762/G763 PWM Fan controller

maintainers:
  - Christian Marangi <ansuelsmth@gmail.com>

description: |
  GMT G761/G762/G763 PWM Fan controller.

  G761 supports an internal-clock hence the clocks property is optional.
  If not defined, internal-clock will be used. (31KHz is the clock of
  the internal crystal oscillator)

  If an optional property is not set in DT, then current value is kept
  unmodified (e.g. bootloader installed value).

  Additional information on operational parameters for the device is available
  in Documentation/hwmon/g762.rst. A detailed datasheet for the device is available
  at http://natisbad.org/NAS/refs/GMT_EDS-762_763-080710-0.2.pdf.

properties:
  compatible:
    enum:
      - gmt,g761
      - gmt,g762
      - gmt,g763

  reg:
    maxItems: 1

  clocks:
    description: a fixed clock providing input clock frequency on CLK
      pin of the chip.
    maxItems: 1

  fan_startv:
    description: Fan startup voltage step
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]

  pwm_polarity:
    description: PWM polarity (positive or negative duty)
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  fan_gear_mode:
    description: FAN gear mode. Configure High speed fan setting factor
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2]

required:
  - compatible
  - reg

if:
  properties:
    compatible:
      contains:
        enum:
          - gmt,g762
          - gmt,g763
then:
  required:
    - clocks

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        g762@3e {
            compatible = "gmt,g762";
            reg = <0x3e>;
            clocks = <&g762_clk>;
            fan_gear_mode = <0>;
            fan_startv = <1>;
            pwm_polarity = <0>;
        };

        g761@1e {
            compatible = "gmt,g761";
            reg = <0x1e>;
            fan_gear_mode = <0>;
            fan_startv = <1>;
            pwm_polarity = <0>;
        };
    };
