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