# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/backlight/mediatek,mt6370-backlight.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek MT6370 Backlight

maintainers:
  - ChiaEn Wu <chiaen_wu@richtek.com>

description: |
  This module is part of the MT6370 MFD device.
  The MT6370 Backlight WLED driver supports up to a 29V output voltage for
  4 channels of 8 series WLEDs. Each channel supports up to 30mA of current
  capability with 2048 current steps (11 bits, only for MT6370/MT6371) or
  16384 current steps (14 bits, only for MT6372) in exponential or linear
  mapping curves.

allOf:
  - $ref: common.yaml#

properties:
  compatible:
    enum:
      - mediatek,mt6370-backlight
      - mediatek,mt6372-backlight

  default-brightness:
    minimum: 0

  max-brightness:
    minimum: 0

  enable-gpios:
    description: External backlight 'enable' pin
    maxItems: 1

  mediatek,bled-pwm-enable:
    description: |
      Enable external PWM input for backlight dimming
    type: boolean

  mediatek,bled-pwm-hys-enable:
    description: |
      Enable the backlight input-hysteresis for PWM mode
    type: boolean

  mediatek,bled-pwm-hys-input-th-steps:
    $ref: /schemas/types.yaml#/definitions/uint8
    enum: [1, 4, 16, 64]
    description: |
      The selection of the upper and lower bounds threshold of backlight
      PWM resolution. If we choose selection 64, the variation of PWM
      resolution needs more than 64 steps.

  mediatek,bled-ovp-shutdown:
    description: |
      Enable the backlight shutdown when OVP level triggered
    type: boolean

  mediatek,bled-ovp-microvolt:
    enum: [17000000, 21000000, 25000000, 29000000]
    description: |
      Backlight OVP level selection.

  mediatek,bled-ocp-shutdown:
    description: |
      Enable the backlight shutdown when OCP level triggered.
    type: boolean

  mediatek,bled-ocp-microamp:
    enum: [900000, 1200000, 1500000, 1800000]
    description: |
      Backlight OC level selection.

  mediatek,bled-exponential-mode-enable:
    description: |
      Enable the exponential mode of backlight brightness. If this property
      is not enabled, the default is to use linear mode.
    type: boolean

  mediatek,bled-channel-use:
    $ref: /schemas/types.yaml#/definitions/uint8
    description: |
      Backlight LED channel to be used.
      Each bit mapping to:
        - 0: CH4
        - 1: CH3
        - 2: CH2
        - 3: CH1
    minimum: 1
    maximum: 15

if:
  properties:
    compatible:
      contains:
        const: mediatek,mt6372-backlight

then:
  properties:
    default-brightness:
      maximum: 16384

    max-brightness:
      maximum: 16384

else:
  properties:
    default-brightness:
      maximum: 2048

    max-brightness:
      maximum: 2048

required:
  - compatible
  - mediatek,bled-channel-use

additionalProperties: false