Kernel driver lp855x
====================

Backlight driver for LP855x ICs

Supported chips:
	Texas Instruments LP8550, LP8551, LP8552, LP8553 and LP8556

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/lp8556

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.
* mode : Brightness control mode. PWM or register based.
* device_control : Value of DEVICE CONTROL register.
* initial_brightness : Initial value of backlight brightness.
* pwm_data : Platform specific pwm generation functions.
	     Only valid when brightness is pwm input mode.
	     Functions should be implemented by PWM driver.
	     - pwm_set_intensity() : set duty of PWM
	     - pwm_get_intensity() : get current duty of PWM
* load_new_rom_data :
	0 : use default configuration data
	1 : update values of eeprom or eprom registers on loading driver
* size_program : Total size of lp855x_rom_data.
* rom_data : List of new eeprom/eprom registers.

example 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",
	.mode = REGISTER_BASED,
	.device_control = I2C_CONFIG(LP8552),
	.initial_brightness = INITIAL_BRT,
	.load_new_rom_data = 1,
	.size_program = ARRAY_SIZE(lp8552_eeprom_arr),
	.rom_data = lp8552_eeprom_arr,
};

example 2) lp8556 platform data : pwm input mode with default rom data

static struct lp855x_platform_data lp8556_pdata = {
	.mode = PWM_BASED,
	.device_control = PWM_CONFIG(LP8556),
	.initial_brightness = INITIAL_BRT,
	.pwm_data = {
		     .pwm_set_intensity = platform_pwm_set_intensity,
		     .pwm_get_intensity = platform_pwm_get_intensity,
		     },
};
