Documentation/driver-api/backlight/lp855x-driver.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API / Backlight

Kernel Driver LP855x

LP855x 백라이트 드라이버의 지원 칩, 밝기 제어, 장치 속성, 플랫폼 데이터와 I2C 및 PWM 예제를 설명합니다.

Source pathDocumentation/driver-api/backlight/lp855x-driver.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

lp855x-driver.rst:1-81

LP855x 백라이트 드라이버의 지원 칩, 밝기 제어, 장치 속성, 플랫폼 데이터와 I2C 및 PWM 예제를 설명합니다. 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, directive, C 코드, 함수명, 심볼, 수치, 소스 경로와 원문 줄 좌표를 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 ====================
2 Kernel driver lp855x
3 ====================
4
5 Backlight driver for LP855x ICs
6
7 Supported chips:
8
9 Texas Instruments LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and
10 LP8557
11
12 Author: Milo(Woogyom) Kim <[email protected]>
13
14 Description
15 -----------
16
17 * Brightness control
18
19 Brightness can be controlled by the pwm input or the i2c command.
20 The lp855x driver supports both cases.
21
22 * Device attributes
23
24 1) bl_ctl_mode
25
26 Backlight control mode.
27
28 Value: pwm based or register based
29
30 2) chip_id
31
32 The lp855x chip id.
33
34 Value: lp8550/lp8551/lp8552/lp8553/lp8555/lp8556/lp8557
35
36 Platform data for lp855x
37 ------------------------
38
39 For supporting platform specific data, the lp855x platform data can be used.
40
41 * name:
42 Backlight driver name. If it is not defined, default name is set.
43 * device_control:
44 Value of DEVICE CONTROL register.
45 * initial_brightness:
46 Initial value of backlight brightness.
47 * period_ns:
48 Platform specific PWM period value. unit is nano.
49 Only valid when brightness is pwm input mode.
50 * size_program:
51 Total size of lp855x_rom_data.
52 * rom_data:
53 List of new eeprom/eprom registers.
54
55 Examples
56 ========
57
58 1) lp8552 platform data: i2c register mode with new eeprom data::
59
60 #define EEPROM_A5_ADDR 0xA5
61 #define EEPROM_A5_VAL 0x4f /* EN_VSYNC=0 */
62
63 static struct lp855x_rom_data lp8552_eeprom_arr[] = {
64 {EEPROM_A5_ADDR, EEPROM_A5_VAL},
65 };
66
67 static struct lp855x_platform_data lp8552_pdata = {
68 .name = "lcd-bl",
69 .device_control = I2C_CONFIG(LP8552),
70 .initial_brightness = INITIAL_BRT,
71 .size_program = ARRAY_SIZE(lp8552_eeprom_arr),
72 .rom_data = lp8552_eeprom_arr,
73 };
74
75 2) lp8556 platform data: pwm input mode with default rom data::
76
77 static struct lp855x_platform_data lp8556_pdata = {
78 .device_control = PWM_CONFIG(LP8556),
79 .initial_brightness = INITIAL_BRT,
80 .period_ns = 1000000,
81 };
82

3. 한국어 전문 번역

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

LP855x 백라이트 드라이버

1-13

이 문서는 LP855x IC용 백라이트 드라이버를 설명합니다. 지원 칩은 Texas Instruments의 `LP8550`, `LP8551`, `LP8552`, `LP8553`, `LP8555`, `LP8556`, `LP8557`입니다.

저자는 Milo(Woogyom) Kim `<[email protected]>`입니다.

밝기 제어와 장치 속성

14-35

밝기는 PWM 입력이나 I2C 명령으로 제어할 수 있으며, `lp855x` 드라이버는 두 방식을 모두 지원합니다.

장치 속성 `bl_ctl_mode`는 백라이트 제어 모드를 나타냅니다. 값은 PWM 기반 또는 레지스터 기반입니다.

장치 속성 `chip_id`는 LP855x 칩 ID를 나타냅니다. 가능한 값은 `lp8550`, `lp8551`, `lp8552`, `lp8553`, `lp8555`, `lp8556`, `lp8557`입니다.

LP855x 플랫폼 데이터

36-54

플랫폼 고유 데이터를 지원하기 위해 LP855x 플랫폼 데이터를 사용할 수 있습니다.

`name`은 백라이트 드라이버 이름이며 정의하지 않으면 기본 이름을 설정합니다. `device_control`은 `DEVICE CONTROL` 레지스터 값이고, `initial_brightness`는 백라이트의 초기 밝기 값입니다.

`period_ns`는 플랫폼 고유 PWM 주기 값이며 단위는 나노초입니다. 밝기를 PWM 입력 모드로 제어할 때만 유효합니다.

`size_program`은 `lp855x_rom_data`의 전체 크기이고, `rom_data`는 새 EEPROM 또는 EPROM 레지스터 목록입니다.

LP8552 I2C 레지스터 모드 예

55-74

첫 번째 예제는 새 EEPROM 데이터를 사용하는 LP8552 플랫폼 데이터입니다. I2C 레지스터 모드로 동작하며 주소 `0xA5`에 값 `0x4f`를 기록해 `EN_VSYNC=0`으로 설정합니다.

#define EEPROM_A5_ADDR        0xA5
#define EEPROM_A5_VAL        0x4f        /* EN_VSYNC=0 */

static struct lp855x_rom_data lp8552_eeprom_arr[] = {
    {EEPROM_A5_ADDR, EEPROM_A5_VAL},
};

static struct lp855x_platform_data lp8552_pdata = {
    .name = "lcd-bl",
    .device_control = I2C_CONFIG(LP8552),
    .initial_brightness = INITIAL_BRT,
    .size_program = ARRAY_SIZE(lp8552_eeprom_arr),
    .rom_data = lp8552_eeprom_arr,
};

LP8556 PWM 입력 모드 예

75-81

두 번째 예제는 기본 ROM 데이터를 사용하는 LP8556 플랫폼 데이터입니다. `PWM_CONFIG(LP8556)`를 선택하고 초기 밝기와 `1000000`나노초의 PWM 주기를 설정합니다.

static struct lp855x_platform_data lp8556_pdata = {
    .device_control = PWM_CONFIG(LP8556),
    .initial_brightness = INITIAL_BRT,
    .period_ns = 1000000,
};