| Kernel driver lp3944 |
| ==================== |
| |
| * National Semiconductor LP3944 Fun-light Chip |
| Prefix: 'lp3944' |
| Addresses scanned: None (see the Notes section below) |
| Datasheet: Publicly available at the National Semiconductor website |
| http://www.national.com/pf/LP/LP3944.html |
| |
| Authors: |
| Antonio Ospite <ospite@studenti.unina.it> |
| |
| |
| Description |
| ----------- |
| The LP3944 is a helper chip that can drive up to 8 leds, with two programmable |
| DIM modes; it could even be used as a gpio expander but this driver assumes it |
| is used as a led controller. |
| |
| The DIM modes are used to set _blink_ patterns for leds, the pattern is |
| specified supplying two parameters: |
| - period: from 0s to 1.6s |
| - duty cycle: percentage of the period the led is on, from 0 to 100 |
| |
| Setting a led in DIM0 or DIM1 mode makes it blink according to the pattern. |
| See the datasheet for details. |
| |
| LP3944 can be found on Motorola A910 smartphone, where it drives the rgb |
| leds, the camera flash light and the lcds power. |
| |
| |
| Notes |
| ----- |
| The chip is used mainly in embedded contexts, so this driver expects it is |
| registered using the i2c_board_info mechanism. |
| |
| To register the chip at address 0x60 on adapter 0, set the platform data |
| according to include/linux/leds-lp3944.h, set the i2c board info: |
| |
| static struct i2c_board_info a910_i2c_board_info[] __initdata = { |
| { |
| I2C_BOARD_INFO("lp3944", 0x60), |
| .platform_data = &a910_lp3944_leds, |
| }, |
| }; |
| |
| and register it in the platform init function |
| |
| i2c_register_board_info(0, a910_i2c_board_info, |
| ARRAY_SIZE(a910_i2c_board_info)); |