# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---

$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim max6639

maintainers:
  - Naresh Solanki <naresh.solanki@9elements.com>

description: |
  The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM
  fan-speed controller.  It monitors its own temperature and one external
  diode-connected transistor or the temperatures of two external diode-connected
  transistors, typically available in CPUs, FPGAs, or GPUs.

  Datasheets:
    https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf

properties:
  compatible:
    enum:
      - maxim,max6639

  reg:
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  '#pwm-cells':
    const: 3

required:
  - compatible
  - reg

patternProperties:
  "^fan@[0-1]$":
    type: object
    description:
      Represents the two fans and their specific configuration.

    $ref: fan-common.yaml#

    unevaluatedProperties: false

    properties:
      reg:
        description:
          The fan number.

    required:
      - reg

additionalProperties: false

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

        fan1: fan-controller@10 {
            compatible = "maxim,max6639";
            reg = <0x10>;
            #address-cells = <1>;
            #size-cells = <0>;
            #pwm-cells = <3>;

            fan@0 {
                reg = <0x0>;
                pulses-per-revolution = <2>;
                max-rpm = <4000>;
                target-rpm = <1000>;
                pwms = <&fan1 0 25000 0>;
            };

            fan@1 {
                reg = <0x1>;
                pulses-per-revolution = <2>;
                max-rpm = <8000>;
                pwms = <&fan1 1 25000 0>;
            };
        };
    };
...
