156198359SMauro Carvalho Chehab==================== 256198359SMauro Carvalho ChehabKernel driver lp855x 356198359SMauro Carvalho Chehab==================== 456198359SMauro Carvalho Chehab 556198359SMauro Carvalho ChehabBacklight driver for LP855x ICs 656198359SMauro Carvalho Chehab 756198359SMauro Carvalho ChehabSupported chips: 856198359SMauro Carvalho Chehab 956198359SMauro Carvalho Chehab Texas Instruments LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and 1056198359SMauro Carvalho Chehab LP8557 1156198359SMauro Carvalho Chehab 1256198359SMauro Carvalho ChehabAuthor: Milo(Woogyom) Kim <milo.kim@ti.com> 1356198359SMauro Carvalho Chehab 1456198359SMauro Carvalho ChehabDescription 1556198359SMauro Carvalho Chehab----------- 1656198359SMauro Carvalho Chehab 1756198359SMauro Carvalho Chehab* Brightness control 1856198359SMauro Carvalho Chehab 1956198359SMauro Carvalho Chehab Brightness can be controlled by the pwm input or the i2c command. 2056198359SMauro Carvalho Chehab The lp855x driver supports both cases. 2156198359SMauro Carvalho Chehab 2256198359SMauro Carvalho Chehab* Device attributes 2356198359SMauro Carvalho Chehab 2456198359SMauro Carvalho Chehab 1) bl_ctl_mode 2556198359SMauro Carvalho Chehab 2656198359SMauro Carvalho Chehab Backlight control mode. 2756198359SMauro Carvalho Chehab 2856198359SMauro Carvalho Chehab Value: pwm based or register based 2956198359SMauro Carvalho Chehab 3056198359SMauro Carvalho Chehab 2) chip_id 3156198359SMauro Carvalho Chehab 3256198359SMauro Carvalho Chehab The lp855x chip id. 3356198359SMauro Carvalho Chehab 3456198359SMauro Carvalho Chehab Value: lp8550/lp8551/lp8552/lp8553/lp8555/lp8556/lp8557 3556198359SMauro Carvalho Chehab 3656198359SMauro Carvalho ChehabPlatform data for lp855x 3756198359SMauro Carvalho Chehab------------------------ 3856198359SMauro Carvalho Chehab 3956198359SMauro Carvalho ChehabFor supporting platform specific data, the lp855x platform data can be used. 4056198359SMauro Carvalho Chehab 4156198359SMauro Carvalho Chehab* name: 4256198359SMauro Carvalho Chehab Backlight driver name. If it is not defined, default name is set. 4356198359SMauro Carvalho Chehab* device_control: 4456198359SMauro Carvalho Chehab Value of DEVICE CONTROL register. 4556198359SMauro Carvalho Chehab* initial_brightness: 4656198359SMauro Carvalho Chehab Initial value of backlight brightness. 4756198359SMauro Carvalho Chehab* period_ns: 4856198359SMauro Carvalho Chehab Platform specific PWM period value. unit is nano. 4956198359SMauro Carvalho Chehab Only valid when brightness is pwm input mode. 5056198359SMauro Carvalho Chehab* size_program: 5156198359SMauro Carvalho Chehab Total size of lp855x_rom_data. 5256198359SMauro Carvalho Chehab* rom_data: 5356198359SMauro Carvalho Chehab List of new eeprom/eprom registers. 5456198359SMauro Carvalho Chehab 5556198359SMauro Carvalho ChehabExamples 5656198359SMauro Carvalho Chehab======== 5756198359SMauro Carvalho Chehab 5856198359SMauro Carvalho Chehab1) lp8552 platform data: i2c register mode with new eeprom data:: 5956198359SMauro Carvalho Chehab 6056198359SMauro Carvalho Chehab #define EEPROM_A5_ADDR 0xA5 6156198359SMauro Carvalho Chehab #define EEPROM_A5_VAL 0x4f /* EN_VSYNC=0 */ 6256198359SMauro Carvalho Chehab 6356198359SMauro Carvalho Chehab static struct lp855x_rom_data lp8552_eeprom_arr[] = { 6456198359SMauro Carvalho Chehab {EEPROM_A5_ADDR, EEPROM_A5_VAL}, 6556198359SMauro Carvalho Chehab }; 6656198359SMauro Carvalho Chehab 6756198359SMauro Carvalho Chehab static struct lp855x_platform_data lp8552_pdata = { 6856198359SMauro Carvalho Chehab .name = "lcd-bl", 6956198359SMauro Carvalho Chehab .device_control = I2C_CONFIG(LP8552), 7056198359SMauro Carvalho Chehab .initial_brightness = INITIAL_BRT, 7156198359SMauro Carvalho Chehab .size_program = ARRAY_SIZE(lp8552_eeprom_arr), 7256198359SMauro Carvalho Chehab .rom_data = lp8552_eeprom_arr, 7356198359SMauro Carvalho Chehab }; 7456198359SMauro Carvalho Chehab 7556198359SMauro Carvalho Chehab2) lp8556 platform data: pwm input mode with default rom data:: 7656198359SMauro Carvalho Chehab 7756198359SMauro Carvalho Chehab static struct lp855x_platform_data lp8556_pdata = { 7856198359SMauro Carvalho Chehab .device_control = PWM_CONFIG(LP8556), 7956198359SMauro Carvalho Chehab .initial_brightness = INITIAL_BRT, 8056198359SMauro Carvalho Chehab .period_ns = 1000000, 8156198359SMauro Carvalho Chehab }; 82