]>
Commit | Line | Data |
---|---|---|
8dab9197 | 1 | ==================== |
5054d39e AO |
2 | Kernel driver lp3944 |
3 | ==================== | |
4 | ||
5 | * National Semiconductor LP3944 Fun-light Chip | |
8dab9197 | 6 | |
5054d39e | 7 | Prefix: 'lp3944' |
8dab9197 | 8 | |
5054d39e | 9 | Addresses scanned: None (see the Notes section below) |
8dab9197 MCC |
10 | |
11 | Datasheet: | |
12 | ||
13 | Publicly available at the National Semiconductor website | |
14 | http://www.national.com/pf/LP/LP3944.html | |
5054d39e AO |
15 | |
16 | Authors: | |
8dab9197 | 17 | Antonio Ospite <[email protected]> |
5054d39e AO |
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: | |
8dab9197 MCC |
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 | |
5054d39e AO |
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 | |
8dab9197 | 47 | according to include/linux/leds-lp3944.h, set the i2c board info:: |
5054d39e | 48 | |
eb967b6a | 49 | static struct i2c_board_info a910_i2c_board_info[] __initdata = { |
5054d39e AO |
50 | { |
51 | I2C_BOARD_INFO("lp3944", 0x60), | |
52 | .platform_data = &a910_lp3944_leds, | |
53 | }, | |
54 | }; | |
55 | ||
8dab9197 | 56 | and register it in the platform init function:: |
5054d39e AO |
57 | |
58 | i2c_register_board_info(0, a910_i2c_board_info, | |
59 | ARRAY_SIZE(a910_i2c_board_info)); |