요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
TI LMU (Lighting Management Unit) device tree bindings
TI LMU driver supports lighting devices below.
Name Child nodes
------ ---------------------------------
LM3631 Backlight and regulator
LM3632 Backlight and regulator
LM3633 Backlight, LED and fault monitor
LM3695 Backlight
LM36274 Backlight and regulator
Required properties:
- compatible: Should be one of:
"ti,lm3631"
"ti,lm3632"
"ti,lm3633"
"ti,lm3695"
"ti,lm36274"
- reg: I2C slave address.
0x11 for LM3632
0x29 for LM3631
0x36 for LM3633
0x63 for LM3695
0x11 for LM36274
Optional properties:
- enable-gpios: A GPIO specifier for hardware enable pin.
- ramp-up-us: Current ramping from one brightness level to
the a higher brightness level.
Range from 2048 us - 117.44 s
- ramp-down-us: Current ramping from one brightness level to
the a lower brightness level.
Range from 2048 us - 117.44 s
- ti,brightness-resolution - This determines whether to use 8 bit brightness
mode or 11 bit brightness mode. If this value is
not set the device is defaulted to the preferred
8bit brightness mode per 7.3.4.1 of the data
sheet. This setting can either be in the parent
node or as part of the LED child nodes. This
is determined by the part itself if the strings
have a common brightness register or individual
brightness registers.
The values are 255 (8bit) or 2047 (11bit).
Required node:
- backlight: All LMU devices have backlight child nodes.
For the properties, please refer to [1].
Optional nodes:
- fault-monitor: Hardware fault monitoring driver for LM3633 and LM3697.
Required properties:
- compatible: Should be one of:
"ti,lm3633-fault-monitor"
- leds: LED properties for LM3633. Please refer to [2].
LED properties for LM36274. Please refer to [4].
- regulators: Regulator properties for LM3631 and LM3632.
Please refer to [3].
[1] ../leds/backlight/ti-lmu-backlight.txt
[2] ../leds/leds-lm3633.txt
[3] ../regulator/lm363x-regulator.txt
[4] ../leds/leds-lm36274.txt
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@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@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@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@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";
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
TI LMU 지원 장치
1-12TI LMU(Lighting Management Unit) driver는 아래 lighting device를 지원합니다. 각 칩은 backlight를 공통으로 가지며 일부는 regulator, LED, fault monitor를 추가로 제공합니다.
원문 표의 장치별 자식 기능을 그대로 구조화했습니다.
호환 문자열과 I2C 주소
13-26필수 `compatible`은 `ti,lm3631`, `ti,lm3632`, `ti,lm3633`, `ti,lm3695`, `ti,lm36274` 중 하나입니다. `reg`는 I2C slave address입니다.
각 호환 장치가 사용하는 주소입니다. 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`를 따릅니다.
공통 backlight와 칩별 선택 자식을 상위 LMU에서 분기합니다.
LM3631 regulator·backlight 예제
65-115LM3631은 주소 `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-160LM3632는 주소 `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-205LM3633은 주소 `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-221LM3695는 주소 `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-269LM36274는 주소 `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";
};
};
};
요약과 해설
ti-lmu.txt:1-269LM3631·LM3632·LM3633·LM3695·LM36274의 자식 기능, 주소, ramp와 실제 전원·조명 예제를 설명합니다.