summaryrefslogtreecommitdiffstats
path: root/Documentation/leds/leds-mt6370-rgb.rst
blob: abf739e448428ef4bf2b67858c7a015ea475ceb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.. 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 duty 0 to 30%.
Tr2:    Second rising time for duty 31% to 100%.
Ton:    On time for duty 100%.
Tf1:    First falling time for duty 100% to 31%.
Tf2:    Second falling time for duty 30% to 0%.
Toff:   Off time for duty 0%.

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.