.. SPDX-License-Identifier: GPL-2.0

==============================
Kernel driver for Qualcomm LPG
==============================

Description
-----------

The Qualcomm LPG can be found in a variety of Qualcomm PMICs and consists of a
number of PWM channels, a programmable pattern lookup table and a RGB LED
current sink.

To facilitate the various use cases, the LPG channels can be exposed as
individual LEDs, grouped together as RGB LEDs or otherwise be accessed as PWM
channels. The output of each PWM channel is routed to other hardware
blocks, such as the RGB current sink, GPIO pins etc.

The each PWM channel can operate with a period between 27us and 384 seconds and
has a 9 bit resolution of the duty cycle.

In order to provide support for status notifications with the CPU subsystem in
deeper idle states the LPG provides pattern support. This consists of a shared
lookup table of brightness values and per channel properties to select the
range within the table to use, the rate and if the pattern should repeat.

The pattern for a channel can be programmed using the "pattern" trigger, using
the hw_pattern attribute.

/sys/class/leds/<led>/hw_pattern
--------------------------------

Specify a hardware pattern for a Qualcomm LPG LED.

The pattern is a series of brightness and hold-time pairs, with the hold-time
expressed in milliseconds. The hold time is a property of the pattern and must
therefore be identical for each element in the pattern (except for the pauses
described below). As the LPG hardware is not able to perform the linear
transitions expected by the leds-trigger-pattern format, each entry in the
pattern must be followed a zero-length entry of the same brightness.

Simple pattern::

    "255 500 255 0 0 500 0 0"

        ^
        |
    255 +----+    +----+
        |    |    |    |      ...
      0 |    +----+    +----
        +---------------------->
        0    5   10   15     time (100ms)

The LPG supports specifying a longer hold-time for the first and last element
in the pattern, the so called "low pause" and "high pause".

Low-pause pattern::

    "255 1000 255 0 0 500 0 0 255 500 255 0 0 500 0 0"

        ^
        |
    255 +--------+    +----+    +----+    +--------+
        |        |    |    |    |    |    |        |      ...
      0 |        +----+    +----+    +----+        +----
        +----------------------------->
        0    5   10   15  20   25   time (100ms)

Similarly, the last entry can be stretched by using a higher hold-time on the
last entry.

In order to save space in the shared lookup table the LPG supports "ping-pong"
mode, in which case each run through the pattern is performed by first running
the pattern forward, then backwards. This mode is automatically used by the
driver when the given pattern is a palindrome. In this case the "high pause"
denotes the wait time before the pattern is run in reverse and as such the
specified hold-time of the middle item in the pattern is allowed to have a
different hold-time.
