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

title: MPS MP3309C backlight

maintainers:
  - Flavio Suligoi <f.suligoi@asem.it>

description: |
  The Monolithic Power (MPS) MP3309C is a WLED step-up converter, featuring a
  programmable switching frequency to optimize efficiency.
  It supports two different dimming modes:

  - analog mode, via I2C commands, as default mode (32 dimming levels)
  - PWM controlled mode (optional)

  The datasheet is available at:
  https://www.monolithicpower.com/en/mp3309c.html

allOf:
  - $ref: common.yaml#

properties:
  compatible:
    const: mps,mp3309c

  reg:
    maxItems: 1

  pwms:
    description: if present, the backlight is controlled in PWM mode.
    maxItems: 1

  enable-gpios:
    description: GPIO used to enable the backlight in "analog-i2c" dimming mode.
    maxItems: 1

  mps,overvoltage-protection-microvolt:
    description: Overvoltage protection (13.5V, 24V or 35.5V).
    enum: [ 13500000, 24000000, 35500000 ]
    default: 35500000

  mps,no-sync-mode:
    description: disable synchronous rectification mode
    type: boolean

required:
  - compatible
  - reg

unevaluatedProperties: false

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

        /* Backlight with PWM control */
        backlight_pwm: backlight@17 {
            compatible = "mps,mp3309c";
            reg = <0x17>;
            pwms = <&pwm1 0 3333333 0>; /* 300 Hz --> (1/f) * 1*10^9 */
            brightness-levels = <0 4 8 16 32 64 128 255>;
            default-brightness = <6>;
            mps,overvoltage-protection-microvolt = <24000000>;
        };
    };
