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