Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
leds-lp5521.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/mutex.h>
#include <linux/gpio.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/ctype.h>
#include <linux/spinlock.h>
#include <linux/wait.h>
#include <linux/leds.h>
#include <linux/leds-lp5521.h>
#include <linux/workqueue.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  lp5521_engine
 
struct  lp5521_led
 
struct  lp5521_chip
 

Macros

#define LP5521_PROGRAM_LENGTH   32 /* in bytes */
 
#define LP5521_MAX_LEDS   3 /* Maximum number of LEDs */
 
#define LP5521_MAX_ENGINES   3 /* Maximum number of engines */
 
#define LP5521_ENG_MASK_BASE   0x30 /* 00110000 */
 
#define LP5521_ENG_STATUS_MASK   0x07 /* 00000111 */
 
#define LP5521_CMD_LOAD   0x15 /* 00010101 */
 
#define LP5521_CMD_RUN   0x2a /* 00101010 */
 
#define LP5521_CMD_DIRECT   0x3f /* 00111111 */
 
#define LP5521_CMD_DISABLED   0x00 /* 00000000 */
 
#define LP5521_REG_ENABLE   0x00
 
#define LP5521_REG_OP_MODE   0x01
 
#define LP5521_REG_R_PWM   0x02
 
#define LP5521_REG_G_PWM   0x03
 
#define LP5521_REG_B_PWM   0x04
 
#define LP5521_REG_R_CURRENT   0x05
 
#define LP5521_REG_G_CURRENT   0x06
 
#define LP5521_REG_B_CURRENT   0x07
 
#define LP5521_REG_CONFIG   0x08
 
#define LP5521_REG_R_CHANNEL_PC   0x09
 
#define LP5521_REG_G_CHANNEL_PC   0x0A
 
#define LP5521_REG_B_CHANNEL_PC   0x0B
 
#define LP5521_REG_STATUS   0x0C
 
#define LP5521_REG_RESET   0x0D
 
#define LP5521_REG_GPO   0x0E
 
#define LP5521_REG_R_PROG_MEM   0x10
 
#define LP5521_REG_G_PROG_MEM   0x30
 
#define LP5521_REG_B_PROG_MEM   0x50
 
#define LP5521_PROG_MEM_BASE   LP5521_REG_R_PROG_MEM
 
#define LP5521_PROG_MEM_SIZE   0x20
 
#define LP5521_REG_LED_CURRENT_BASE   LP5521_REG_R_CURRENT
 
#define LP5521_REG_LED_PWM_BASE   LP5521_REG_R_PWM
 
#define LP5521_MASTER_ENABLE   0x40 /* Chip master enable */
 
#define LP5521_LOGARITHMIC_PWM   0x80 /* Logarithmic PWM adjustment */
 
#define LP5521_EXEC_RUN   0x2A
 
#define LP5521_ENABLE_DEFAULT   (LP5521_MASTER_ENABLE | LP5521_LOGARITHMIC_PWM)
 
#define LP5521_ENABLE_RUN_PROGRAM   (LP5521_ENABLE_DEFAULT | LP5521_EXEC_RUN)
 
#define LP5521_EXT_CLK_USED   0x08
 
#define LP5521_REG_R_CURR_DEFAULT   0xAF
 
#define PATTERN_OFF   0
 
#define store_load(nr)
 
#define show_mode(nr)
 
#define store_mode(nr)
 

Functions

 store_load (1)
 
 show_mode (1)
 
 store_mode (1)
 
 MODULE_DEVICE_TABLE (i2c, lp5521_id)
 
 module_i2c_driver (lp5521_driver)
 
 MODULE_AUTHOR ("Mathias Nyman, Yuri Zaporozhets, Samu Onkalo")
 
 MODULE_DESCRIPTION ("LP5521 LED engine")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define LP5521_CMD_DIRECT   0x3f /* 00111111 */

Definition at line 48 of file leds-lp5521.c.

#define LP5521_CMD_DISABLED   0x00 /* 00000000 */

Definition at line 49 of file leds-lp5521.c.

#define LP5521_CMD_LOAD   0x15 /* 00010101 */

Definition at line 46 of file leds-lp5521.c.

#define LP5521_CMD_RUN   0x2a /* 00101010 */

Definition at line 47 of file leds-lp5521.c.

#define LP5521_ENABLE_DEFAULT   (LP5521_MASTER_ENABLE | LP5521_LOGARITHMIC_PWM)

Definition at line 84 of file leds-lp5521.c.

#define LP5521_ENABLE_RUN_PROGRAM   (LP5521_ENABLE_DEFAULT | LP5521_EXEC_RUN)

Definition at line 86 of file leds-lp5521.c.

#define LP5521_ENG_MASK_BASE   0x30 /* 00110000 */

Definition at line 43 of file leds-lp5521.c.

#define LP5521_ENG_STATUS_MASK   0x07 /* 00000111 */

Definition at line 44 of file leds-lp5521.c.

#define LP5521_EXEC_RUN   0x2A

Definition at line 83 of file leds-lp5521.c.

#define LP5521_EXT_CLK_USED   0x08

Definition at line 90 of file leds-lp5521.c.

#define LP5521_LOGARITHMIC_PWM   0x80 /* Logarithmic PWM adjustment */

Definition at line 82 of file leds-lp5521.c.

#define LP5521_MASTER_ENABLE   0x40 /* Chip master enable */

Definition at line 81 of file leds-lp5521.c.

#define LP5521_MAX_ENGINES   3 /* Maximum number of engines */

Definition at line 41 of file leds-lp5521.c.

#define LP5521_MAX_LEDS   3 /* Maximum number of LEDs */

Definition at line 40 of file leds-lp5521.c.

#define LP5521_PROG_MEM_BASE   LP5521_REG_R_PROG_MEM

Definition at line 71 of file leds-lp5521.c.

#define LP5521_PROG_MEM_SIZE   0x20

Definition at line 72 of file leds-lp5521.c.

#define LP5521_PROGRAM_LENGTH   32 /* in bytes */

Definition at line 38 of file leds-lp5521.c.

#define LP5521_REG_B_CHANNEL_PC   0x0B

Definition at line 63 of file leds-lp5521.c.

#define LP5521_REG_B_CURRENT   0x07

Definition at line 59 of file leds-lp5521.c.

#define LP5521_REG_B_PROG_MEM   0x50

Definition at line 69 of file leds-lp5521.c.

#define LP5521_REG_B_PWM   0x04

Definition at line 56 of file leds-lp5521.c.

#define LP5521_REG_CONFIG   0x08

Definition at line 60 of file leds-lp5521.c.

#define LP5521_REG_ENABLE   0x00

Definition at line 52 of file leds-lp5521.c.

#define LP5521_REG_G_CHANNEL_PC   0x0A

Definition at line 62 of file leds-lp5521.c.

#define LP5521_REG_G_CURRENT   0x06

Definition at line 58 of file leds-lp5521.c.

#define LP5521_REG_G_PROG_MEM   0x30

Definition at line 68 of file leds-lp5521.c.

#define LP5521_REG_G_PWM   0x03

Definition at line 55 of file leds-lp5521.c.

#define LP5521_REG_GPO   0x0E

Definition at line 66 of file leds-lp5521.c.

#define LP5521_REG_LED_CURRENT_BASE   LP5521_REG_R_CURRENT

Definition at line 75 of file leds-lp5521.c.

#define LP5521_REG_LED_PWM_BASE   LP5521_REG_R_PWM

Definition at line 78 of file leds-lp5521.c.

#define LP5521_REG_OP_MODE   0x01

Definition at line 53 of file leds-lp5521.c.

#define LP5521_REG_R_CHANNEL_PC   0x09

Definition at line 61 of file leds-lp5521.c.

#define LP5521_REG_R_CURR_DEFAULT   0xAF

Definition at line 93 of file leds-lp5521.c.

#define LP5521_REG_R_CURRENT   0x05

Definition at line 57 of file leds-lp5521.c.

#define LP5521_REG_R_PROG_MEM   0x10

Definition at line 67 of file leds-lp5521.c.

#define LP5521_REG_R_PWM   0x02

Definition at line 54 of file leds-lp5521.c.

#define LP5521_REG_RESET   0x0D

Definition at line 65 of file leds-lp5521.c.

#define LP5521_REG_STATUS   0x0C

Definition at line 64 of file leds-lp5521.c.

#define PATTERN_OFF   0

Definition at line 96 of file leds-lp5521.c.

#define show_mode (   nr)
Value:
static ssize_t show_engine##nr##_mode(struct device *dev, \
char *buf) \
{ \
return show_engine_mode(dev, attr, buf, nr); \
}

Definition at line 433 of file leds-lp5521.c.

#define store_load (   nr)
Value:
static ssize_t store_engine##nr##_load(struct device *dev, \
const char *buf, size_t len) \
{ \
return store_engine_load(dev, attr, buf, len, nr); \
}

Definition at line 404 of file leds-lp5521.c.

#define store_mode (   nr)
Value:
static ssize_t store_engine##nr##_mode(struct device *dev, \
const char *buf, size_t len) \
{ \
return store_engine_mode(dev, attr, buf, len, nr); \
}

Definition at line 464 of file leds-lp5521.c.

Function Documentation

MODULE_AUTHOR ( "Mathias  Nyman,
Yuri  Zaporozhets,
Samu Onkalo"   
)
MODULE_DESCRIPTION ( "LP5521 LED engine"  )
MODULE_DEVICE_TABLE ( i2c  ,
lp5521_id   
)
module_i2c_driver ( lp5521_driver  )
MODULE_LICENSE ( "GPL v2 )
show_mode ( )

Definition at line 440 of file leds-lp5521.c.

store_load ( )

Definition at line 411 of file leds-lp5521.c.

store_mode ( )

Definition at line 471 of file leds-lp5521.c.