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