xref: /OK3568_Linux_fs/kernel/include/linux/mfd/ti-lmu-register.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * TI LMU (Lighting Management Unit) Device Register Map
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright 2017 Texas Instruments
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Author: Milo Kim <milo.kim@ti.com>
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #ifndef __MFD_TI_LMU_REGISTER_H__
11*4882a593Smuzhiyun #define __MFD_TI_LMU_REGISTER_H__
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #include <linux/bitops.h>
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun /* LM3631 */
16*4882a593Smuzhiyun #define LM3631_REG_DEVCTRL			0x00
17*4882a593Smuzhiyun #define LM3631_LCD_EN_MASK			BIT(1)
18*4882a593Smuzhiyun #define LM3631_BL_EN_MASK			BIT(0)
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define LM3631_REG_BRT_LSB			0x01
21*4882a593Smuzhiyun #define LM3631_REG_BRT_MSB			0x02
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun #define LM3631_REG_BL_CFG			0x06
24*4882a593Smuzhiyun #define LM3631_BL_CHANNEL_MASK			BIT(3)
25*4882a593Smuzhiyun #define LM3631_BL_DUAL_CHANNEL			0
26*4882a593Smuzhiyun #define LM3631_BL_SINGLE_CHANNEL		BIT(3)
27*4882a593Smuzhiyun #define LM3631_MAP_MASK				BIT(5)
28*4882a593Smuzhiyun #define LM3631_EXPONENTIAL_MAP			0
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #define LM3631_REG_BRT_MODE			0x08
31*4882a593Smuzhiyun #define LM3631_MODE_MASK			(BIT(1) | BIT(2) | BIT(3))
32*4882a593Smuzhiyun #define LM3631_DEFAULT_MODE			(BIT(1) | BIT(3))
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #define LM3631_REG_SLOPE			0x09
35*4882a593Smuzhiyun #define LM3631_SLOPE_MASK			0xF0
36*4882a593Smuzhiyun #define LM3631_SLOPE_SHIFT			4
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #define LM3631_REG_LDO_CTRL1			0x0A
39*4882a593Smuzhiyun #define LM3631_EN_OREF_MASK			BIT(0)
40*4882a593Smuzhiyun #define LM3631_EN_VNEG_MASK			BIT(1)
41*4882a593Smuzhiyun #define LM3631_EN_VPOS_MASK			BIT(2)
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun #define LM3631_REG_LDO_CTRL2			0x0B
44*4882a593Smuzhiyun #define LM3631_EN_CONT_MASK			BIT(0)
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #define LM3631_REG_VOUT_CONT			0x0C
47*4882a593Smuzhiyun #define LM3631_VOUT_CONT_MASK			(BIT(6) | BIT(7))
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #define LM3631_REG_VOUT_BOOST			0x0C
50*4882a593Smuzhiyun #define LM3631_REG_VOUT_POS			0x0D
51*4882a593Smuzhiyun #define LM3631_REG_VOUT_NEG			0x0E
52*4882a593Smuzhiyun #define LM3631_REG_VOUT_OREF			0x0F
53*4882a593Smuzhiyun #define LM3631_VOUT_MASK			0x3F
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VCONT			0x0B
56*4882a593Smuzhiyun #define LM3631_ENTIME_CONT_MASK			0x70
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VOREF			0x0F
59*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VPOS			0x10
60*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VNEG			0x11
61*4882a593Smuzhiyun #define LM3631_ENTIME_MASK			0xF0
62*4882a593Smuzhiyun #define LM3631_ENTIME_SHIFT			4
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun #define LM3631_MAX_REG				0x16
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun /* LM3632 */
67*4882a593Smuzhiyun #define LM3632_REG_CONFIG1			0x02
68*4882a593Smuzhiyun #define LM3632_OVP_MASK				(BIT(5) | BIT(6) | BIT(7))
69*4882a593Smuzhiyun #define LM3632_OVP_25V				BIT(6)
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun #define LM3632_REG_CONFIG2			0x03
72*4882a593Smuzhiyun #define LM3632_SWFREQ_MASK			BIT(7)
73*4882a593Smuzhiyun #define LM3632_SWFREQ_1MHZ			BIT(7)
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun #define LM3632_REG_BRT_LSB			0x04
76*4882a593Smuzhiyun #define LM3632_REG_BRT_MSB			0x05
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun #define LM3632_REG_IO_CTRL			0x09
79*4882a593Smuzhiyun #define LM3632_PWM_MASK				BIT(6)
80*4882a593Smuzhiyun #define LM3632_I2C_MODE				0
81*4882a593Smuzhiyun #define LM3632_PWM_MODE				BIT(6)
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #define LM3632_REG_ENABLE			0x0A
84*4882a593Smuzhiyun #define LM3632_BL_EN_MASK			BIT(0)
85*4882a593Smuzhiyun #define LM3632_BL_CHANNEL_MASK			(BIT(3) | BIT(4))
86*4882a593Smuzhiyun #define LM3632_BL_SINGLE_CHANNEL			BIT(4)
87*4882a593Smuzhiyun #define LM3632_BL_DUAL_CHANNEL			BIT(3)
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun #define LM3632_REG_BIAS_CONFIG			0x0C
90*4882a593Smuzhiyun #define LM3632_EXT_EN_MASK			BIT(0)
91*4882a593Smuzhiyun #define LM3632_EN_VNEG_MASK			BIT(1)
92*4882a593Smuzhiyun #define LM3632_EN_VPOS_MASK			BIT(2)
93*4882a593Smuzhiyun 
94*4882a593Smuzhiyun #define LM3632_REG_VOUT_BOOST			0x0D
95*4882a593Smuzhiyun #define LM3632_REG_VOUT_POS			0x0E
96*4882a593Smuzhiyun #define LM3632_REG_VOUT_NEG			0x0F
97*4882a593Smuzhiyun #define LM3632_VOUT_MASK			0x3F
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun #define LM3632_MAX_REG				0x10
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun /* LM3633 */
102*4882a593Smuzhiyun #define LM3633_REG_HVLED_OUTPUT_CFG		0x10
103*4882a593Smuzhiyun #define LM3633_HVLED1_CFG_MASK			BIT(0)
104*4882a593Smuzhiyun #define LM3633_HVLED2_CFG_MASK			BIT(1)
105*4882a593Smuzhiyun #define LM3633_HVLED3_CFG_MASK			BIT(2)
106*4882a593Smuzhiyun #define LM3633_HVLED1_CFG_SHIFT			0
107*4882a593Smuzhiyun #define LM3633_HVLED2_CFG_SHIFT			1
108*4882a593Smuzhiyun #define LM3633_HVLED3_CFG_SHIFT			2
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun #define LM3633_REG_BANK_SEL			0x11
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun #define LM3633_REG_BL0_RAMP			0x12
113*4882a593Smuzhiyun #define LM3633_REG_BL1_RAMP			0x13
114*4882a593Smuzhiyun #define LM3633_BL_RAMPUP_MASK			0xF0
115*4882a593Smuzhiyun #define LM3633_BL_RAMPUP_SHIFT			4
116*4882a593Smuzhiyun #define LM3633_BL_RAMPDN_MASK			0x0F
117*4882a593Smuzhiyun #define LM3633_BL_RAMPDN_SHIFT			0
118*4882a593Smuzhiyun 
119*4882a593Smuzhiyun #define LM3633_REG_BL_RAMP_CONF			0x1B
120*4882a593Smuzhiyun #define LM3633_BL_RAMP_MASK			0x0F
121*4882a593Smuzhiyun #define LM3633_BL_RAMP_EACH			0x05
122*4882a593Smuzhiyun 
123*4882a593Smuzhiyun #define LM3633_REG_PTN0_RAMP			0x1C
124*4882a593Smuzhiyun #define LM3633_REG_PTN1_RAMP			0x1D
125*4882a593Smuzhiyun #define LM3633_PTN_RAMPUP_MASK			0x70
126*4882a593Smuzhiyun #define LM3633_PTN_RAMPUP_SHIFT			4
127*4882a593Smuzhiyun #define LM3633_PTN_RAMPDN_MASK			0x07
128*4882a593Smuzhiyun #define LM3633_PTN_RAMPDN_SHIFT			0
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun #define LM3633_REG_LED_MAPPING_MODE		0x1F
131*4882a593Smuzhiyun #define LM3633_LED_EXPONENTIAL			BIT(1)
132*4882a593Smuzhiyun 
133*4882a593Smuzhiyun #define LM3633_REG_IMAX_HVLED_A			0x20
134*4882a593Smuzhiyun #define LM3633_REG_IMAX_HVLED_B			0x21
135*4882a593Smuzhiyun #define LM3633_REG_IMAX_LVLED_BASE		0x22
136*4882a593Smuzhiyun 
137*4882a593Smuzhiyun #define LM3633_REG_BL_FEEDBACK_ENABLE		0x28
138*4882a593Smuzhiyun 
139*4882a593Smuzhiyun #define LM3633_REG_ENABLE			0x2B
140*4882a593Smuzhiyun #define LM3633_LED_BANK_OFFSET			2
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun #define LM3633_REG_PATTERN			0x2C
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun #define LM3633_REG_BOOST_CFG			0x2D
145*4882a593Smuzhiyun #define LM3633_OVP_MASK				(BIT(1) | BIT(2))
146*4882a593Smuzhiyun #define LM3633_OVP_40V				0x6
147*4882a593Smuzhiyun 
148*4882a593Smuzhiyun #define LM3633_REG_PWM_CFG			0x2F
149*4882a593Smuzhiyun #define LM3633_PWM_A_MASK			BIT(0)
150*4882a593Smuzhiyun #define LM3633_PWM_B_MASK			BIT(1)
151*4882a593Smuzhiyun 
152*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_A_LSB		0x40
153*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_A_MSB		0x41
154*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_B_LSB		0x42
155*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_B_MSB		0x43
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun #define LM3633_REG_BRT_LVLED_BASE		0x44
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun #define LM3633_REG_PTN_DELAY			0x50
160*4882a593Smuzhiyun 
161*4882a593Smuzhiyun #define LM3633_REG_PTN_LOWTIME			0x51
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun #define LM3633_REG_PTN_HIGHTIME			0x52
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun #define LM3633_REG_PTN_LOWBRT			0x53
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun #define LM3633_REG_PTN_HIGHBRT			LM3633_REG_BRT_LVLED_BASE
168*4882a593Smuzhiyun 
169*4882a593Smuzhiyun #define LM3633_REG_BL_OPEN_FAULT_STATUS		0xB0
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun #define LM3633_REG_BL_SHORT_FAULT_STATUS	0xB2
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun #define LM3633_REG_MONITOR_ENABLE		0xB4
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun #define LM3633_MAX_REG				0xB4
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun /* LM3695 */
178*4882a593Smuzhiyun #define LM3695_REG_GP				0x10
179*4882a593Smuzhiyun #define LM3695_BL_CHANNEL_MASK			BIT(3)
180*4882a593Smuzhiyun #define LM3695_BL_DUAL_CHANNEL			0
181*4882a593Smuzhiyun #define LM3695_BL_SINGLE_CHANNEL			BIT(3)
182*4882a593Smuzhiyun #define LM3695_BRT_RW_MASK			BIT(2)
183*4882a593Smuzhiyun #define LM3695_BL_EN_MASK			BIT(0)
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun #define LM3695_REG_BRT_LSB			0x13
186*4882a593Smuzhiyun #define LM3695_REG_BRT_MSB			0x14
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun #define LM3695_MAX_REG				0x14
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun /* LM36274 */
191*4882a593Smuzhiyun #define LM36274_REG_REV				0x01
192*4882a593Smuzhiyun #define LM36274_REG_BL_CFG_1			0x02
193*4882a593Smuzhiyun #define LM36274_REG_BL_CFG_2			0x03
194*4882a593Smuzhiyun #define LM36274_REG_BRT_LSB			0x04
195*4882a593Smuzhiyun #define LM36274_REG_BRT_MSB			0x05
196*4882a593Smuzhiyun #define LM36274_REG_BL_EN			0x08
197*4882a593Smuzhiyun 
198*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_1		0x09
199*4882a593Smuzhiyun #define LM36274_EXT_EN_MASK			BIT(0)
200*4882a593Smuzhiyun #define LM36274_EN_VNEG_MASK			BIT(1)
201*4882a593Smuzhiyun #define LM36274_EN_VPOS_MASK			BIT(2)
202*4882a593Smuzhiyun 
203*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_2		0x0a
204*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_3		0x0b
205*4882a593Smuzhiyun #define LM36274_REG_VOUT_BOOST			0x0c
206*4882a593Smuzhiyun #define LM36274_REG_VOUT_POS			0x0d
207*4882a593Smuzhiyun #define LM36274_REG_VOUT_NEG			0x0e
208*4882a593Smuzhiyun #define LM36274_VOUT_MASK			0x3F
209*4882a593Smuzhiyun 
210*4882a593Smuzhiyun #define LM36274_MAX_REG				0x13
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun #endif
213