| 1 | ====================
|
| 2 | Kernel driver lp3944
|
| 3 | ====================
|
| 4 |
|
| 5 | * National Semiconductor LP3944 Fun-light Chip
|
| 6 |
|
| 7 | Prefix: 'lp3944'
|
| 8 |
|
| 9 | Addresses scanned: None (see the Notes section below)
|
| 10 |
|
| 11 | Datasheet:
|
| 12 |
|
| 13 | Publicly available at the National Semiconductor website
|
| 14 | http://www.national.com/pf/LP/LP3944.html
|
| 15 |
|
| 16 | Authors:
|
| 17 | Antonio Ospite <[email protected]>
|
| 18 |
|
| 19 |
|
| 20 | Description
|
| 21 | -----------
|
| 22 | The LP3944 is a helper chip that can drive up to 8 leds, with two programmable
|
| 23 | DIM modes; it could even be used as a gpio expander but this driver assumes it
|
| 24 | is used as a led controller.
|
| 25 |
|
| 26 | The DIM modes are used to set _blink_ patterns for leds, the pattern is
|
| 27 | specified supplying two parameters:
|
| 28 |
|
| 29 | - period:
|
| 30 | from 0s to 1.6s
|
| 31 | - duty cycle:
|
| 32 | percentage of the period the led is on, from 0 to 100
|
| 33 |
|
| 34 | Setting a led in DIM0 or DIM1 mode makes it blink according to the pattern.
|
| 35 | See the datasheet for details.
|
| 36 |
|
| 37 | LP3944 can be found on Motorola A910 smartphone, where it drives the rgb
|
| 38 | leds, the camera flash light and the lcds power.
|
| 39 |
|
| 40 |
|
| 41 | Notes
|
| 42 | -----
|
| 43 | The chip is used mainly in embedded contexts, so this driver expects it is
|
| 44 | registered using the i2c_board_info mechanism.
|
| 45 |
|
| 46 | To register the chip at address 0x60 on adapter 0, set the platform data
|
| 47 | according to include/linux/leds-lp3944.h, set the i2c board info::
|
| 48 |
|
| 49 | static struct i2c_board_info a910_i2c_board_info[] __initdata = {
|
| 50 | {
|
| 51 | I2C_BOARD_INFO("lp3944", 0x60),
|
| 52 | .platform_data = &a910_lp3944_leds,
|
| 53 | },
|
| 54 | };
|
| 55 |
|
| 56 | and register it in the platform init function::
|
| 57 |
|
| 58 | i2c_register_board_info(0, a910_i2c_board_info,
|
| 59 | ARRAY_SIZE(a910_i2c_board_info));
|