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

title: Qualcomm Light Pulse Generator

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description: >
  The Qualcomm Light Pulse Generator consists of three different hardware blocks;
  a ramp generator with lookup table (LUT), the light pulse generator and a three
  channel current sink. These blocks are found in a wide range of Qualcomm PMICs.

properties:
  compatible:
    oneOf:
      - enum:
          - qcom,pm660l-lpg
          - qcom,pm8150b-lpg
          - qcom,pm8150l-lpg
          - qcom,pm8350c-pwm
          - qcom,pm8916-pwm
          - qcom,pm8941-lpg
          - qcom,pm8994-lpg
          - qcom,pmc8180c-lpg
          - qcom,pmi632-lpg
          - qcom,pmi8994-lpg
          - qcom,pmi8998-lpg
          - qcom,pmk8550-pwm
      - items:
          - enum:
              - qcom,pm8550-pwm
          - const: qcom,pm8350c-pwm

  "#pwm-cells":
    const: 2

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  qcom,power-source:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      power-source used to drive the output, as defined in the datasheet.
      Should be specified if the TRILED block is present
    enum: [0, 1, 3]

  qcom,dtest:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    description: >
      A list of integer pairs, where each pair represent the dtest line the
      particular channel should be connected to and the flags denoting how the
      value should be outputted, as defined in the datasheet. The number of
      pairs should be the same as the number of channels.
    items:
      items:
        - description: dtest line to attach
        - description: flags for the attachment

  nvmem:
    description: >
      This property is required for PMICs that supports PPG, which is when a
      PMIC stores LPG per-channel data and pattern LUT in SDAM modules instead
      of in a LUT peripheral. For PMICs, such as PM8350C, per-channel data
      and pattern LUT is separated into 2 SDAM modules. In that case, phandles
      to both SDAM modules need to be specified.
    minItems: 1
    maxItems: 2

  nvmem-names:
    minItems: 1
    items:
      - const: lpg_chan_sdam
      - const: lut_sdam

  qcom,pbs:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: >
      Phandle of the Qualcomm Programmable Boot Sequencer node (PBS).
      PBS node is used to trigger LPG pattern sequences for PMICs that support
      single SDAM PPG.

  multi-led:
    type: object
    $ref: leds-class-multicolor.yaml#
    unevaluatedProperties: false

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^led@[0-9a-f]$":
        type: object
        $ref: common.yaml#
        unevaluatedProperties: false

        properties:
          reg:
            maxItems: 1

        required:
          - reg

patternProperties:
  "^led@[0-9a-f]$":
    type: object
    $ref: common.yaml#
    unevaluatedProperties: false

    properties:
      reg:
        maxItems: 1

    required:
      - reg

required:
  - compatible

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pm660l-lpg
              - qcom,pm8150b-lpg
              - qcom,pm8150l-lpg
              - qcom,pm8916-pwm
              - qcom,pm8941-lpg
              - qcom,pm8994-lpg
              - qcom,pmc8180c-lpg
              - qcom,pmi8994-lpg
              - qcom,pmi8998-lpg
              - qcom,pmk8550-pwm
    then:
      properties:
        nvmem: false
        nvmem-names: false

  - if:
      properties:
        compatible:
          contains:
            const: qcom,pmi632-lpg
    then:
      properties:
        nvmem:
          maxItems: 1
        nvmem-names:
          maxItems: 1

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pm8350c-pwm
    then:
      properties:
        nvmem:
          minItems: 2
        nvmem-names:
          minItems: 2

examples:
  - |
    #include <dt-bindings/leds/common.h>

    led-controller {
      compatible = "qcom,pmi8994-lpg";

      #address-cells = <1>;
      #size-cells = <0>;

      qcom,power-source = <1>;

      qcom,dtest = <0 0>,
                   <0 0>,
                   <0 0>,
                   <4 1>;

      led@1 {
        reg = <1>;
        color = <LED_COLOR_ID_GREEN>;
        function = LED_FUNCTION_INDICATOR;
        function-enumerator = <1>;
      };

      led@2 {
        reg = <2>;
        color = <LED_COLOR_ID_GREEN>;
        function = LED_FUNCTION_INDICATOR;
        function-enumerator = <0>;
        default-state = "on";
      };

      led@3 {
        reg = <3>;
        color = <LED_COLOR_ID_GREEN>;
        function = LED_FUNCTION_INDICATOR;
        function-enumerator = <2>;
      };

      led@4 {
        reg = <4>;
        color = <LED_COLOR_ID_GREEN>;
        function = LED_FUNCTION_INDICATOR;
        function-enumerator = <3>;
      };
    };
  - |
    #include <dt-bindings/leds/common.h>

    led-controller {
      compatible = "qcom,pmi8994-lpg";

      #address-cells = <1>;
      #size-cells = <0>;

      qcom,power-source = <1>;

      multi-led {
        color = <LED_COLOR_ID_RGB>;
        function = LED_FUNCTION_STATUS;

        #address-cells = <1>;
        #size-cells = <0>;

        led@1 {
          reg = <1>;
          color = <LED_COLOR_ID_RED>;
        };

        led@2 {
          reg = <2>;
          color = <LED_COLOR_ID_GREEN>;
        };

        led@3 {
          reg = <3>;
          color = <LED_COLOR_ID_BLUE>;
        };
      };
    };
  - |
    pwm-controller {
      compatible = "qcom,pm8916-pwm";
      #pwm-cells = <2>;
    };
  - |
    #include <dt-bindings/leds/common.h>

    led-controller {
      compatible = "qcom,pmi632-lpg";
      #address-cells = <1>;
      #size-cells = <0>;
      #pwm-cells = <2>;
      nvmem-names = "lpg_chan_sdam";
      nvmem = <&pmi632_sdam_7>;
      qcom,pbs = <&pmi632_pbs_client3>;

      led@1 {
        reg = <1>;
        color = <LED_COLOR_ID_RED>;
        label = "red";
      };

      led@2 {
        reg = <2>;
        color = <LED_COLOR_ID_GREEN>;
        label = "green";
      };

      led@3 {
        reg = <3>;
        color = <LED_COLOR_ID_BLUE>;
        label = "blue";
      };
    };

...
