diff options
Diffstat (limited to 'Documentation/leds/leds-lp3944.rst')
-rw-r--r-- | Documentation/leds/leds-lp3944.rst | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Documentation/leds/leds-lp3944.rst b/Documentation/leds/leds-lp3944.rst new file mode 100644 index 0000000000..c2f87dc1a3 --- /dev/null +++ b/Documentation/leds/leds-lp3944.rst @@ -0,0 +1,59 @@ +==================== +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)); |