| .. SPDX-License-Identifier: GPL-2.0 | 
 |  | 
 | ========================================= | 
 | The device for Mediatek MT6370 RGB LED | 
 | ========================================= | 
 |  | 
 | Description | 
 | ----------- | 
 |  | 
 | The MT6370 integrates a four-channel RGB LED driver, designed to provide a | 
 | variety of lighting effect for mobile device applications. The RGB LED devices | 
 | includes a smart LED string controller and it can drive 3 channels of LEDs with | 
 | a sink current up to 24mA and a CHG_VIN power good indicator LED with sink | 
 | current up to 6mA. It provides three operation modes for RGB LEDs: | 
 | PWM Dimming mode, breath pattern mode, and constant current mode. The device | 
 | can increase or decrease the brightness of the RGB LED via an I2C interface. | 
 |  | 
 | The breath 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 breath pattern for a MT6370 RGB LED. | 
 |  | 
 | The breath pattern is a series of timing pairs, with the hold-time expressed in | 
 | milliseconds. And the brightness is controlled by | 
 | '/sys/class/leds/<led>/brightness'. The pattern doesn't include the brightness | 
 | setting. Hardware pattern only controls the timing for each pattern stage | 
 | depending on the current brightness setting. | 
 |  | 
 | Pattern diagram:: | 
 |  | 
 |          "0 Tr1 0 Tr2 0 Tf1 0 Tf2 0 Ton 0 Toff" --> '0' for dummy brightness code | 
 |  | 
 |           ^ | 
 |           |           ============ | 
 |           |          /            \                                / | 
 |     Icurr |         /              \                              / | 
 |           |        /                \                            / | 
 |           |       /                  \                          /   .....repeat | 
 |           |      /                    \                        / | 
 |           |   ---                      ---                  --- | 
 |           |---                            ---            --- | 
 |           +----------------------------------============------------> Time | 
 |           < Tr1><Tr2><   Ton    ><Tf1><Tf2 ><  Toff    >< Tr1><Tr2> | 
 |  | 
 | Timing description: | 
 |  | 
 |   * Tr1:    First rising time for 0% - 30% load. | 
 |   * Tr2:    Second rising time for 31% - 100% load. | 
 |   * Ton:    On time for 100% load. | 
 |   * Tf1:    First falling time for 100% - 31% load. | 
 |   * Tf2:    Second falling time for 30% to 0% load. | 
 |   * Toff:   Off time for 0% load. | 
 |  | 
 |   * Tr1/Tr2/Tf1/Tf2/Ton: 125ms to 3125ms, 200ms per step. | 
 |   * Toff: 250ms to 6250ms, 400ms per step. | 
 |  | 
 | Pattern example:: | 
 |  | 
 |        "0 125 0 125 0 125 0 125 0 625 0 1050" | 
 |  | 
 | This Will configure Tr1/Tr2/Tf1/Tf2 to 125m, Ton to 625ms, and Toff to 1050ms. |