요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
====================
Kernel driver lp855x
====================
Backlight driver for LP855x ICs
Supported chips:
Texas Instruments LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and
LP8557
Author: Milo(Woogyom) Kim <milo.kim@ti.com>
Description
-----------
* Brightness control
Brightness can be controlled by the pwm input or the i2c command.
The lp855x driver supports both cases.
* Device attributes
1) bl_ctl_mode
Backlight control mode.
Value: pwm based or register based
2) chip_id
The lp855x chip id.
Value: lp8550/lp8551/lp8552/lp8553/lp8555/lp8556/lp8557
Platform data for lp855x
------------------------
For supporting platform specific data, the lp855x platform data can be used.
* name:
Backlight driver name. If it is not defined, default name is set.
* device_control:
Value of DEVICE CONTROL register.
* initial_brightness:
Initial value of backlight brightness.
* period_ns:
Platform specific PWM period value. unit is nano.
Only valid when brightness is pwm input mode.
* size_program:
Total size of lp855x_rom_data.
* rom_data:
List of new eeprom/eprom registers.
Examples
========
1) lp8552 platform data: i2c register mode with new eeprom data::
#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,
};
2) lp8556 platform data: pwm input mode with default rom data::
static struct lp855x_platform_data lp8556_pdata = {
.device_control = PWM_CONFIG(LP8556),
.initial_brightness = INITIAL_BRT,
.period_ns = 1000000,
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
LP855x 백라이트 드라이버
1-13이 문서는 LP855x IC용 백라이트 드라이버를 설명합니다. 지원 칩은 Texas Instruments의 `LP8550`, `LP8551`, `LP8552`, `LP8553`, `LP8555`, `LP8556`, `LP8557`입니다.
저자는 Milo(Woogyom) Kim `<milo.kim@ti.com>`입니다.
밝기 제어와 장치 속성
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,
};
요약과 해설
lp855x-driver.rst:1-81LP855x 백라이트 드라이버의 지원 칩, 밝기 제어, 장치 속성, 플랫폼 데이터와 I2C 및 PWM 예제를 설명합니다. 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, directive, C 코드, 함수명, 심볼, 수치, 소스 경로와 원문 줄 좌표를 보존합니다.