summaryrefslogtreecommitdiff
path: root/driver/led/tlc59116f.h
blob: 68ce218517bfe7b99080c6f05ff6aa9cb995d917 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* Copyright 2022 The ChromiumOS Authors.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef __CROS_EC_DRIVER_LED_TLC59116F_H
#define __CROS_EC_DRIVER_LED_TLC59116F_H

/* TLC59116F secondary address */
#define TLC59116F_ADDR0_FLAG		0x60
#define TLC59116F_ADDR1_FLAG		0x61
#define TLC59116F_ADDR2_FLAG		0x62
#define TLC59116F_ADDR3_FLAG		0x63
#define TLC59116F_ADDR4_FLAG		0x64
#define TLC59116F_ADDR5_FLAG		0x65
#define TLC59116F_ADDR6_FLAG		0x66
#define TLC59116F_ADDR7_FLAG		0x67
#define TLC59116F_ADDR8_FLAG		0x68
#define TLC59116F_ADDR9_FLAG		0x69
#define TLC59116F_ADDR10_FLAG		0x6A
#define TLC59116F_RESET			0x6B
#define TLC59116F_ADDR12_FLAG		0x6C
#define TLC59116F_ADDR13_FLAG		0x6D
#define TLC59116F_ADDR14_FLAG		0x6E
#define TLC59116F_ADDR15_FLAG		0x6F

#define TLC59116F_ROW_SIZE		1
#define TLC59116F_COL_SIZE		5
#define TLC59116F_GRID_SIZE	(TLC59116F_COL_SIZE * TLC59116F_ROW_SIZE)

/* TLC59116F registers */
#define TLC59116F_MODE1			0x00
#define TLC59116F_MODE2			0x01
#define TLC59116F_PWM0			0x02
#define TLC59116F_PWM1			0x03
#define TLC59116F_PWM2			0x04
#define TLC59116F_PWM3			0x05
#define TLC59116F_PWM4			0x06
#define TLC59116F_PWM5			0x07
#define TLC59116F_PWM6			0x08
#define TLC59116F_PWM7			0x09
#define TLC59116F_PWM8			0x0A
#define TLC59116F_PWM9			0x0B
#define TLC59116F_PWM10			0x0C
#define TLC59116F_PWM11			0x0D
#define TLC59116F_PWM12			0x0E
#define TLC59116F_PWM13			0x0F
#define TLC59116F_PWM14			0x10
#define TLC59116F_PWM15			0x11
#define TLC59116F_GRPPWM		0x12
#define TLC59116F_GRPFREQ		0x13
#define TLC59116F_LEDOUT0		0x14
#define TLC59116F_LEDOUT1		0x15
#define TLC59116F_LEDOUT2		0x16
#define TLC59116F_LEDOUT3		0x17
#define TLC59116F_SUBADR1		0x18
#define TLC59116F_SUBADR2		0x19
#define TLC59116F_SUBADR3		0x1A
#define TLC59116F_ALLCALLADR		0x1B

#define TLC59116_LEDOUT_OFF		0x00
#define TLC59116_LEDOUT_ON		0x55
#define TLC59116_LEDOUT_PWM		0xAA
#define TLC59116_LEDOUT_GROUP		0xFF

/* Auto Increment flag */
#define TLC59116_AI_NONE		0
#define TLC59116_AI_ALL		        BIT(7)
#define TLC59116_AI_BRIGHTNESS_ONLY	(BIT(7) | BIT(5))
#define TLC59116_AI_GCR_ONLY		(BIT(7) | BIT(6))

extern const struct rgbkbd_drv tlc59116f_drv;

#endif  /* __CROS_EC_DRIVER_LED_TLC59116F_H */