cregit-Linux how code gets into the kernel

Release 4.16 include/linux/leds-lp3952.h

Directory: include/linux
/*
 *      LED driver for TI lp3952 controller
 *
 *      Copyright (C) 2016, DAQRI, LLC.
 *      Author: Tony Makkiel <tony.makkiel@daqri.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */

#ifndef LEDS_LP3952_H_

#define LEDS_LP3952_H_


#define LP3952_NAME                         "lp3952"

#define LP3952_CMD_REG_COUNT                8

#define LP3952_BRIGHT_MAX                   4

#define LP3952_LABEL_MAX_LEN                15


#define LP3952_REG_LED_CTRL                 0x00

#define LP3952_REG_R1_BLNK_TIME_CTRL        0x01

#define LP3952_REG_R1_BLNK_CYCLE_CTRL       0x02

#define LP3952_REG_G1_BLNK_TIME_CTRL        0x03

#define LP3952_REG_G1_BLNK_CYCLE_CTRL       0x04

#define LP3952_REG_B1_BLNK_TIME_CTRL        0x05

#define LP3952_REG_B1_BLNK_CYCLE_CTRL       0x06

#define LP3952_REG_ENABLES                  0x0B

#define LP3952_REG_PAT_GEN_CTRL             0x11

#define LP3952_REG_RGB1_MAX_I_CTRL          0x12

#define LP3952_REG_RGB2_MAX_I_CTRL          0x13

#define LP3952_REG_CMD_0                    0x50

#define LP3952_REG_RESET                    0x60

#define REG_MAX                             LP3952_REG_RESET


#define LP3952_PATRN_LOOP                   BIT(1)

#define LP3952_PATRN_GEN_EN                 BIT(2)

#define LP3952_INT_B00ST_LDR                BIT(2)

#define LP3952_ACTIVE_MODE                  BIT(6)

#define LP3952_LED_MASK_ALL                 0x3f

/* Transition Time in ms */

enum lp3952_tt {
	
TT0,
	
TT55,
	
TT110,
	
TT221,
	
TT422,
	
TT885,
	
TT1770,
	
TT3539
};

/* Command Execution Time in ms */

enum lp3952_cet {
	
CET197,
	
CET393,
	
CET590,
	
CET786,
	
CET1180,
	
CET1376,
	
CET1573,
	
CET1769,
	
CET1966,
	
CET2163,
	
CET2359,
	
CET2556,
	
CET2763,
	
CET2949,
	
CET3146
};

/* Max Current in % */

enum lp3952_colour_I_log_0 {
	
I0,
	
I7,
	
I14,
	
I21,
	
I32,
	
I46,
	
I71,
	
I100
};


enum lp3952_leds {
	
LP3952_BLUE_2,
	
LP3952_GREEN_2,
	
LP3952_RED_2,
	
LP3952_BLUE_1,
	
LP3952_GREEN_1,
	
LP3952_RED_1,
	
LP3952_LED_ALL
};


struct lp3952_ctrl_hdl {
	
struct led_classdev cdev;
	
char name[LP3952_LABEL_MAX_LEN];
	
enum lp3952_leds channel;
	
void *priv;
};


struct ptrn_gen_cmd {
	
union {
		
struct {
			
u16 tt:3;
			
u16 b:3;
			
u16 cet:4;
			
u16 g:3;
			
u16 r:3;
		};
		
struct {
			
u8 lsb;
			
u8 msb;
		
} bytes;
	};

} __packed;


struct lp3952_led_array {
	
struct regmap *regmap;
	
struct i2c_client *client;
	
struct gpio_desc *enable_gpio;
	
struct lp3952_ctrl_hdl leds[LP3952_LED_ALL];
};

#endif /* LEDS_LP3952_H_ */

Overall Contributors

PersonTokensPropCommitsCommitProp
Tony Makkiel297100.00%1100.00%
Total297100.00%1100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.