Commit d7d0efaf authored by Anjelique Melendez's avatar Anjelique Melendez Committed by Lee Jones
Browse files

dt-bindings: leds: leds-qcom-lpg: Add support for LPG PPG

parent f574751c
Loading
Loading
Loading
Loading
+81 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ maintainers:

description: >
  The Qualcomm Light Pulse Generator consists of three different hardware blocks;
  a ramp generator with lookup table, the light pulse generator and a three
  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:
@@ -63,6 +63,29 @@ properties:
        - 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#
@@ -106,6 +129,32 @@ required:

additionalProperties: false

allOf:
  - 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
              - qcom,pm8550-pwm
    then:
      properties:
        nvmem:
          minItems: 2
        nvmem-names:
          minItems: 2

examples:
  - |
    #include <dt-bindings/leds/common.h>
@@ -191,4 +240,35 @@ examples:
      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";
      };
    };

...