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