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