← Documents Documentation/devicetree/bindings/mfd/ti-lmu.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

TI Lighting Management Unit

TI LMU 계열의 backlight·regulator·LED·fault monitor와 brightness 설정 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mfd/ti-lmu.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

ti-lmu.txt:1-269

LM3631·LM3632·LM3633·LM3695·LM36274의 자식 기능, 주소, ramp와 실제 전원·조명 예제를 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 TI LMU (Lighting Management Unit) device tree bindings
2
3 TI LMU driver supports lighting devices below.
4
5 Name Child nodes
6 ------ ---------------------------------
7 LM3631 Backlight and regulator
8 LM3632 Backlight and regulator
9 LM3633 Backlight, LED and fault monitor
10 LM3695 Backlight
11 LM36274 Backlight and regulator
12
13 Required properties:
14 - compatible: Should be one of:
15 "ti,lm3631"
16 "ti,lm3632"
17 "ti,lm3633"
18 "ti,lm3695"
19 "ti,lm36274"
20 - reg: I2C slave address.
21 0x11 for LM3632
22 0x29 for LM3631
23 0x36 for LM3633
24 0x63 for LM3695
25 0x11 for LM36274
26
27 Optional properties:
28 - enable-gpios: A GPIO specifier for hardware enable pin.
29 - ramp-up-us: Current ramping from one brightness level to
30 the a higher brightness level.
31 Range from 2048 us - 117.44 s
32 - ramp-down-us: Current ramping from one brightness level to
33 the a lower brightness level.
34 Range from 2048 us - 117.44 s
35 - ti,brightness-resolution - This determines whether to use 8 bit brightness
36 mode or 11 bit brightness mode. If this value is
37 not set the device is defaulted to the preferred
38 8bit brightness mode per 7.3.4.1 of the data
39 sheet. This setting can either be in the parent
40 node or as part of the LED child nodes. This
41 is determined by the part itself if the strings
42 have a common brightness register or individual
43 brightness registers.
44 The values are 255 (8bit) or 2047 (11bit).
45
46 Required node:
47 - backlight: All LMU devices have backlight child nodes.
48 For the properties, please refer to [1].
49
50 Optional nodes:
51 - fault-monitor: Hardware fault monitoring driver for LM3633 and LM3697.
52 Required properties:
53 - compatible: Should be one of:
54 "ti,lm3633-fault-monitor"
55 - leds: LED properties for LM3633. Please refer to [2].
56 LED properties for LM36274. Please refer to [4].
57 - regulators: Regulator properties for LM3631 and LM3632.
58 Please refer to [3].
59
60 [1] ../leds/backlight/ti-lmu-backlight.txt
61 [2] ../leds/leds-lm3633.txt
62 [3] ../regulator/lm363x-regulator.txt
63 [4] ../leds/leds-lm36274.txt
64
65 lm3631@29 {
66 compatible = "ti,lm3631";
67 reg = <0x29>;
68
69 regulators {
70 compatible = "ti,lm363x-regulator";
71
72 vboost {
73 regulator-name = "lcd_boost";
74 regulator-min-microvolt = <4500000>;
75 regulator-max-microvolt = <6350000>;
76 regulator-always-on;
77 };
78
79 vcont {
80 regulator-name = "lcd_vcont";
81 regulator-min-microvolt = <1800000>;
82 regulator-max-microvolt = <3300000>;
83 };
84
85 voref {
86 regulator-name = "lcd_voref";
87 regulator-min-microvolt = <4000000>;
88 regulator-max-microvolt = <6000000>;
89 };
90
91 vpos {
92 regulator-name = "lcd_vpos";
93 regulator-min-microvolt = <4000000>;
94 regulator-max-microvolt = <6000000>;
95 regulator-boot-on;
96 };
97
98 vneg {
99 regulator-name = "lcd_vneg";
100 regulator-min-microvolt = <4000000>;
101 regulator-max-microvolt = <6000000>;
102 regulator-boot-on;
103 };
104 };
105
106 backlight {
107 compatible = "ti,lm3631-backlight";
108
109 lcd_bl {
110 led-sources = <0 1>;
111 ramp-up-us = <300000>;
112 };
113 };
114 };
115
116 lm3632@11 {
117 compatible = "ti,lm3632";
118 reg = <0x11>;
119
120 enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>; /* PC2 */
121
122 regulators {
123 compatible = "ti,lm363x-regulator";
124
125 enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>,
126 <&pioC 1 GPIO_ACTIVE_HIGH>;
127
128 vboost {
129 regulator-name = "lcd_boost";
130 regulator-min-microvolt = <4500000>;
131 regulator-max-microvolt = <6400000>;
132 regulator-always-on;
133 };
134
135 vpos {
136 regulator-name = "lcd_vpos";
137 regulator-min-microvolt = <4000000>;
138 regulator-max-microvolt = <6000000>;
139 };
140
141 vneg {
142 regulator-name = "lcd_vneg";
143 regulator-min-microvolt = <4000000>;
144 regulator-max-microvolt = <6000000>;
145 };
146 };
147
148 backlight {
149 compatible = "ti,lm3632-backlight";
150
151 pwms = <&pwm0 0 10000 0>; /* pwm number, period, polarity */
152 pwm-names = "lmu-backlight";
153
154 lcd {
155 led-sources = <0 1>;
156 pwm-period = <10000>;
157 };
158 };
159 };
160
161 lm3633@36 {
162 compatible = "ti,lm3633";
163 reg = <0x36>;
164
165 enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
166
167 backlight {
168 compatible = "ti,lm3633-backlight";
169
170 main {
171 label = "main_lcd";
172 led-sources = <1 2>;
173 ramp-up-us = <500000>;
174 ramp-down-us = <500000>;
175 };
176
177 front {
178 label = "front_lcd";
179 led-sources = <0>;
180 ramp-up-us = <1000000>;
181 ramp-down-us = <0>;
182 };
183 };
184
185 leds {
186 compatible = "ti,lm3633-leds";
187
188 chan1 {
189 label = "status";
190 led-sources = <1>;
191 led-max-microamp = <6000>;
192 };
193
194 chan345 {
195 label = "rgb";
196 led-sources = <3 4 5>;
197 led-max-microamp = <10000>;
198 };
199 };
200
201 fault-monitor {
202 compatible = "ti,lm3633-fault-monitor";
203 };
204 };
205
206 lm3695@63 {
207 compatible = "ti,lm3695";
208 reg = <0x63>;
209
210 enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
211
212 backlight {
213 compatible = "ti,lm3695-backlight";
214
215 lcd {
216 label = "bl";
217 led-sources = <0 1>;
218 };
219 };
220 };
221
222 lm36274@11 {
223 compatible = "ti,lm36274";
224 #address-cells = <1>;
225 #size-cells = <0>;
226 reg = <0x11>;
227
228 enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
229 regulators {
230 #address-cells = <1>;
231 #size-cells = <0>;
232 compatible = "ti,lm363x-regulator";
233
234 enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>,
235 <&pioC 1 GPIO_ACTIVE_HIGH>;
236
237 vboost {
238 regulator-name = "lcd_boost";
239 regulator-min-microvolt = <4000000>;
240 regulator-max-microvolt = <7150000>;
241 regulator-always-on;
242 };
243
244 vpos {
245 regulator-name = "lcd_vpos";
246 regulator-min-microvolt = <4000000>;
247 regulator-max-microvolt = <6500000>;
248 };
249
250 vneg {
251 regulator-name = "lcd_vneg";
252 regulator-min-microvolt = <4000000>;
253 regulator-max-microvolt = <6500000>;
254 };
255 };
256
257 backlight {
258 #address-cells = <1>;
259 #size-cells = <0>;
260 compatible = "ti,lm36274-backlight";
261
262 led@0 {
263 reg = <0>;
264 led-sources = <0 2>;
265 label = "white:backlight_cluster";
266 linux,default-trigger = "backlight";
267 };
268 };
269 };
270

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

TI LMU 지원 장치

1-12

TI LMU(Lighting Management Unit) driver는 아래 lighting device를 지원합니다. 각 칩은 backlight를 공통으로 가지며 일부는 regulator, LED, fault monitor를 추가로 제공합니다.

TI LMU 장치와 자식 노드
장치자식 노드
LM3631Backlight, regulator
LM3632Backlight, regulator
LM3633Backlight, LED, fault monitor
LM3695Backlight
LM36274Backlight, regulator

원문 표의 장치별 자식 기능을 그대로 구조화했습니다.

호환 문자열과 I2C 주소

13-26

필수 `compatible`은 `ti,lm3631`, `ti,lm3632`, `ti,lm3633`, `ti,lm3695`, `ti,lm36274` 중 하나입니다. `reg`는 I2C slave address입니다.

TI LMU I2C slave address
장치주소
LM36320x11
LM36310x29
LM36330x36
LM36950x63
LM362740x11

각 호환 장치가 사용하는 주소입니다. LM3632와 LM36274는 모두 `0x11`입니다.

Enable·ramp·밝기 해상도

27-45

선택 속성 `enable-gpios`는 hardware enable pin의 GPIO specifier입니다. `ramp-up-us`는 한 brightness level에서 더 높은 level로 current를 올리는 시간이고, `ramp-down-us`는 더 낮은 level로 내리는 시간입니다. 두 범위는 2048us부터 117.44s까지입니다.

`ti,brightness-resolution`은 8-bit brightness mode와 11-bit brightness mode 중 무엇을 사용할지 정합니다. 값을 지정하지 않으면 data sheet 7.3.4.1의 preferred 8-bit mode가 기본입니다. 허용 값은 8-bit의 255 또는 11-bit의 2047입니다.

이 설정은 parent node 또는 LED child node에 둘 수 있습니다. 문자열을 어느 위치에서 해석할지는 해당 부품이 공통 brightness register를 갖는지, 개별 brightness register를 갖는지에 따라 결정됩니다.

필수·선택 자식과 참조 바인딩

46-64

모든 LMU 장치는 필수 `backlight` 자식 노드를 가지며 속성은 `../leds/backlight/ti-lmu-backlight.txt`를 따릅니다.

선택 `fault-monitor`는 LM3633과 LM3697용 hardware fault monitoring driver이고 `compatible`은 `ti,lm3633-fault-monitor`입니다. 지원 장치 표에는 LM3695가 있지만 이 설명은 LM3697을 지칭하는 원문 차이를 그대로 보존합니다.

선택 `leds`는 LM3633과 LM36274 LED 속성을 담으며 각각 `../leds/leds-lm3633.txt`, `../leds/leds-lm36274.txt`를 따릅니다. 선택 `regulators`는 LM3631과 LM3632 regulator 속성을 담고 `../regulator/lm363x-regulator.txt`를 따릅니다.

TI LMU 자식 기능
TI LMU parentBacklight child on every device
LM3631 / LM3632 / LM36274Regulator child
LM3633 / LM36274LED child
LM3633Fault-monitor child

공통 backlight와 칩별 선택 자식을 상위 LMU에서 분기합니다.

LM3631 regulator·backlight 예제

65-115

LM3631은 주소 `0x29`를 사용합니다. regulator 자식은 4.5~6.35V always-on `vboost`, 1.8~3.3V `vcont`, 4.0~6.0V `voref`, boot-on인 4.0~6.0V `vpos`와 `vneg`를 정의합니다.

backlight 자식의 `lcd_bl`은 LED source 0과 1을 사용하고 `ramp-up-us`를 300000us로 설정합니다.

lm3631@29 {
        compatible = "ti,lm3631";
        reg = <0x29>;

        regulators {
                compatible = "ti,lm363x-regulator";

                vboost {
                        regulator-name = "lcd_boost";
                        regulator-min-microvolt = <4500000>;
                        regulator-max-microvolt = <6350000>;
                        regulator-always-on;
                };

                vcont {
                        regulator-name = "lcd_vcont";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <3300000>;
                };

                voref {
                        regulator-name = "lcd_voref";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6000000>;
                };

                vpos {
                        regulator-name = "lcd_vpos";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6000000>;
                        regulator-boot-on;
                };

                vneg {
                        regulator-name = "lcd_vneg";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6000000>;
                        regulator-boot-on;
                };
        };

        backlight {
                compatible = "ti,lm3631-backlight";

                lcd_bl {
                        led-sources = <0 1>;
                        ramp-up-us = <300000>;
                };
        };
};

LM3632 GPIO·PWM 예제

116-160

LM3632는 주소 `0x11`과 PC2 active-high enable GPIO를 사용합니다. regulator enable에는 PC0과 PC1을 연결하고 4.5~6.4V always-on `vboost`, 4.0~6.0V `vpos`와 `vneg`를 정의합니다.

backlight는 PWM0 channel 0, period 10000, polarity 0과 이름 `lmu-backlight`를 사용합니다. `lcd`는 LED source 0·1과 `pwm-period = <10000>`을 지정합니다.

lm3632@11 {
        compatible = "ti,lm3632";
        reg = <0x11>;

        enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>; /* PC2 */

        regulators {
                compatible = "ti,lm363x-regulator";

                enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>,
                               <&pioC 1 GPIO_ACTIVE_HIGH>;

                vboost {
                        regulator-name = "lcd_boost";
                        regulator-min-microvolt = <4500000>;
                        regulator-max-microvolt = <6400000>;
                        regulator-always-on;
                };

                vpos {
                        regulator-name = "lcd_vpos";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6000000>;
                };

                vneg {
                        regulator-name = "lcd_vneg";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6000000>;
                };
        };

        backlight {
                compatible = "ti,lm3632-backlight";

                pwms = <&pwm0 0 10000 0>; /* pwm number, period, polarity */
                pwm-names = "lmu-backlight";

                lcd {
                        led-sources = <0 1>;
                        pwm-period = <10000>;
                };
        };
};

LM3633 dual backlight·LED·fault 예제

161-205

LM3633은 주소 `0x36`과 active-high enable GPIO를 사용합니다. `main_lcd`는 LED source 1·2와 500000us ramp-up/down을, `front_lcd`는 source 0과 1000000us ramp-up 및 0us ramp-down을 사용합니다.

LED 자식에서 `status` channel은 source 1과 최대 6000uA, `rgb` channel은 source 3·4·5와 최대 10000uA를 지정합니다. `fault-monitor`는 `ti,lm3633-fault-monitor`입니다.

lm3633@36 {
        compatible = "ti,lm3633";
        reg = <0x36>;

        enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

        backlight {
                compatible = "ti,lm3633-backlight";

                main {
                        label = "main_lcd";
                        led-sources = <1 2>;
                        ramp-up-us = <500000>;
                        ramp-down-us = <500000>;
                };

                front {
                        label = "front_lcd";
                        led-sources = <0>;
                        ramp-up-us = <1000000>;
                        ramp-down-us = <0>;
                };
        };

        leds {
                compatible = "ti,lm3633-leds";

                chan1 {
                        label = "status";
                        led-sources = <1>;
                        led-max-microamp = <6000>;
                };

                chan345 {
                        label = "rgb";
                        led-sources = <3 4 5>;
                        led-max-microamp = <10000>;
                };
        };

        fault-monitor {
                compatible = "ti,lm3633-fault-monitor";
        };
};

LM3695 backlight 예제

206-221

LM3695는 주소 `0x63`과 active-high enable GPIO를 사용합니다. `ti,lm3695-backlight` 자식의 `lcd`는 label `bl`과 LED source 0·1을 갖습니다.

lm3695@63 {
        compatible = "ti,lm3695";
        reg = <0x63>;

        enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

        backlight {
                compatible = "ti,lm3695-backlight";

                lcd {
                        label = "bl";
                        led-sources = <0 1>;
                };
        };
};

LM36274 regulator·backlight cluster 예제

222-269

LM36274는 주소 `0x11`, 한 cell 자식 주소, zero cell 크기와 active-high enable GPIO를 사용합니다. regulator 자식은 PC0·PC1 enable GPIO, 4.0~7.15V always-on `vboost`, 4.0~6.5V `vpos`와 `vneg`를 정의합니다.

backlight 자식의 `led@0`은 `reg = <0>`, LED source 0·2, label `white:backlight_cluster`, 기본 trigger `backlight`를 사용합니다.

lm36274@11 {
        compatible = "ti,lm36274";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0x11>;

        enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
        regulators {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "ti,lm363x-regulator";

                enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>,
                               <&pioC 1 GPIO_ACTIVE_HIGH>;

                vboost {
                        regulator-name = "lcd_boost";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <7150000>;
                        regulator-always-on;
                };

                vpos {
                        regulator-name = "lcd_vpos";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6500000>;
                };

                vneg {
                        regulator-name = "lcd_vneg";
                        regulator-min-microvolt = <4000000>;
                        regulator-max-microvolt = <6500000>;
                };
        };

        backlight {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "ti,lm36274-backlight";

                led@0 {
                        reg = <0>;
                        led-sources = <0 2>;
                        label = "white:backlight_cluster";
                        linux,default-trigger = "backlight";
                };
        };
};