xref: /OK3568_Linux_fs/kernel/include/linux/mfd/palmas.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * TI Palmas
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright 2011-2013 Texas Instruments Inc.
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Author: Graeme Gregory <gg@slimlogic.co.uk>
8*4882a593Smuzhiyun  * Author: Ian Lartey <ian@slimlogic.co.uk>
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #ifndef __LINUX_MFD_PALMAS_H
12*4882a593Smuzhiyun #define __LINUX_MFD_PALMAS_H
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #include <linux/usb/otg.h>
15*4882a593Smuzhiyun #include <linux/leds.h>
16*4882a593Smuzhiyun #include <linux/regmap.h>
17*4882a593Smuzhiyun #include <linux/regulator/driver.h>
18*4882a593Smuzhiyun #include <linux/extcon-provider.h>
19*4882a593Smuzhiyun #include <linux/of_gpio.h>
20*4882a593Smuzhiyun #include <linux/usb/phy_companion.h>
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #define PALMAS_NUM_CLIENTS		3
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /* The ID_REVISION NUMBERS */
25*4882a593Smuzhiyun #define PALMAS_CHIP_OLD_ID		0x0000
26*4882a593Smuzhiyun #define PALMAS_CHIP_ID			0xC035
27*4882a593Smuzhiyun #define PALMAS_CHIP_CHARGER_ID		0xC036
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define TPS65917_RESERVED		-1
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define is_palmas(a)	(((a) == PALMAS_CHIP_OLD_ID) || \
32*4882a593Smuzhiyun 			((a) == PALMAS_CHIP_ID))
33*4882a593Smuzhiyun #define is_palmas_charger(a) ((a) == PALMAS_CHIP_CHARGER_ID)
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /**
36*4882a593Smuzhiyun  * Palmas PMIC feature types
37*4882a593Smuzhiyun  *
38*4882a593Smuzhiyun  * PALMAS_PMIC_FEATURE_SMPS10_BOOST - used when the PMIC provides SMPS10_BOOST
39*4882a593Smuzhiyun  *	regulator.
40*4882a593Smuzhiyun  *
41*4882a593Smuzhiyun  * PALMAS_PMIC_HAS(b, f) - macro to check if a bandgap device is capable of a
42*4882a593Smuzhiyun  *	specific feature (above) or not. Return non-zero, if yes.
43*4882a593Smuzhiyun  */
44*4882a593Smuzhiyun #define PALMAS_PMIC_FEATURE_SMPS10_BOOST	BIT(0)
45*4882a593Smuzhiyun #define PALMAS_PMIC_HAS(b, f)			\
46*4882a593Smuzhiyun 			((b)->features & PALMAS_PMIC_FEATURE_ ## f)
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun struct palmas_pmic;
49*4882a593Smuzhiyun struct palmas_gpadc;
50*4882a593Smuzhiyun struct palmas_resource;
51*4882a593Smuzhiyun struct palmas_usb;
52*4882a593Smuzhiyun struct palmas_pmic_driver_data;
53*4882a593Smuzhiyun struct palmas_pmic_platform_data;
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun enum palmas_usb_state {
56*4882a593Smuzhiyun 	PALMAS_USB_STATE_DISCONNECT,
57*4882a593Smuzhiyun 	PALMAS_USB_STATE_VBUS,
58*4882a593Smuzhiyun 	PALMAS_USB_STATE_ID,
59*4882a593Smuzhiyun };
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun struct palmas {
62*4882a593Smuzhiyun 	struct device *dev;
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun 	struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS];
65*4882a593Smuzhiyun 	struct regmap *regmap[PALMAS_NUM_CLIENTS];
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun 	/* Stored chip id */
68*4882a593Smuzhiyun 	int id;
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun 	unsigned int features;
71*4882a593Smuzhiyun 	/* IRQ Data */
72*4882a593Smuzhiyun 	int irq;
73*4882a593Smuzhiyun 	u32 irq_mask;
74*4882a593Smuzhiyun 	struct mutex irq_lock;
75*4882a593Smuzhiyun 	struct regmap_irq_chip_data *irq_data;
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun 	struct palmas_pmic_driver_data *pmic_ddata;
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun 	/* Child Devices */
80*4882a593Smuzhiyun 	struct palmas_pmic *pmic;
81*4882a593Smuzhiyun 	struct palmas_gpadc *gpadc;
82*4882a593Smuzhiyun 	struct palmas_resource *resource;
83*4882a593Smuzhiyun 	struct palmas_usb *usb;
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun 	/* GPIO MUXing */
86*4882a593Smuzhiyun 	u8 gpio_muxed;
87*4882a593Smuzhiyun 	u8 led_muxed;
88*4882a593Smuzhiyun 	u8 pwm_muxed;
89*4882a593Smuzhiyun };
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun #define PALMAS_EXT_REQ (PALMAS_EXT_CONTROL_ENABLE1 |	\
92*4882a593Smuzhiyun 			PALMAS_EXT_CONTROL_ENABLE2 |	\
93*4882a593Smuzhiyun 			PALMAS_EXT_CONTROL_NSLEEP)
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun struct palmas_sleep_requestor_info {
96*4882a593Smuzhiyun 	int id;
97*4882a593Smuzhiyun 	int reg_offset;
98*4882a593Smuzhiyun 	int bit_pos;
99*4882a593Smuzhiyun };
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun struct palmas_regs_info {
102*4882a593Smuzhiyun 	char	*name;
103*4882a593Smuzhiyun 	char	*sname;
104*4882a593Smuzhiyun 	u8	vsel_addr;
105*4882a593Smuzhiyun 	u8	ctrl_addr;
106*4882a593Smuzhiyun 	u8	tstep_addr;
107*4882a593Smuzhiyun 	int	sleep_id;
108*4882a593Smuzhiyun };
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun struct palmas_pmic_driver_data {
111*4882a593Smuzhiyun 	int smps_start;
112*4882a593Smuzhiyun 	int smps_end;
113*4882a593Smuzhiyun 	int ldo_begin;
114*4882a593Smuzhiyun 	int ldo_end;
115*4882a593Smuzhiyun 	int max_reg;
116*4882a593Smuzhiyun 	bool has_regen3;
117*4882a593Smuzhiyun 	struct palmas_regs_info *palmas_regs_info;
118*4882a593Smuzhiyun 	struct of_regulator_match *palmas_matches;
119*4882a593Smuzhiyun 	struct palmas_sleep_requestor_info *sleep_req_info;
120*4882a593Smuzhiyun 	int (*smps_register)(struct palmas_pmic *pmic,
121*4882a593Smuzhiyun 			     struct palmas_pmic_driver_data *ddata,
122*4882a593Smuzhiyun 			     struct palmas_pmic_platform_data *pdata,
123*4882a593Smuzhiyun 			     const char *pdev_name,
124*4882a593Smuzhiyun 			     struct regulator_config config);
125*4882a593Smuzhiyun 	int (*ldo_register)(struct palmas_pmic *pmic,
126*4882a593Smuzhiyun 			    struct palmas_pmic_driver_data *ddata,
127*4882a593Smuzhiyun 			    struct palmas_pmic_platform_data *pdata,
128*4882a593Smuzhiyun 			    const char *pdev_name,
129*4882a593Smuzhiyun 			    struct regulator_config config);
130*4882a593Smuzhiyun };
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun struct palmas_adc_wakeup_property {
133*4882a593Smuzhiyun 	int adc_channel_number;
134*4882a593Smuzhiyun 	int adc_high_threshold;
135*4882a593Smuzhiyun 	int adc_low_threshold;
136*4882a593Smuzhiyun };
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun struct palmas_gpadc_platform_data {
139*4882a593Smuzhiyun 	/* Channel 3 current source is only enabled during conversion */
140*4882a593Smuzhiyun 	int ch3_current;	/* 0: off; 1: 10uA; 2: 400uA; 3: 800 uA */
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun 	/* Channel 0 current source can be used for battery detection.
143*4882a593Smuzhiyun 	 * If used for battery detection this will cause a permanent current
144*4882a593Smuzhiyun 	 * consumption depending on current level set here.
145*4882a593Smuzhiyun 	 */
146*4882a593Smuzhiyun 	int ch0_current;	/* 0: off; 1: 5uA; 2: 15uA; 3: 20 uA */
147*4882a593Smuzhiyun 	bool extended_delay;	/* use extended delay for conversion */
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun 	/* default BAT_REMOVAL_DAT setting on device probe */
150*4882a593Smuzhiyun 	int bat_removal;
151*4882a593Smuzhiyun 
152*4882a593Smuzhiyun 	/* Sets the START_POLARITY bit in the RT_CTRL register */
153*4882a593Smuzhiyun 	int start_polarity;
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun 	int auto_conversion_period_ms;
156*4882a593Smuzhiyun 	struct palmas_adc_wakeup_property *adc_wakeup1_data;
157*4882a593Smuzhiyun 	struct palmas_adc_wakeup_property *adc_wakeup2_data;
158*4882a593Smuzhiyun };
159*4882a593Smuzhiyun 
160*4882a593Smuzhiyun struct palmas_reg_init {
161*4882a593Smuzhiyun 	/* warm_rest controls the voltage levels after a warm reset
162*4882a593Smuzhiyun 	 *
163*4882a593Smuzhiyun 	 * 0: reload default values from OTP on warm reset
164*4882a593Smuzhiyun 	 * 1: maintain voltage from VSEL on warm reset
165*4882a593Smuzhiyun 	 */
166*4882a593Smuzhiyun 	int warm_reset;
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun 	/* roof_floor controls whether the regulator uses the i2c style
169*4882a593Smuzhiyun 	 * of DVS or uses the method where a GPIO or other control method is
170*4882a593Smuzhiyun 	 * attached to the NSLEEP/ENABLE1/ENABLE2 pins
171*4882a593Smuzhiyun 	 *
172*4882a593Smuzhiyun 	 * For SMPS
173*4882a593Smuzhiyun 	 *
174*4882a593Smuzhiyun 	 * 0: i2c selection of voltage
175*4882a593Smuzhiyun 	 * 1: pin selection of voltage.
176*4882a593Smuzhiyun 	 *
177*4882a593Smuzhiyun 	 * For LDO unused
178*4882a593Smuzhiyun 	 */
179*4882a593Smuzhiyun 	int roof_floor;
180*4882a593Smuzhiyun 
181*4882a593Smuzhiyun 	/* sleep_mode is the mode loaded to MODE_SLEEP bits as defined in
182*4882a593Smuzhiyun 	 * the data sheet.
183*4882a593Smuzhiyun 	 *
184*4882a593Smuzhiyun 	 * For SMPS
185*4882a593Smuzhiyun 	 *
186*4882a593Smuzhiyun 	 * 0: Off
187*4882a593Smuzhiyun 	 * 1: AUTO
188*4882a593Smuzhiyun 	 * 2: ECO
189*4882a593Smuzhiyun 	 * 3: Forced PWM
190*4882a593Smuzhiyun 	 *
191*4882a593Smuzhiyun 	 * For LDO
192*4882a593Smuzhiyun 	 *
193*4882a593Smuzhiyun 	 * 0: Off
194*4882a593Smuzhiyun 	 * 1: On
195*4882a593Smuzhiyun 	 */
196*4882a593Smuzhiyun 	int mode_sleep;
197*4882a593Smuzhiyun 
198*4882a593Smuzhiyun 	/* voltage_sel is the bitfield loaded onto the SMPSX_VOLTAGE
199*4882a593Smuzhiyun 	 * register. Set this is the default voltage set in OTP needs
200*4882a593Smuzhiyun 	 * to be overridden.
201*4882a593Smuzhiyun 	 */
202*4882a593Smuzhiyun 	u8 vsel;
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun };
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun enum palmas_regulators {
207*4882a593Smuzhiyun 	/* SMPS regulators */
208*4882a593Smuzhiyun 	PALMAS_REG_SMPS12,
209*4882a593Smuzhiyun 	PALMAS_REG_SMPS123,
210*4882a593Smuzhiyun 	PALMAS_REG_SMPS3,
211*4882a593Smuzhiyun 	PALMAS_REG_SMPS45,
212*4882a593Smuzhiyun 	PALMAS_REG_SMPS457,
213*4882a593Smuzhiyun 	PALMAS_REG_SMPS6,
214*4882a593Smuzhiyun 	PALMAS_REG_SMPS7,
215*4882a593Smuzhiyun 	PALMAS_REG_SMPS8,
216*4882a593Smuzhiyun 	PALMAS_REG_SMPS9,
217*4882a593Smuzhiyun 	PALMAS_REG_SMPS10_OUT2,
218*4882a593Smuzhiyun 	PALMAS_REG_SMPS10_OUT1,
219*4882a593Smuzhiyun 	/* LDO regulators */
220*4882a593Smuzhiyun 	PALMAS_REG_LDO1,
221*4882a593Smuzhiyun 	PALMAS_REG_LDO2,
222*4882a593Smuzhiyun 	PALMAS_REG_LDO3,
223*4882a593Smuzhiyun 	PALMAS_REG_LDO4,
224*4882a593Smuzhiyun 	PALMAS_REG_LDO5,
225*4882a593Smuzhiyun 	PALMAS_REG_LDO6,
226*4882a593Smuzhiyun 	PALMAS_REG_LDO7,
227*4882a593Smuzhiyun 	PALMAS_REG_LDO8,
228*4882a593Smuzhiyun 	PALMAS_REG_LDO9,
229*4882a593Smuzhiyun 	PALMAS_REG_LDOLN,
230*4882a593Smuzhiyun 	PALMAS_REG_LDOUSB,
231*4882a593Smuzhiyun 	/* External regulators */
232*4882a593Smuzhiyun 	PALMAS_REG_REGEN1,
233*4882a593Smuzhiyun 	PALMAS_REG_REGEN2,
234*4882a593Smuzhiyun 	PALMAS_REG_REGEN3,
235*4882a593Smuzhiyun 	PALMAS_REG_SYSEN1,
236*4882a593Smuzhiyun 	PALMAS_REG_SYSEN2,
237*4882a593Smuzhiyun 	/* Total number of regulators */
238*4882a593Smuzhiyun 	PALMAS_NUM_REGS,
239*4882a593Smuzhiyun };
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun enum tps65917_regulators {
242*4882a593Smuzhiyun 	/* SMPS regulators */
243*4882a593Smuzhiyun 	TPS65917_REG_SMPS1,
244*4882a593Smuzhiyun 	TPS65917_REG_SMPS2,
245*4882a593Smuzhiyun 	TPS65917_REG_SMPS3,
246*4882a593Smuzhiyun 	TPS65917_REG_SMPS4,
247*4882a593Smuzhiyun 	TPS65917_REG_SMPS5,
248*4882a593Smuzhiyun 	TPS65917_REG_SMPS12,
249*4882a593Smuzhiyun 	/* LDO regulators */
250*4882a593Smuzhiyun 	TPS65917_REG_LDO1,
251*4882a593Smuzhiyun 	TPS65917_REG_LDO2,
252*4882a593Smuzhiyun 	TPS65917_REG_LDO3,
253*4882a593Smuzhiyun 	TPS65917_REG_LDO4,
254*4882a593Smuzhiyun 	TPS65917_REG_LDO5,
255*4882a593Smuzhiyun 	TPS65917_REG_REGEN1,
256*4882a593Smuzhiyun 	TPS65917_REG_REGEN2,
257*4882a593Smuzhiyun 	TPS65917_REG_REGEN3,
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun 	/* Total number of regulators */
260*4882a593Smuzhiyun 	TPS65917_NUM_REGS,
261*4882a593Smuzhiyun };
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun /* External controll signal name */
264*4882a593Smuzhiyun enum {
265*4882a593Smuzhiyun 	PALMAS_EXT_CONTROL_ENABLE1      = 0x1,
266*4882a593Smuzhiyun 	PALMAS_EXT_CONTROL_ENABLE2      = 0x2,
267*4882a593Smuzhiyun 	PALMAS_EXT_CONTROL_NSLEEP       = 0x4,
268*4882a593Smuzhiyun };
269*4882a593Smuzhiyun 
270*4882a593Smuzhiyun /*
271*4882a593Smuzhiyun  * Palmas device resources can be controlled externally for
272*4882a593Smuzhiyun  * enabling/disabling it rather than register write through i2c.
273*4882a593Smuzhiyun  * Add the external controlled requestor ID for different resources.
274*4882a593Smuzhiyun  */
275*4882a593Smuzhiyun enum palmas_external_requestor_id {
276*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_REGEN1,
277*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_REGEN2,
278*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SYSEN1,
279*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SYSEN2,
280*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_CLK32KG,
281*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO,
282*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_REGEN3,
283*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS12,
284*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS3,
285*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS45,
286*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS6,
287*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS7,
288*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS8,
289*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS9,
290*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_SMPS10,
291*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO1,
292*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO2,
293*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO3,
294*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO4,
295*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO5,
296*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO6,
297*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO7,
298*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO8,
299*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDO9,
300*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDOLN,
301*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_LDOUSB,
302*4882a593Smuzhiyun 
303*4882a593Smuzhiyun 	/* Last entry */
304*4882a593Smuzhiyun 	PALMAS_EXTERNAL_REQSTR_ID_MAX,
305*4882a593Smuzhiyun };
306*4882a593Smuzhiyun 
307*4882a593Smuzhiyun enum tps65917_external_requestor_id {
308*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_REGEN1,
309*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_REGEN2,
310*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_REGEN3,
311*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS1,
312*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS2,
313*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS3,
314*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS4,
315*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS5,
316*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_SMPS12,
317*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_LDO1,
318*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_LDO2,
319*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_LDO3,
320*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_LDO4,
321*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_LDO5,
322*4882a593Smuzhiyun 	/* Last entry */
323*4882a593Smuzhiyun 	TPS65917_EXTERNAL_REQSTR_ID_MAX,
324*4882a593Smuzhiyun };
325*4882a593Smuzhiyun 
326*4882a593Smuzhiyun struct palmas_pmic_platform_data {
327*4882a593Smuzhiyun 	/* An array of pointers to regulator init data indexed by regulator
328*4882a593Smuzhiyun 	 * ID
329*4882a593Smuzhiyun 	 */
330*4882a593Smuzhiyun 	struct regulator_init_data *reg_data[PALMAS_NUM_REGS];
331*4882a593Smuzhiyun 
332*4882a593Smuzhiyun 	/* An array of pointers to structures containing sleep mode and DVS
333*4882a593Smuzhiyun 	 * configuration for regulators indexed by ID
334*4882a593Smuzhiyun 	 */
335*4882a593Smuzhiyun 	struct palmas_reg_init *reg_init[PALMAS_NUM_REGS];
336*4882a593Smuzhiyun 
337*4882a593Smuzhiyun 	/* use LDO6 for vibrator control */
338*4882a593Smuzhiyun 	int ldo6_vibrator;
339*4882a593Smuzhiyun 
340*4882a593Smuzhiyun 	/* Enable tracking mode of LDO8 */
341*4882a593Smuzhiyun 	bool enable_ldo8_tracking;
342*4882a593Smuzhiyun };
343*4882a593Smuzhiyun 
344*4882a593Smuzhiyun struct palmas_usb_platform_data {
345*4882a593Smuzhiyun 	/* Do we enable the wakeup comparator on probe */
346*4882a593Smuzhiyun 	int wakeup;
347*4882a593Smuzhiyun };
348*4882a593Smuzhiyun 
349*4882a593Smuzhiyun struct palmas_resource_platform_data {
350*4882a593Smuzhiyun 	int regen1_mode_sleep;
351*4882a593Smuzhiyun 	int regen2_mode_sleep;
352*4882a593Smuzhiyun 	int sysen1_mode_sleep;
353*4882a593Smuzhiyun 	int sysen2_mode_sleep;
354*4882a593Smuzhiyun 
355*4882a593Smuzhiyun 	/* bitfield to be loaded to NSLEEP_RES_ASSIGN */
356*4882a593Smuzhiyun 	u8 nsleep_res;
357*4882a593Smuzhiyun 	/* bitfield to be loaded to NSLEEP_SMPS_ASSIGN */
358*4882a593Smuzhiyun 	u8 nsleep_smps;
359*4882a593Smuzhiyun 	/* bitfield to be loaded to NSLEEP_LDO_ASSIGN1 */
360*4882a593Smuzhiyun 	u8 nsleep_ldo1;
361*4882a593Smuzhiyun 	/* bitfield to be loaded to NSLEEP_LDO_ASSIGN2 */
362*4882a593Smuzhiyun 	u8 nsleep_ldo2;
363*4882a593Smuzhiyun 
364*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE1_RES_ASSIGN */
365*4882a593Smuzhiyun 	u8 enable1_res;
366*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE1_SMPS_ASSIGN */
367*4882a593Smuzhiyun 	u8 enable1_smps;
368*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE1_LDO_ASSIGN1 */
369*4882a593Smuzhiyun 	u8 enable1_ldo1;
370*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE1_LDO_ASSIGN2 */
371*4882a593Smuzhiyun 	u8 enable1_ldo2;
372*4882a593Smuzhiyun 
373*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE2_RES_ASSIGN */
374*4882a593Smuzhiyun 	u8 enable2_res;
375*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE2_SMPS_ASSIGN */
376*4882a593Smuzhiyun 	u8 enable2_smps;
377*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE2_LDO_ASSIGN1 */
378*4882a593Smuzhiyun 	u8 enable2_ldo1;
379*4882a593Smuzhiyun 	/* bitfield to be loaded to ENABLE2_LDO_ASSIGN2 */
380*4882a593Smuzhiyun 	u8 enable2_ldo2;
381*4882a593Smuzhiyun };
382*4882a593Smuzhiyun 
383*4882a593Smuzhiyun struct palmas_clk_platform_data {
384*4882a593Smuzhiyun 	int clk32kg_mode_sleep;
385*4882a593Smuzhiyun 	int clk32kgaudio_mode_sleep;
386*4882a593Smuzhiyun };
387*4882a593Smuzhiyun 
388*4882a593Smuzhiyun struct palmas_platform_data {
389*4882a593Smuzhiyun 	int irq_flags;
390*4882a593Smuzhiyun 	int gpio_base;
391*4882a593Smuzhiyun 
392*4882a593Smuzhiyun 	/* bit value to be loaded to the POWER_CTRL register */
393*4882a593Smuzhiyun 	u8 power_ctrl;
394*4882a593Smuzhiyun 
395*4882a593Smuzhiyun 	/*
396*4882a593Smuzhiyun 	 * boolean to select if we want to configure muxing here
397*4882a593Smuzhiyun 	 * then the two value to load into the registers if true
398*4882a593Smuzhiyun 	 */
399*4882a593Smuzhiyun 	int mux_from_pdata;
400*4882a593Smuzhiyun 	u8 pad1, pad2;
401*4882a593Smuzhiyun 	bool pm_off;
402*4882a593Smuzhiyun 
403*4882a593Smuzhiyun 	struct palmas_pmic_platform_data *pmic_pdata;
404*4882a593Smuzhiyun 	struct palmas_gpadc_platform_data *gpadc_pdata;
405*4882a593Smuzhiyun 	struct palmas_usb_platform_data *usb_pdata;
406*4882a593Smuzhiyun 	struct palmas_resource_platform_data *resource_pdata;
407*4882a593Smuzhiyun 	struct palmas_clk_platform_data *clk_pdata;
408*4882a593Smuzhiyun };
409*4882a593Smuzhiyun 
410*4882a593Smuzhiyun struct palmas_gpadc_calibration {
411*4882a593Smuzhiyun 	s32 gain;
412*4882a593Smuzhiyun 	s32 gain_error;
413*4882a593Smuzhiyun 	s32 offset_error;
414*4882a593Smuzhiyun };
415*4882a593Smuzhiyun 
416*4882a593Smuzhiyun #define PALMAS_DATASHEET_NAME(_name)	"palmas-gpadc-chan-"#_name
417*4882a593Smuzhiyun 
418*4882a593Smuzhiyun struct palmas_gpadc_result {
419*4882a593Smuzhiyun 	s32 raw_code;
420*4882a593Smuzhiyun 	s32 corrected_code;
421*4882a593Smuzhiyun 	s32 result;
422*4882a593Smuzhiyun };
423*4882a593Smuzhiyun 
424*4882a593Smuzhiyun #define PALMAS_MAX_CHANNELS 16
425*4882a593Smuzhiyun 
426*4882a593Smuzhiyun /* Define the tps65917 IRQ numbers */
427*4882a593Smuzhiyun enum tps65917_irqs {
428*4882a593Smuzhiyun 	/* INT1 registers */
429*4882a593Smuzhiyun 	TPS65917_RESERVED1,
430*4882a593Smuzhiyun 	TPS65917_PWRON_IRQ,
431*4882a593Smuzhiyun 	TPS65917_LONG_PRESS_KEY_IRQ,
432*4882a593Smuzhiyun 	TPS65917_RESERVED2,
433*4882a593Smuzhiyun 	TPS65917_PWRDOWN_IRQ,
434*4882a593Smuzhiyun 	TPS65917_HOTDIE_IRQ,
435*4882a593Smuzhiyun 	TPS65917_VSYS_MON_IRQ,
436*4882a593Smuzhiyun 	TPS65917_RESERVED3,
437*4882a593Smuzhiyun 	/* INT2 registers */
438*4882a593Smuzhiyun 	TPS65917_RESERVED4,
439*4882a593Smuzhiyun 	TPS65917_OTP_ERROR_IRQ,
440*4882a593Smuzhiyun 	TPS65917_WDT_IRQ,
441*4882a593Smuzhiyun 	TPS65917_RESERVED5,
442*4882a593Smuzhiyun 	TPS65917_RESET_IN_IRQ,
443*4882a593Smuzhiyun 	TPS65917_FSD_IRQ,
444*4882a593Smuzhiyun 	TPS65917_SHORT_IRQ,
445*4882a593Smuzhiyun 	TPS65917_RESERVED6,
446*4882a593Smuzhiyun 	/* INT3 registers */
447*4882a593Smuzhiyun 	TPS65917_GPADC_AUTO_0_IRQ,
448*4882a593Smuzhiyun 	TPS65917_GPADC_AUTO_1_IRQ,
449*4882a593Smuzhiyun 	TPS65917_GPADC_EOC_SW_IRQ,
450*4882a593Smuzhiyun 	TPS65917_RESREVED6,
451*4882a593Smuzhiyun 	TPS65917_RESERVED7,
452*4882a593Smuzhiyun 	TPS65917_RESERVED8,
453*4882a593Smuzhiyun 	TPS65917_RESERVED9,
454*4882a593Smuzhiyun 	TPS65917_VBUS_IRQ,
455*4882a593Smuzhiyun 	/* INT4 registers */
456*4882a593Smuzhiyun 	TPS65917_GPIO_0_IRQ,
457*4882a593Smuzhiyun 	TPS65917_GPIO_1_IRQ,
458*4882a593Smuzhiyun 	TPS65917_GPIO_2_IRQ,
459*4882a593Smuzhiyun 	TPS65917_GPIO_3_IRQ,
460*4882a593Smuzhiyun 	TPS65917_GPIO_4_IRQ,
461*4882a593Smuzhiyun 	TPS65917_GPIO_5_IRQ,
462*4882a593Smuzhiyun 	TPS65917_GPIO_6_IRQ,
463*4882a593Smuzhiyun 	TPS65917_RESERVED10,
464*4882a593Smuzhiyun 	/* Total Number IRQs */
465*4882a593Smuzhiyun 	TPS65917_NUM_IRQ,
466*4882a593Smuzhiyun };
467*4882a593Smuzhiyun 
468*4882a593Smuzhiyun /* Define the palmas IRQ numbers */
469*4882a593Smuzhiyun enum palmas_irqs {
470*4882a593Smuzhiyun 	/* INT1 registers */
471*4882a593Smuzhiyun 	PALMAS_CHARG_DET_N_VBUS_OVV_IRQ,
472*4882a593Smuzhiyun 	PALMAS_PWRON_IRQ,
473*4882a593Smuzhiyun 	PALMAS_LONG_PRESS_KEY_IRQ,
474*4882a593Smuzhiyun 	PALMAS_RPWRON_IRQ,
475*4882a593Smuzhiyun 	PALMAS_PWRDOWN_IRQ,
476*4882a593Smuzhiyun 	PALMAS_HOTDIE_IRQ,
477*4882a593Smuzhiyun 	PALMAS_VSYS_MON_IRQ,
478*4882a593Smuzhiyun 	PALMAS_VBAT_MON_IRQ,
479*4882a593Smuzhiyun 	/* INT2 registers */
480*4882a593Smuzhiyun 	PALMAS_RTC_ALARM_IRQ,
481*4882a593Smuzhiyun 	PALMAS_RTC_TIMER_IRQ,
482*4882a593Smuzhiyun 	PALMAS_WDT_IRQ,
483*4882a593Smuzhiyun 	PALMAS_BATREMOVAL_IRQ,
484*4882a593Smuzhiyun 	PALMAS_RESET_IN_IRQ,
485*4882a593Smuzhiyun 	PALMAS_FBI_BB_IRQ,
486*4882a593Smuzhiyun 	PALMAS_SHORT_IRQ,
487*4882a593Smuzhiyun 	PALMAS_VAC_ACOK_IRQ,
488*4882a593Smuzhiyun 	/* INT3 registers */
489*4882a593Smuzhiyun 	PALMAS_GPADC_AUTO_0_IRQ,
490*4882a593Smuzhiyun 	PALMAS_GPADC_AUTO_1_IRQ,
491*4882a593Smuzhiyun 	PALMAS_GPADC_EOC_SW_IRQ,
492*4882a593Smuzhiyun 	PALMAS_GPADC_EOC_RT_IRQ,
493*4882a593Smuzhiyun 	PALMAS_ID_OTG_IRQ,
494*4882a593Smuzhiyun 	PALMAS_ID_IRQ,
495*4882a593Smuzhiyun 	PALMAS_VBUS_OTG_IRQ,
496*4882a593Smuzhiyun 	PALMAS_VBUS_IRQ,
497*4882a593Smuzhiyun 	/* INT4 registers */
498*4882a593Smuzhiyun 	PALMAS_GPIO_0_IRQ,
499*4882a593Smuzhiyun 	PALMAS_GPIO_1_IRQ,
500*4882a593Smuzhiyun 	PALMAS_GPIO_2_IRQ,
501*4882a593Smuzhiyun 	PALMAS_GPIO_3_IRQ,
502*4882a593Smuzhiyun 	PALMAS_GPIO_4_IRQ,
503*4882a593Smuzhiyun 	PALMAS_GPIO_5_IRQ,
504*4882a593Smuzhiyun 	PALMAS_GPIO_6_IRQ,
505*4882a593Smuzhiyun 	PALMAS_GPIO_7_IRQ,
506*4882a593Smuzhiyun 	/* Total Number IRQs */
507*4882a593Smuzhiyun 	PALMAS_NUM_IRQ,
508*4882a593Smuzhiyun };
509*4882a593Smuzhiyun 
510*4882a593Smuzhiyun /* Palmas GPADC Channels */
511*4882a593Smuzhiyun enum {
512*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN0,
513*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN1,
514*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN2,
515*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN3,
516*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN4,
517*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN5,
518*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN6,
519*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN7,
520*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN8,
521*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN9,
522*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN10,
523*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN11,
524*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN12,
525*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN13,
526*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN14,
527*4882a593Smuzhiyun 	PALMAS_ADC_CH_IN15,
528*4882a593Smuzhiyun 	PALMAS_ADC_CH_MAX,
529*4882a593Smuzhiyun };
530*4882a593Smuzhiyun 
531*4882a593Smuzhiyun /* Palmas GPADC Channel0 Current Source */
532*4882a593Smuzhiyun enum {
533*4882a593Smuzhiyun 	PALMAS_ADC_CH0_CURRENT_SRC_0,
534*4882a593Smuzhiyun 	PALMAS_ADC_CH0_CURRENT_SRC_5,
535*4882a593Smuzhiyun 	PALMAS_ADC_CH0_CURRENT_SRC_15,
536*4882a593Smuzhiyun 	PALMAS_ADC_CH0_CURRENT_SRC_20,
537*4882a593Smuzhiyun };
538*4882a593Smuzhiyun 
539*4882a593Smuzhiyun /* Palmas GPADC Channel3 Current Source */
540*4882a593Smuzhiyun enum {
541*4882a593Smuzhiyun 	PALMAS_ADC_CH3_CURRENT_SRC_0,
542*4882a593Smuzhiyun 	PALMAS_ADC_CH3_CURRENT_SRC_10,
543*4882a593Smuzhiyun 	PALMAS_ADC_CH3_CURRENT_SRC_400,
544*4882a593Smuzhiyun 	PALMAS_ADC_CH3_CURRENT_SRC_800,
545*4882a593Smuzhiyun };
546*4882a593Smuzhiyun 
547*4882a593Smuzhiyun struct palmas_pmic {
548*4882a593Smuzhiyun 	struct palmas *palmas;
549*4882a593Smuzhiyun 	struct device *dev;
550*4882a593Smuzhiyun 	struct regulator_desc desc[PALMAS_NUM_REGS];
551*4882a593Smuzhiyun 	struct mutex mutex;
552*4882a593Smuzhiyun 
553*4882a593Smuzhiyun 	int smps123;
554*4882a593Smuzhiyun 	int smps457;
555*4882a593Smuzhiyun 	int smps12;
556*4882a593Smuzhiyun 
557*4882a593Smuzhiyun 	int range[PALMAS_REG_SMPS10_OUT1];
558*4882a593Smuzhiyun 	unsigned int ramp_delay[PALMAS_REG_SMPS10_OUT1];
559*4882a593Smuzhiyun 	unsigned int current_reg_mode[PALMAS_REG_SMPS10_OUT1];
560*4882a593Smuzhiyun };
561*4882a593Smuzhiyun 
562*4882a593Smuzhiyun struct palmas_resource {
563*4882a593Smuzhiyun 	struct palmas *palmas;
564*4882a593Smuzhiyun 	struct device *dev;
565*4882a593Smuzhiyun };
566*4882a593Smuzhiyun 
567*4882a593Smuzhiyun struct palmas_usb {
568*4882a593Smuzhiyun 	struct palmas *palmas;
569*4882a593Smuzhiyun 	struct device *dev;
570*4882a593Smuzhiyun 
571*4882a593Smuzhiyun 	struct extcon_dev *edev;
572*4882a593Smuzhiyun 
573*4882a593Smuzhiyun 	int id_otg_irq;
574*4882a593Smuzhiyun 	int id_irq;
575*4882a593Smuzhiyun 	int vbus_otg_irq;
576*4882a593Smuzhiyun 	int vbus_irq;
577*4882a593Smuzhiyun 
578*4882a593Smuzhiyun 	int gpio_id_irq;
579*4882a593Smuzhiyun 	int gpio_vbus_irq;
580*4882a593Smuzhiyun 	struct gpio_desc *id_gpiod;
581*4882a593Smuzhiyun 	struct gpio_desc *vbus_gpiod;
582*4882a593Smuzhiyun 	unsigned long sw_debounce_jiffies;
583*4882a593Smuzhiyun 	struct delayed_work wq_detectid;
584*4882a593Smuzhiyun 
585*4882a593Smuzhiyun 	enum palmas_usb_state linkstat;
586*4882a593Smuzhiyun 	int wakeup;
587*4882a593Smuzhiyun 	bool enable_vbus_detection;
588*4882a593Smuzhiyun 	bool enable_id_detection;
589*4882a593Smuzhiyun 	bool enable_gpio_id_detection;
590*4882a593Smuzhiyun 	bool enable_gpio_vbus_detection;
591*4882a593Smuzhiyun };
592*4882a593Smuzhiyun 
593*4882a593Smuzhiyun #define comparator_to_palmas(x) container_of((x), struct palmas_usb, comparator)
594*4882a593Smuzhiyun 
595*4882a593Smuzhiyun enum usb_irq_events {
596*4882a593Smuzhiyun 	/* Wakeup events from INT3 */
597*4882a593Smuzhiyun 	PALMAS_USB_ID_WAKEPUP,
598*4882a593Smuzhiyun 	PALMAS_USB_VBUS_WAKEUP,
599*4882a593Smuzhiyun 
600*4882a593Smuzhiyun 	/* ID_OTG_EVENTS */
601*4882a593Smuzhiyun 	PALMAS_USB_ID_GND,
602*4882a593Smuzhiyun 	N_PALMAS_USB_ID_GND,
603*4882a593Smuzhiyun 	PALMAS_USB_ID_C,
604*4882a593Smuzhiyun 	N_PALMAS_USB_ID_C,
605*4882a593Smuzhiyun 	PALMAS_USB_ID_B,
606*4882a593Smuzhiyun 	N_PALMAS_USB_ID_B,
607*4882a593Smuzhiyun 	PALMAS_USB_ID_A,
608*4882a593Smuzhiyun 	N_PALMAS_USB_ID_A,
609*4882a593Smuzhiyun 	PALMAS_USB_ID_FLOAT,
610*4882a593Smuzhiyun 	N_PALMAS_USB_ID_FLOAT,
611*4882a593Smuzhiyun 
612*4882a593Smuzhiyun 	/* VBUS_OTG_EVENTS */
613*4882a593Smuzhiyun 	PALMAS_USB_VB_SESS_END,
614*4882a593Smuzhiyun 	N_PALMAS_USB_VB_SESS_END,
615*4882a593Smuzhiyun 	PALMAS_USB_VB_SESS_VLD,
616*4882a593Smuzhiyun 	N_PALMAS_USB_VB_SESS_VLD,
617*4882a593Smuzhiyun 	PALMAS_USB_VA_SESS_VLD,
618*4882a593Smuzhiyun 	N_PALMAS_USB_VA_SESS_VLD,
619*4882a593Smuzhiyun 	PALMAS_USB_VA_VBUS_VLD,
620*4882a593Smuzhiyun 	N_PALMAS_USB_VA_VBUS_VLD,
621*4882a593Smuzhiyun 	PALMAS_USB_VADP_SNS,
622*4882a593Smuzhiyun 	N_PALMAS_USB_VADP_SNS,
623*4882a593Smuzhiyun 	PALMAS_USB_VADP_PRB,
624*4882a593Smuzhiyun 	N_PALMAS_USB_VADP_PRB,
625*4882a593Smuzhiyun 	PALMAS_USB_VOTG_SESS_VLD,
626*4882a593Smuzhiyun 	N_PALMAS_USB_VOTG_SESS_VLD,
627*4882a593Smuzhiyun };
628*4882a593Smuzhiyun 
629*4882a593Smuzhiyun /* defines so we can store the mux settings */
630*4882a593Smuzhiyun #define PALMAS_GPIO_0_MUXED					(1 << 0)
631*4882a593Smuzhiyun #define PALMAS_GPIO_1_MUXED					(1 << 1)
632*4882a593Smuzhiyun #define PALMAS_GPIO_2_MUXED					(1 << 2)
633*4882a593Smuzhiyun #define PALMAS_GPIO_3_MUXED					(1 << 3)
634*4882a593Smuzhiyun #define PALMAS_GPIO_4_MUXED					(1 << 4)
635*4882a593Smuzhiyun #define PALMAS_GPIO_5_MUXED					(1 << 5)
636*4882a593Smuzhiyun #define PALMAS_GPIO_6_MUXED					(1 << 6)
637*4882a593Smuzhiyun #define PALMAS_GPIO_7_MUXED					(1 << 7)
638*4882a593Smuzhiyun 
639*4882a593Smuzhiyun #define PALMAS_LED1_MUXED					(1 << 0)
640*4882a593Smuzhiyun #define PALMAS_LED2_MUXED					(1 << 1)
641*4882a593Smuzhiyun 
642*4882a593Smuzhiyun #define PALMAS_PWM1_MUXED					(1 << 0)
643*4882a593Smuzhiyun #define PALMAS_PWM2_MUXED					(1 << 1)
644*4882a593Smuzhiyun 
645*4882a593Smuzhiyun /* helper macro to get correct slave number */
646*4882a593Smuzhiyun #define PALMAS_BASE_TO_SLAVE(x)		((x >> 8) - 1)
647*4882a593Smuzhiyun #define PALMAS_BASE_TO_REG(x, y)	((x & 0xFF) + y)
648*4882a593Smuzhiyun 
649*4882a593Smuzhiyun /* Base addresses of IP blocks in Palmas */
650*4882a593Smuzhiyun #define PALMAS_SMPS_DVS_BASE					0x020
651*4882a593Smuzhiyun #define PALMAS_RTC_BASE						0x100
652*4882a593Smuzhiyun #define PALMAS_VALIDITY_BASE					0x118
653*4882a593Smuzhiyun #define PALMAS_SMPS_BASE					0x120
654*4882a593Smuzhiyun #define PALMAS_LDO_BASE						0x150
655*4882a593Smuzhiyun #define PALMAS_DVFS_BASE					0x180
656*4882a593Smuzhiyun #define PALMAS_PMU_CONTROL_BASE					0x1A0
657*4882a593Smuzhiyun #define PALMAS_RESOURCE_BASE					0x1D4
658*4882a593Smuzhiyun #define PALMAS_PU_PD_OD_BASE					0x1F0
659*4882a593Smuzhiyun #define PALMAS_LED_BASE						0x200
660*4882a593Smuzhiyun #define PALMAS_INTERRUPT_BASE					0x210
661*4882a593Smuzhiyun #define PALMAS_USB_OTG_BASE					0x250
662*4882a593Smuzhiyun #define PALMAS_VIBRATOR_BASE					0x270
663*4882a593Smuzhiyun #define PALMAS_GPIO_BASE					0x280
664*4882a593Smuzhiyun #define PALMAS_USB_BASE						0x290
665*4882a593Smuzhiyun #define PALMAS_GPADC_BASE					0x2C0
666*4882a593Smuzhiyun #define PALMAS_TRIM_GPADC_BASE					0x3CD
667*4882a593Smuzhiyun 
668*4882a593Smuzhiyun /* Registers for function RTC */
669*4882a593Smuzhiyun #define PALMAS_SECONDS_REG					0x00
670*4882a593Smuzhiyun #define PALMAS_MINUTES_REG					0x01
671*4882a593Smuzhiyun #define PALMAS_HOURS_REG					0x02
672*4882a593Smuzhiyun #define PALMAS_DAYS_REG						0x03
673*4882a593Smuzhiyun #define PALMAS_MONTHS_REG					0x04
674*4882a593Smuzhiyun #define PALMAS_YEARS_REG					0x05
675*4882a593Smuzhiyun #define PALMAS_WEEKS_REG					0x06
676*4882a593Smuzhiyun #define PALMAS_ALARM_SECONDS_REG				0x08
677*4882a593Smuzhiyun #define PALMAS_ALARM_MINUTES_REG				0x09
678*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG					0x0A
679*4882a593Smuzhiyun #define PALMAS_ALARM_DAYS_REG					0x0B
680*4882a593Smuzhiyun #define PALMAS_ALARM_MONTHS_REG					0x0C
681*4882a593Smuzhiyun #define PALMAS_ALARM_YEARS_REG					0x0D
682*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG					0x10
683*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG					0x11
684*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG				0x12
685*4882a593Smuzhiyun #define PALMAS_RTC_COMP_LSB_REG					0x13
686*4882a593Smuzhiyun #define PALMAS_RTC_COMP_MSB_REG					0x14
687*4882a593Smuzhiyun #define PALMAS_RTC_RES_PROG_REG					0x15
688*4882a593Smuzhiyun #define PALMAS_RTC_RESET_STATUS_REG				0x16
689*4882a593Smuzhiyun 
690*4882a593Smuzhiyun /* Bit definitions for SECONDS_REG */
691*4882a593Smuzhiyun #define PALMAS_SECONDS_REG_SEC1_MASK				0x70
692*4882a593Smuzhiyun #define PALMAS_SECONDS_REG_SEC1_SHIFT				0x04
693*4882a593Smuzhiyun #define PALMAS_SECONDS_REG_SEC0_MASK				0x0F
694*4882a593Smuzhiyun #define PALMAS_SECONDS_REG_SEC0_SHIFT				0x00
695*4882a593Smuzhiyun 
696*4882a593Smuzhiyun /* Bit definitions for MINUTES_REG */
697*4882a593Smuzhiyun #define PALMAS_MINUTES_REG_MIN1_MASK				0x70
698*4882a593Smuzhiyun #define PALMAS_MINUTES_REG_MIN1_SHIFT				0x04
699*4882a593Smuzhiyun #define PALMAS_MINUTES_REG_MIN0_MASK				0x0F
700*4882a593Smuzhiyun #define PALMAS_MINUTES_REG_MIN0_SHIFT				0x00
701*4882a593Smuzhiyun 
702*4882a593Smuzhiyun /* Bit definitions for HOURS_REG */
703*4882a593Smuzhiyun #define PALMAS_HOURS_REG_PM_NAM					0x80
704*4882a593Smuzhiyun #define PALMAS_HOURS_REG_PM_NAM_SHIFT				0x07
705*4882a593Smuzhiyun #define PALMAS_HOURS_REG_HOUR1_MASK				0x30
706*4882a593Smuzhiyun #define PALMAS_HOURS_REG_HOUR1_SHIFT				0x04
707*4882a593Smuzhiyun #define PALMAS_HOURS_REG_HOUR0_MASK				0x0F
708*4882a593Smuzhiyun #define PALMAS_HOURS_REG_HOUR0_SHIFT				0x00
709*4882a593Smuzhiyun 
710*4882a593Smuzhiyun /* Bit definitions for DAYS_REG */
711*4882a593Smuzhiyun #define PALMAS_DAYS_REG_DAY1_MASK				0x30
712*4882a593Smuzhiyun #define PALMAS_DAYS_REG_DAY1_SHIFT				0x04
713*4882a593Smuzhiyun #define PALMAS_DAYS_REG_DAY0_MASK				0x0F
714*4882a593Smuzhiyun #define PALMAS_DAYS_REG_DAY0_SHIFT				0x00
715*4882a593Smuzhiyun 
716*4882a593Smuzhiyun /* Bit definitions for MONTHS_REG */
717*4882a593Smuzhiyun #define PALMAS_MONTHS_REG_MONTH1				0x10
718*4882a593Smuzhiyun #define PALMAS_MONTHS_REG_MONTH1_SHIFT				0x04
719*4882a593Smuzhiyun #define PALMAS_MONTHS_REG_MONTH0_MASK				0x0F
720*4882a593Smuzhiyun #define PALMAS_MONTHS_REG_MONTH0_SHIFT				0x00
721*4882a593Smuzhiyun 
722*4882a593Smuzhiyun /* Bit definitions for YEARS_REG */
723*4882a593Smuzhiyun #define PALMAS_YEARS_REG_YEAR1_MASK				0xf0
724*4882a593Smuzhiyun #define PALMAS_YEARS_REG_YEAR1_SHIFT				0x04
725*4882a593Smuzhiyun #define PALMAS_YEARS_REG_YEAR0_MASK				0x0F
726*4882a593Smuzhiyun #define PALMAS_YEARS_REG_YEAR0_SHIFT				0x00
727*4882a593Smuzhiyun 
728*4882a593Smuzhiyun /* Bit definitions for WEEKS_REG */
729*4882a593Smuzhiyun #define PALMAS_WEEKS_REG_WEEK_MASK				0x07
730*4882a593Smuzhiyun #define PALMAS_WEEKS_REG_WEEK_SHIFT				0x00
731*4882a593Smuzhiyun 
732*4882a593Smuzhiyun /* Bit definitions for ALARM_SECONDS_REG */
733*4882a593Smuzhiyun #define PALMAS_ALARM_SECONDS_REG_ALARM_SEC1_MASK		0x70
734*4882a593Smuzhiyun #define PALMAS_ALARM_SECONDS_REG_ALARM_SEC1_SHIFT		0x04
735*4882a593Smuzhiyun #define PALMAS_ALARM_SECONDS_REG_ALARM_SEC0_MASK		0x0F
736*4882a593Smuzhiyun #define PALMAS_ALARM_SECONDS_REG_ALARM_SEC0_SHIFT		0x00
737*4882a593Smuzhiyun 
738*4882a593Smuzhiyun /* Bit definitions for ALARM_MINUTES_REG */
739*4882a593Smuzhiyun #define PALMAS_ALARM_MINUTES_REG_ALARM_MIN1_MASK		0x70
740*4882a593Smuzhiyun #define PALMAS_ALARM_MINUTES_REG_ALARM_MIN1_SHIFT		0x04
741*4882a593Smuzhiyun #define PALMAS_ALARM_MINUTES_REG_ALARM_MIN0_MASK		0x0F
742*4882a593Smuzhiyun #define PALMAS_ALARM_MINUTES_REG_ALARM_MIN0_SHIFT		0x00
743*4882a593Smuzhiyun 
744*4882a593Smuzhiyun /* Bit definitions for ALARM_HOURS_REG */
745*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_PM_NAM			0x80
746*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_PM_NAM_SHIFT		0x07
747*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_HOUR1_MASK			0x30
748*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_HOUR1_SHIFT		0x04
749*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_HOUR0_MASK			0x0F
750*4882a593Smuzhiyun #define PALMAS_ALARM_HOURS_REG_ALARM_HOUR0_SHIFT		0x00
751*4882a593Smuzhiyun 
752*4882a593Smuzhiyun /* Bit definitions for ALARM_DAYS_REG */
753*4882a593Smuzhiyun #define PALMAS_ALARM_DAYS_REG_ALARM_DAY1_MASK			0x30
754*4882a593Smuzhiyun #define PALMAS_ALARM_DAYS_REG_ALARM_DAY1_SHIFT			0x04
755*4882a593Smuzhiyun #define PALMAS_ALARM_DAYS_REG_ALARM_DAY0_MASK			0x0F
756*4882a593Smuzhiyun #define PALMAS_ALARM_DAYS_REG_ALARM_DAY0_SHIFT			0x00
757*4882a593Smuzhiyun 
758*4882a593Smuzhiyun /* Bit definitions for ALARM_MONTHS_REG */
759*4882a593Smuzhiyun #define PALMAS_ALARM_MONTHS_REG_ALARM_MONTH1			0x10
760*4882a593Smuzhiyun #define PALMAS_ALARM_MONTHS_REG_ALARM_MONTH1_SHIFT		0x04
761*4882a593Smuzhiyun #define PALMAS_ALARM_MONTHS_REG_ALARM_MONTH0_MASK		0x0F
762*4882a593Smuzhiyun #define PALMAS_ALARM_MONTHS_REG_ALARM_MONTH0_SHIFT		0x00
763*4882a593Smuzhiyun 
764*4882a593Smuzhiyun /* Bit definitions for ALARM_YEARS_REG */
765*4882a593Smuzhiyun #define PALMAS_ALARM_YEARS_REG_ALARM_YEAR1_MASK			0xf0
766*4882a593Smuzhiyun #define PALMAS_ALARM_YEARS_REG_ALARM_YEAR1_SHIFT		0x04
767*4882a593Smuzhiyun #define PALMAS_ALARM_YEARS_REG_ALARM_YEAR0_MASK			0x0F
768*4882a593Smuzhiyun #define PALMAS_ALARM_YEARS_REG_ALARM_YEAR0_SHIFT		0x00
769*4882a593Smuzhiyun 
770*4882a593Smuzhiyun /* Bit definitions for RTC_CTRL_REG */
771*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_RTC_V_OPT				0x80
772*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_RTC_V_OPT_SHIFT			0x07
773*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_GET_TIME				0x40
774*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_GET_TIME_SHIFT			0x06
775*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_SET_32_COUNTER			0x20
776*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_SET_32_COUNTER_SHIFT		0x05
777*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_TEST_MODE				0x10
778*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_TEST_MODE_SHIFT			0x04
779*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_MODE_12_24				0x08
780*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_MODE_12_24_SHIFT			0x03
781*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_AUTO_COMP				0x04
782*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_AUTO_COMP_SHIFT			0x02
783*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_ROUND_30S				0x02
784*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_ROUND_30S_SHIFT			0x01
785*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_STOP_RTC				0x01
786*4882a593Smuzhiyun #define PALMAS_RTC_CTRL_REG_STOP_RTC_SHIFT			0x00
787*4882a593Smuzhiyun 
788*4882a593Smuzhiyun /* Bit definitions for RTC_STATUS_REG */
789*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_POWER_UP				0x80
790*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_POWER_UP_SHIFT			0x07
791*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_ALARM				0x40
792*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_ALARM_SHIFT			0x06
793*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1D				0x20
794*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1D_SHIFT			0x05
795*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1H				0x10
796*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1H_SHIFT			0x04
797*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1M				0x08
798*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1M_SHIFT			0x03
799*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1S				0x04
800*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_EVENT_1S_SHIFT			0x02
801*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_RUN				0x02
802*4882a593Smuzhiyun #define PALMAS_RTC_STATUS_REG_RUN_SHIFT				0x01
803*4882a593Smuzhiyun 
804*4882a593Smuzhiyun /* Bit definitions for RTC_INTERRUPTS_REG */
805*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_SLEEP_MASK_EN		0x10
806*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_SLEEP_MASK_EN_SHIFT	0x04
807*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_ALARM			0x08
808*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_ALARM_SHIFT		0x03
809*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_TIMER			0x04
810*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_IT_TIMER_SHIFT		0x02
811*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_EVERY_MASK			0x03
812*4882a593Smuzhiyun #define PALMAS_RTC_INTERRUPTS_REG_EVERY_SHIFT			0x00
813*4882a593Smuzhiyun 
814*4882a593Smuzhiyun /* Bit definitions for RTC_COMP_LSB_REG */
815*4882a593Smuzhiyun #define PALMAS_RTC_COMP_LSB_REG_RTC_COMP_LSB_MASK		0xFF
816*4882a593Smuzhiyun #define PALMAS_RTC_COMP_LSB_REG_RTC_COMP_LSB_SHIFT		0x00
817*4882a593Smuzhiyun 
818*4882a593Smuzhiyun /* Bit definitions for RTC_COMP_MSB_REG */
819*4882a593Smuzhiyun #define PALMAS_RTC_COMP_MSB_REG_RTC_COMP_MSB_MASK		0xFF
820*4882a593Smuzhiyun #define PALMAS_RTC_COMP_MSB_REG_RTC_COMP_MSB_SHIFT		0x00
821*4882a593Smuzhiyun 
822*4882a593Smuzhiyun /* Bit definitions for RTC_RES_PROG_REG */
823*4882a593Smuzhiyun #define PALMAS_RTC_RES_PROG_REG_SW_RES_PROG_MASK		0x3F
824*4882a593Smuzhiyun #define PALMAS_RTC_RES_PROG_REG_SW_RES_PROG_SHIFT		0x00
825*4882a593Smuzhiyun 
826*4882a593Smuzhiyun /* Bit definitions for RTC_RESET_STATUS_REG */
827*4882a593Smuzhiyun #define PALMAS_RTC_RESET_STATUS_REG_RESET_STATUS		0x01
828*4882a593Smuzhiyun #define PALMAS_RTC_RESET_STATUS_REG_RESET_STATUS_SHIFT		0x00
829*4882a593Smuzhiyun 
830*4882a593Smuzhiyun /* Registers for function BACKUP */
831*4882a593Smuzhiyun #define PALMAS_BACKUP0						0x00
832*4882a593Smuzhiyun #define PALMAS_BACKUP1						0x01
833*4882a593Smuzhiyun #define PALMAS_BACKUP2						0x02
834*4882a593Smuzhiyun #define PALMAS_BACKUP3						0x03
835*4882a593Smuzhiyun #define PALMAS_BACKUP4						0x04
836*4882a593Smuzhiyun #define PALMAS_BACKUP5						0x05
837*4882a593Smuzhiyun #define PALMAS_BACKUP6						0x06
838*4882a593Smuzhiyun #define PALMAS_BACKUP7						0x07
839*4882a593Smuzhiyun 
840*4882a593Smuzhiyun /* Bit definitions for BACKUP0 */
841*4882a593Smuzhiyun #define PALMAS_BACKUP0_BACKUP_MASK				0xFF
842*4882a593Smuzhiyun #define PALMAS_BACKUP0_BACKUP_SHIFT				0x00
843*4882a593Smuzhiyun 
844*4882a593Smuzhiyun /* Bit definitions for BACKUP1 */
845*4882a593Smuzhiyun #define PALMAS_BACKUP1_BACKUP_MASK				0xFF
846*4882a593Smuzhiyun #define PALMAS_BACKUP1_BACKUP_SHIFT				0x00
847*4882a593Smuzhiyun 
848*4882a593Smuzhiyun /* Bit definitions for BACKUP2 */
849*4882a593Smuzhiyun #define PALMAS_BACKUP2_BACKUP_MASK				0xFF
850*4882a593Smuzhiyun #define PALMAS_BACKUP2_BACKUP_SHIFT				0x00
851*4882a593Smuzhiyun 
852*4882a593Smuzhiyun /* Bit definitions for BACKUP3 */
853*4882a593Smuzhiyun #define PALMAS_BACKUP3_BACKUP_MASK				0xFF
854*4882a593Smuzhiyun #define PALMAS_BACKUP3_BACKUP_SHIFT				0x00
855*4882a593Smuzhiyun 
856*4882a593Smuzhiyun /* Bit definitions for BACKUP4 */
857*4882a593Smuzhiyun #define PALMAS_BACKUP4_BACKUP_MASK				0xFF
858*4882a593Smuzhiyun #define PALMAS_BACKUP4_BACKUP_SHIFT				0x00
859*4882a593Smuzhiyun 
860*4882a593Smuzhiyun /* Bit definitions for BACKUP5 */
861*4882a593Smuzhiyun #define PALMAS_BACKUP5_BACKUP_MASK				0xFF
862*4882a593Smuzhiyun #define PALMAS_BACKUP5_BACKUP_SHIFT				0x00
863*4882a593Smuzhiyun 
864*4882a593Smuzhiyun /* Bit definitions for BACKUP6 */
865*4882a593Smuzhiyun #define PALMAS_BACKUP6_BACKUP_MASK				0xFF
866*4882a593Smuzhiyun #define PALMAS_BACKUP6_BACKUP_SHIFT				0x00
867*4882a593Smuzhiyun 
868*4882a593Smuzhiyun /* Bit definitions for BACKUP7 */
869*4882a593Smuzhiyun #define PALMAS_BACKUP7_BACKUP_MASK				0xFF
870*4882a593Smuzhiyun #define PALMAS_BACKUP7_BACKUP_SHIFT				0x00
871*4882a593Smuzhiyun 
872*4882a593Smuzhiyun /* Registers for function SMPS */
873*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL					0x00
874*4882a593Smuzhiyun #define PALMAS_SMPS12_TSTEP					0x01
875*4882a593Smuzhiyun #define PALMAS_SMPS12_FORCE					0x02
876*4882a593Smuzhiyun #define PALMAS_SMPS12_VOLTAGE					0x03
877*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL					0x04
878*4882a593Smuzhiyun #define PALMAS_SMPS3_VOLTAGE					0x07
879*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL					0x08
880*4882a593Smuzhiyun #define PALMAS_SMPS45_TSTEP					0x09
881*4882a593Smuzhiyun #define PALMAS_SMPS45_FORCE					0x0A
882*4882a593Smuzhiyun #define PALMAS_SMPS45_VOLTAGE					0x0B
883*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL					0x0C
884*4882a593Smuzhiyun #define PALMAS_SMPS6_TSTEP					0x0D
885*4882a593Smuzhiyun #define PALMAS_SMPS6_FORCE					0x0E
886*4882a593Smuzhiyun #define PALMAS_SMPS6_VOLTAGE					0x0F
887*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL					0x10
888*4882a593Smuzhiyun #define PALMAS_SMPS7_VOLTAGE					0x13
889*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL					0x14
890*4882a593Smuzhiyun #define PALMAS_SMPS8_TSTEP					0x15
891*4882a593Smuzhiyun #define PALMAS_SMPS8_FORCE					0x16
892*4882a593Smuzhiyun #define PALMAS_SMPS8_VOLTAGE					0x17
893*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL					0x18
894*4882a593Smuzhiyun #define PALMAS_SMPS9_VOLTAGE					0x1B
895*4882a593Smuzhiyun #define PALMAS_SMPS10_CTRL					0x1C
896*4882a593Smuzhiyun #define PALMAS_SMPS10_STATUS					0x1F
897*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL					0x24
898*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL					0x25
899*4882a593Smuzhiyun #define PALMAS_SMPS_DITHER_EN					0x26
900*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN					0x27
901*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS				0x28
902*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS				0x29
903*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN			0x2A
904*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1				0x2B
905*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2				0x2C
906*4882a593Smuzhiyun 
907*4882a593Smuzhiyun /* Bit definitions for SMPS12_CTRL */
908*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_WR_S					0x80
909*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_WR_S_SHIFT				0x07
910*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_ROOF_FLOOR_EN			0x40
911*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_ROOF_FLOOR_EN_SHIFT			0x06
912*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_STATUS_MASK				0x30
913*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_STATUS_SHIFT				0x04
914*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_MODE_SLEEP_MASK			0x0c
915*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_MODE_SLEEP_SHIFT			0x02
916*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK			0x03
917*4882a593Smuzhiyun #define PALMAS_SMPS12_CTRL_MODE_ACTIVE_SHIFT			0x00
918*4882a593Smuzhiyun 
919*4882a593Smuzhiyun /* Bit definitions for SMPS12_TSTEP */
920*4882a593Smuzhiyun #define PALMAS_SMPS12_TSTEP_TSTEP_MASK				0x03
921*4882a593Smuzhiyun #define PALMAS_SMPS12_TSTEP_TSTEP_SHIFT				0x00
922*4882a593Smuzhiyun 
923*4882a593Smuzhiyun /* Bit definitions for SMPS12_FORCE */
924*4882a593Smuzhiyun #define PALMAS_SMPS12_FORCE_CMD					0x80
925*4882a593Smuzhiyun #define PALMAS_SMPS12_FORCE_CMD_SHIFT				0x07
926*4882a593Smuzhiyun #define PALMAS_SMPS12_FORCE_VSEL_MASK				0x7F
927*4882a593Smuzhiyun #define PALMAS_SMPS12_FORCE_VSEL_SHIFT				0x00
928*4882a593Smuzhiyun 
929*4882a593Smuzhiyun /* Bit definitions for SMPS12_VOLTAGE */
930*4882a593Smuzhiyun #define PALMAS_SMPS12_VOLTAGE_RANGE				0x80
931*4882a593Smuzhiyun #define PALMAS_SMPS12_VOLTAGE_RANGE_SHIFT			0x07
932*4882a593Smuzhiyun #define PALMAS_SMPS12_VOLTAGE_VSEL_MASK				0x7F
933*4882a593Smuzhiyun #define PALMAS_SMPS12_VOLTAGE_VSEL_SHIFT			0x00
934*4882a593Smuzhiyun 
935*4882a593Smuzhiyun /* Bit definitions for SMPS3_CTRL */
936*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_WR_S					0x80
937*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_WR_S_SHIFT				0x07
938*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_STATUS_MASK				0x30
939*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_STATUS_SHIFT				0x04
940*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_MODE_SLEEP_MASK			0x0c
941*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_MODE_SLEEP_SHIFT			0x02
942*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_MODE_ACTIVE_MASK			0x03
943*4882a593Smuzhiyun #define PALMAS_SMPS3_CTRL_MODE_ACTIVE_SHIFT			0x00
944*4882a593Smuzhiyun 
945*4882a593Smuzhiyun /* Bit definitions for SMPS3_VOLTAGE */
946*4882a593Smuzhiyun #define PALMAS_SMPS3_VOLTAGE_RANGE				0x80
947*4882a593Smuzhiyun #define PALMAS_SMPS3_VOLTAGE_RANGE_SHIFT			0x07
948*4882a593Smuzhiyun #define PALMAS_SMPS3_VOLTAGE_VSEL_MASK				0x7F
949*4882a593Smuzhiyun #define PALMAS_SMPS3_VOLTAGE_VSEL_SHIFT				0x00
950*4882a593Smuzhiyun 
951*4882a593Smuzhiyun /* Bit definitions for SMPS45_CTRL */
952*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_WR_S					0x80
953*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_WR_S_SHIFT				0x07
954*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_ROOF_FLOOR_EN			0x40
955*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_ROOF_FLOOR_EN_SHIFT			0x06
956*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_STATUS_MASK				0x30
957*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_STATUS_SHIFT				0x04
958*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_MODE_SLEEP_MASK			0x0c
959*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_MODE_SLEEP_SHIFT			0x02
960*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_MODE_ACTIVE_MASK			0x03
961*4882a593Smuzhiyun #define PALMAS_SMPS45_CTRL_MODE_ACTIVE_SHIFT			0x00
962*4882a593Smuzhiyun 
963*4882a593Smuzhiyun /* Bit definitions for SMPS45_TSTEP */
964*4882a593Smuzhiyun #define PALMAS_SMPS45_TSTEP_TSTEP_MASK				0x03
965*4882a593Smuzhiyun #define PALMAS_SMPS45_TSTEP_TSTEP_SHIFT				0x00
966*4882a593Smuzhiyun 
967*4882a593Smuzhiyun /* Bit definitions for SMPS45_FORCE */
968*4882a593Smuzhiyun #define PALMAS_SMPS45_FORCE_CMD					0x80
969*4882a593Smuzhiyun #define PALMAS_SMPS45_FORCE_CMD_SHIFT				0x07
970*4882a593Smuzhiyun #define PALMAS_SMPS45_FORCE_VSEL_MASK				0x7F
971*4882a593Smuzhiyun #define PALMAS_SMPS45_FORCE_VSEL_SHIFT				0x00
972*4882a593Smuzhiyun 
973*4882a593Smuzhiyun /* Bit definitions for SMPS45_VOLTAGE */
974*4882a593Smuzhiyun #define PALMAS_SMPS45_VOLTAGE_RANGE				0x80
975*4882a593Smuzhiyun #define PALMAS_SMPS45_VOLTAGE_RANGE_SHIFT			0x07
976*4882a593Smuzhiyun #define PALMAS_SMPS45_VOLTAGE_VSEL_MASK				0x7F
977*4882a593Smuzhiyun #define PALMAS_SMPS45_VOLTAGE_VSEL_SHIFT			0x00
978*4882a593Smuzhiyun 
979*4882a593Smuzhiyun /* Bit definitions for SMPS6_CTRL */
980*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_WR_S					0x80
981*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_WR_S_SHIFT				0x07
982*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_ROOF_FLOOR_EN				0x40
983*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_ROOF_FLOOR_EN_SHIFT			0x06
984*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_STATUS_MASK				0x30
985*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_STATUS_SHIFT				0x04
986*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_MODE_SLEEP_MASK			0x0c
987*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_MODE_SLEEP_SHIFT			0x02
988*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_MODE_ACTIVE_MASK			0x03
989*4882a593Smuzhiyun #define PALMAS_SMPS6_CTRL_MODE_ACTIVE_SHIFT			0x00
990*4882a593Smuzhiyun 
991*4882a593Smuzhiyun /* Bit definitions for SMPS6_TSTEP */
992*4882a593Smuzhiyun #define PALMAS_SMPS6_TSTEP_TSTEP_MASK				0x03
993*4882a593Smuzhiyun #define PALMAS_SMPS6_TSTEP_TSTEP_SHIFT				0x00
994*4882a593Smuzhiyun 
995*4882a593Smuzhiyun /* Bit definitions for SMPS6_FORCE */
996*4882a593Smuzhiyun #define PALMAS_SMPS6_FORCE_CMD					0x80
997*4882a593Smuzhiyun #define PALMAS_SMPS6_FORCE_CMD_SHIFT				0x07
998*4882a593Smuzhiyun #define PALMAS_SMPS6_FORCE_VSEL_MASK				0x7F
999*4882a593Smuzhiyun #define PALMAS_SMPS6_FORCE_VSEL_SHIFT				0x00
1000*4882a593Smuzhiyun 
1001*4882a593Smuzhiyun /* Bit definitions for SMPS6_VOLTAGE */
1002*4882a593Smuzhiyun #define PALMAS_SMPS6_VOLTAGE_RANGE				0x80
1003*4882a593Smuzhiyun #define PALMAS_SMPS6_VOLTAGE_RANGE_SHIFT			0x07
1004*4882a593Smuzhiyun #define PALMAS_SMPS6_VOLTAGE_VSEL_MASK				0x7F
1005*4882a593Smuzhiyun #define PALMAS_SMPS6_VOLTAGE_VSEL_SHIFT				0x00
1006*4882a593Smuzhiyun 
1007*4882a593Smuzhiyun /* Bit definitions for SMPS7_CTRL */
1008*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_WR_S					0x80
1009*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_WR_S_SHIFT				0x07
1010*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_STATUS_MASK				0x30
1011*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_STATUS_SHIFT				0x04
1012*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_MODE_SLEEP_MASK			0x0c
1013*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_MODE_SLEEP_SHIFT			0x02
1014*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_MODE_ACTIVE_MASK			0x03
1015*4882a593Smuzhiyun #define PALMAS_SMPS7_CTRL_MODE_ACTIVE_SHIFT			0x00
1016*4882a593Smuzhiyun 
1017*4882a593Smuzhiyun /* Bit definitions for SMPS7_VOLTAGE */
1018*4882a593Smuzhiyun #define PALMAS_SMPS7_VOLTAGE_RANGE				0x80
1019*4882a593Smuzhiyun #define PALMAS_SMPS7_VOLTAGE_RANGE_SHIFT			0x07
1020*4882a593Smuzhiyun #define PALMAS_SMPS7_VOLTAGE_VSEL_MASK				0x7F
1021*4882a593Smuzhiyun #define PALMAS_SMPS7_VOLTAGE_VSEL_SHIFT				0x00
1022*4882a593Smuzhiyun 
1023*4882a593Smuzhiyun /* Bit definitions for SMPS8_CTRL */
1024*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_WR_S					0x80
1025*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_WR_S_SHIFT				0x07
1026*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_ROOF_FLOOR_EN				0x40
1027*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_ROOF_FLOOR_EN_SHIFT			0x06
1028*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_STATUS_MASK				0x30
1029*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_STATUS_SHIFT				0x04
1030*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_MODE_SLEEP_MASK			0x0c
1031*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_MODE_SLEEP_SHIFT			0x02
1032*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_MODE_ACTIVE_MASK			0x03
1033*4882a593Smuzhiyun #define PALMAS_SMPS8_CTRL_MODE_ACTIVE_SHIFT			0x00
1034*4882a593Smuzhiyun 
1035*4882a593Smuzhiyun /* Bit definitions for SMPS8_TSTEP */
1036*4882a593Smuzhiyun #define PALMAS_SMPS8_TSTEP_TSTEP_MASK				0x03
1037*4882a593Smuzhiyun #define PALMAS_SMPS8_TSTEP_TSTEP_SHIFT				0x00
1038*4882a593Smuzhiyun 
1039*4882a593Smuzhiyun /* Bit definitions for SMPS8_FORCE */
1040*4882a593Smuzhiyun #define PALMAS_SMPS8_FORCE_CMD					0x80
1041*4882a593Smuzhiyun #define PALMAS_SMPS8_FORCE_CMD_SHIFT				0x07
1042*4882a593Smuzhiyun #define PALMAS_SMPS8_FORCE_VSEL_MASK				0x7F
1043*4882a593Smuzhiyun #define PALMAS_SMPS8_FORCE_VSEL_SHIFT				0x00
1044*4882a593Smuzhiyun 
1045*4882a593Smuzhiyun /* Bit definitions for SMPS8_VOLTAGE */
1046*4882a593Smuzhiyun #define PALMAS_SMPS8_VOLTAGE_RANGE				0x80
1047*4882a593Smuzhiyun #define PALMAS_SMPS8_VOLTAGE_RANGE_SHIFT			0x07
1048*4882a593Smuzhiyun #define PALMAS_SMPS8_VOLTAGE_VSEL_MASK				0x7F
1049*4882a593Smuzhiyun #define PALMAS_SMPS8_VOLTAGE_VSEL_SHIFT				0x00
1050*4882a593Smuzhiyun 
1051*4882a593Smuzhiyun /* Bit definitions for SMPS9_CTRL */
1052*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_WR_S					0x80
1053*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_WR_S_SHIFT				0x07
1054*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_STATUS_MASK				0x30
1055*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_STATUS_SHIFT				0x04
1056*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_MODE_SLEEP_MASK			0x0c
1057*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_MODE_SLEEP_SHIFT			0x02
1058*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_MODE_ACTIVE_MASK			0x03
1059*4882a593Smuzhiyun #define PALMAS_SMPS9_CTRL_MODE_ACTIVE_SHIFT			0x00
1060*4882a593Smuzhiyun 
1061*4882a593Smuzhiyun /* Bit definitions for SMPS9_VOLTAGE */
1062*4882a593Smuzhiyun #define PALMAS_SMPS9_VOLTAGE_RANGE				0x80
1063*4882a593Smuzhiyun #define PALMAS_SMPS9_VOLTAGE_RANGE_SHIFT			0x07
1064*4882a593Smuzhiyun #define PALMAS_SMPS9_VOLTAGE_VSEL_MASK				0x7F
1065*4882a593Smuzhiyun #define PALMAS_SMPS9_VOLTAGE_VSEL_SHIFT				0x00
1066*4882a593Smuzhiyun 
1067*4882a593Smuzhiyun /* Bit definitions for SMPS10_CTRL */
1068*4882a593Smuzhiyun #define PALMAS_SMPS10_CTRL_MODE_SLEEP_MASK			0xf0
1069*4882a593Smuzhiyun #define PALMAS_SMPS10_CTRL_MODE_SLEEP_SHIFT			0x04
1070*4882a593Smuzhiyun #define PALMAS_SMPS10_CTRL_MODE_ACTIVE_MASK			0x0F
1071*4882a593Smuzhiyun #define PALMAS_SMPS10_CTRL_MODE_ACTIVE_SHIFT			0x00
1072*4882a593Smuzhiyun 
1073*4882a593Smuzhiyun /* Bit definitions for SMPS10_STATUS */
1074*4882a593Smuzhiyun #define PALMAS_SMPS10_STATUS_STATUS_MASK			0x0F
1075*4882a593Smuzhiyun #define PALMAS_SMPS10_STATUS_STATUS_SHIFT			0x00
1076*4882a593Smuzhiyun 
1077*4882a593Smuzhiyun /* Bit definitions for SMPS_CTRL */
1078*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS45_SMPS457_EN			0x20
1079*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS45_SMPS457_EN_SHIFT		0x05
1080*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN			0x10
1081*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN_SHIFT		0x04
1082*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS45_PHASE_CTRL_MASK			0x0c
1083*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS45_PHASE_CTRL_SHIFT		0x02
1084*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS123_PHASE_CTRL_MASK		0x03
1085*4882a593Smuzhiyun #define PALMAS_SMPS_CTRL_SMPS123_PHASE_CTRL_SHIFT		0x00
1086*4882a593Smuzhiyun 
1087*4882a593Smuzhiyun /* Bit definitions for SMPS_PD_CTRL */
1088*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS9				0x40
1089*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS9_SHIFT				0x06
1090*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS8				0x20
1091*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS8_SHIFT				0x05
1092*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS7				0x10
1093*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS7_SHIFT				0x04
1094*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS6				0x08
1095*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS6_SHIFT				0x03
1096*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS45				0x04
1097*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS45_SHIFT			0x02
1098*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS3				0x02
1099*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS3_SHIFT				0x01
1100*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS12				0x01
1101*4882a593Smuzhiyun #define PALMAS_SMPS_PD_CTRL_SMPS12_SHIFT			0x00
1102*4882a593Smuzhiyun 
1103*4882a593Smuzhiyun /* Bit definitions for SMPS_THERMAL_EN */
1104*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS9				0x40
1105*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS9_SHIFT			0x06
1106*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS8				0x20
1107*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS8_SHIFT			0x05
1108*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS6				0x08
1109*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS6_SHIFT			0x03
1110*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS457				0x04
1111*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS457_SHIFT			0x02
1112*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS123				0x01
1113*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_EN_SMPS123_SHIFT			0x00
1114*4882a593Smuzhiyun 
1115*4882a593Smuzhiyun /* Bit definitions for SMPS_THERMAL_STATUS */
1116*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS9			0x40
1117*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS9_SHIFT			0x06
1118*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS8			0x20
1119*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS8_SHIFT			0x05
1120*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS6			0x08
1121*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS6_SHIFT			0x03
1122*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS457			0x04
1123*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS457_SHIFT		0x02
1124*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS123			0x01
1125*4882a593Smuzhiyun #define PALMAS_SMPS_THERMAL_STATUS_SMPS123_SHIFT		0x00
1126*4882a593Smuzhiyun 
1127*4882a593Smuzhiyun /* Bit definitions for SMPS_SHORT_STATUS */
1128*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS10				0x80
1129*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS10_SHIFT			0x07
1130*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS9				0x40
1131*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS9_SHIFT			0x06
1132*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS8				0x20
1133*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS8_SHIFT			0x05
1134*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS7				0x10
1135*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS7_SHIFT			0x04
1136*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS6				0x08
1137*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS6_SHIFT			0x03
1138*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS45				0x04
1139*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS45_SHIFT			0x02
1140*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS3				0x02
1141*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS3_SHIFT			0x01
1142*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS12				0x01
1143*4882a593Smuzhiyun #define PALMAS_SMPS_SHORT_STATUS_SMPS12_SHIFT			0x00
1144*4882a593Smuzhiyun 
1145*4882a593Smuzhiyun /* Bit definitions for SMPS_NEGATIVE_CURRENT_LIMIT_EN */
1146*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS9		0x40
1147*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS9_SHIFT	0x06
1148*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS8		0x20
1149*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS8_SHIFT	0x05
1150*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS7		0x10
1151*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS7_SHIFT	0x04
1152*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS6		0x08
1153*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS6_SHIFT	0x03
1154*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS45		0x04
1155*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS45_SHIFT	0x02
1156*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS3		0x02
1157*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS3_SHIFT	0x01
1158*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS12		0x01
1159*4882a593Smuzhiyun #define PALMAS_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS12_SHIFT	0x00
1160*4882a593Smuzhiyun 
1161*4882a593Smuzhiyun /* Bit definitions for SMPS_POWERGOOD_MASK1 */
1162*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS10			0x80
1163*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS10_SHIFT		0x07
1164*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS9			0x40
1165*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS9_SHIFT			0x06
1166*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS8			0x20
1167*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS8_SHIFT			0x05
1168*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS7			0x10
1169*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS7_SHIFT			0x04
1170*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS6			0x08
1171*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS6_SHIFT			0x03
1172*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS45			0x04
1173*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS45_SHIFT		0x02
1174*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS3			0x02
1175*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS3_SHIFT			0x01
1176*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS12			0x01
1177*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK1_SMPS12_SHIFT		0x00
1178*4882a593Smuzhiyun 
1179*4882a593Smuzhiyun /* Bit definitions for SMPS_POWERGOOD_MASK2 */
1180*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_POWERGOOD_TYPE_SELECT	0x80
1181*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_POWERGOOD_TYPE_SELECT_SHIFT	0x07
1182*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_GPIO_7			0x04
1183*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_GPIO_7_SHIFT		0x02
1184*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_VBUS			0x02
1185*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_VBUS_SHIFT			0x01
1186*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_ACOK			0x01
1187*4882a593Smuzhiyun #define PALMAS_SMPS_POWERGOOD_MASK2_ACOK_SHIFT			0x00
1188*4882a593Smuzhiyun 
1189*4882a593Smuzhiyun /* Registers for function LDO */
1190*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL					0x00
1191*4882a593Smuzhiyun #define PALMAS_LDO1_VOLTAGE					0x01
1192*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL					0x02
1193*4882a593Smuzhiyun #define PALMAS_LDO2_VOLTAGE					0x03
1194*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL					0x04
1195*4882a593Smuzhiyun #define PALMAS_LDO3_VOLTAGE					0x05
1196*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL					0x06
1197*4882a593Smuzhiyun #define PALMAS_LDO4_VOLTAGE					0x07
1198*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL					0x08
1199*4882a593Smuzhiyun #define PALMAS_LDO5_VOLTAGE					0x09
1200*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL					0x0A
1201*4882a593Smuzhiyun #define PALMAS_LDO6_VOLTAGE					0x0B
1202*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL					0x0C
1203*4882a593Smuzhiyun #define PALMAS_LDO7_VOLTAGE					0x0D
1204*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL					0x0E
1205*4882a593Smuzhiyun #define PALMAS_LDO8_VOLTAGE					0x0F
1206*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL					0x10
1207*4882a593Smuzhiyun #define PALMAS_LDO9_VOLTAGE					0x11
1208*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL					0x12
1209*4882a593Smuzhiyun #define PALMAS_LDOLN_VOLTAGE					0x13
1210*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL					0x14
1211*4882a593Smuzhiyun #define PALMAS_LDOUSB_VOLTAGE					0x15
1212*4882a593Smuzhiyun #define PALMAS_LDO_CTRL						0x1A
1213*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1					0x1B
1214*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2					0x1C
1215*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1				0x1D
1216*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2				0x1E
1217*4882a593Smuzhiyun 
1218*4882a593Smuzhiyun /* Bit definitions for LDO1_CTRL */
1219*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_WR_S					0x80
1220*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_WR_S_SHIFT				0x07
1221*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_STATUS					0x10
1222*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_STATUS_SHIFT				0x04
1223*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_MODE_SLEEP				0x04
1224*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_MODE_SLEEP_SHIFT			0x02
1225*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_MODE_ACTIVE				0x01
1226*4882a593Smuzhiyun #define PALMAS_LDO1_CTRL_MODE_ACTIVE_SHIFT			0x00
1227*4882a593Smuzhiyun 
1228*4882a593Smuzhiyun /* Bit definitions for LDO1_VOLTAGE */
1229*4882a593Smuzhiyun #define PALMAS_LDO1_VOLTAGE_VSEL_MASK				0x3F
1230*4882a593Smuzhiyun #define PALMAS_LDO1_VOLTAGE_VSEL_SHIFT				0x00
1231*4882a593Smuzhiyun 
1232*4882a593Smuzhiyun /* Bit definitions for LDO2_CTRL */
1233*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_WR_S					0x80
1234*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_WR_S_SHIFT				0x07
1235*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_STATUS					0x10
1236*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_STATUS_SHIFT				0x04
1237*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_MODE_SLEEP				0x04
1238*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_MODE_SLEEP_SHIFT			0x02
1239*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_MODE_ACTIVE				0x01
1240*4882a593Smuzhiyun #define PALMAS_LDO2_CTRL_MODE_ACTIVE_SHIFT			0x00
1241*4882a593Smuzhiyun 
1242*4882a593Smuzhiyun /* Bit definitions for LDO2_VOLTAGE */
1243*4882a593Smuzhiyun #define PALMAS_LDO2_VOLTAGE_VSEL_MASK				0x3F
1244*4882a593Smuzhiyun #define PALMAS_LDO2_VOLTAGE_VSEL_SHIFT				0x00
1245*4882a593Smuzhiyun 
1246*4882a593Smuzhiyun /* Bit definitions for LDO3_CTRL */
1247*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_WR_S					0x80
1248*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_WR_S_SHIFT				0x07
1249*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_STATUS					0x10
1250*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_STATUS_SHIFT				0x04
1251*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_MODE_SLEEP				0x04
1252*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_MODE_SLEEP_SHIFT			0x02
1253*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_MODE_ACTIVE				0x01
1254*4882a593Smuzhiyun #define PALMAS_LDO3_CTRL_MODE_ACTIVE_SHIFT			0x00
1255*4882a593Smuzhiyun 
1256*4882a593Smuzhiyun /* Bit definitions for LDO3_VOLTAGE */
1257*4882a593Smuzhiyun #define PALMAS_LDO3_VOLTAGE_VSEL_MASK				0x3F
1258*4882a593Smuzhiyun #define PALMAS_LDO3_VOLTAGE_VSEL_SHIFT				0x00
1259*4882a593Smuzhiyun 
1260*4882a593Smuzhiyun /* Bit definitions for LDO4_CTRL */
1261*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_WR_S					0x80
1262*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_WR_S_SHIFT				0x07
1263*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_STATUS					0x10
1264*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_STATUS_SHIFT				0x04
1265*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_MODE_SLEEP				0x04
1266*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_MODE_SLEEP_SHIFT			0x02
1267*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_MODE_ACTIVE				0x01
1268*4882a593Smuzhiyun #define PALMAS_LDO4_CTRL_MODE_ACTIVE_SHIFT			0x00
1269*4882a593Smuzhiyun 
1270*4882a593Smuzhiyun /* Bit definitions for LDO4_VOLTAGE */
1271*4882a593Smuzhiyun #define PALMAS_LDO4_VOLTAGE_VSEL_MASK				0x3F
1272*4882a593Smuzhiyun #define PALMAS_LDO4_VOLTAGE_VSEL_SHIFT				0x00
1273*4882a593Smuzhiyun 
1274*4882a593Smuzhiyun /* Bit definitions for LDO5_CTRL */
1275*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_WR_S					0x80
1276*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_WR_S_SHIFT				0x07
1277*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_STATUS					0x10
1278*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_STATUS_SHIFT				0x04
1279*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_MODE_SLEEP				0x04
1280*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_MODE_SLEEP_SHIFT			0x02
1281*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_MODE_ACTIVE				0x01
1282*4882a593Smuzhiyun #define PALMAS_LDO5_CTRL_MODE_ACTIVE_SHIFT			0x00
1283*4882a593Smuzhiyun 
1284*4882a593Smuzhiyun /* Bit definitions for LDO5_VOLTAGE */
1285*4882a593Smuzhiyun #define PALMAS_LDO5_VOLTAGE_VSEL_MASK				0x3F
1286*4882a593Smuzhiyun #define PALMAS_LDO5_VOLTAGE_VSEL_SHIFT				0x00
1287*4882a593Smuzhiyun 
1288*4882a593Smuzhiyun /* Bit definitions for LDO6_CTRL */
1289*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_WR_S					0x80
1290*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_WR_S_SHIFT				0x07
1291*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_LDO_VIB_EN				0x40
1292*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_LDO_VIB_EN_SHIFT			0x06
1293*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_STATUS					0x10
1294*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_STATUS_SHIFT				0x04
1295*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_MODE_SLEEP				0x04
1296*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_MODE_SLEEP_SHIFT			0x02
1297*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_MODE_ACTIVE				0x01
1298*4882a593Smuzhiyun #define PALMAS_LDO6_CTRL_MODE_ACTIVE_SHIFT			0x00
1299*4882a593Smuzhiyun 
1300*4882a593Smuzhiyun /* Bit definitions for LDO6_VOLTAGE */
1301*4882a593Smuzhiyun #define PALMAS_LDO6_VOLTAGE_VSEL_MASK				0x3F
1302*4882a593Smuzhiyun #define PALMAS_LDO6_VOLTAGE_VSEL_SHIFT				0x00
1303*4882a593Smuzhiyun 
1304*4882a593Smuzhiyun /* Bit definitions for LDO7_CTRL */
1305*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_WR_S					0x80
1306*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_WR_S_SHIFT				0x07
1307*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_STATUS					0x10
1308*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_STATUS_SHIFT				0x04
1309*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_MODE_SLEEP				0x04
1310*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_MODE_SLEEP_SHIFT			0x02
1311*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_MODE_ACTIVE				0x01
1312*4882a593Smuzhiyun #define PALMAS_LDO7_CTRL_MODE_ACTIVE_SHIFT			0x00
1313*4882a593Smuzhiyun 
1314*4882a593Smuzhiyun /* Bit definitions for LDO7_VOLTAGE */
1315*4882a593Smuzhiyun #define PALMAS_LDO7_VOLTAGE_VSEL_MASK				0x3F
1316*4882a593Smuzhiyun #define PALMAS_LDO7_VOLTAGE_VSEL_SHIFT				0x00
1317*4882a593Smuzhiyun 
1318*4882a593Smuzhiyun /* Bit definitions for LDO8_CTRL */
1319*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_WR_S					0x80
1320*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_WR_S_SHIFT				0x07
1321*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_LDO_TRACKING_EN			0x40
1322*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_LDO_TRACKING_EN_SHIFT			0x06
1323*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_STATUS					0x10
1324*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_STATUS_SHIFT				0x04
1325*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_MODE_SLEEP				0x04
1326*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_MODE_SLEEP_SHIFT			0x02
1327*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_MODE_ACTIVE				0x01
1328*4882a593Smuzhiyun #define PALMAS_LDO8_CTRL_MODE_ACTIVE_SHIFT			0x00
1329*4882a593Smuzhiyun 
1330*4882a593Smuzhiyun /* Bit definitions for LDO8_VOLTAGE */
1331*4882a593Smuzhiyun #define PALMAS_LDO8_VOLTAGE_VSEL_MASK				0x3F
1332*4882a593Smuzhiyun #define PALMAS_LDO8_VOLTAGE_VSEL_SHIFT				0x00
1333*4882a593Smuzhiyun 
1334*4882a593Smuzhiyun /* Bit definitions for LDO9_CTRL */
1335*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_WR_S					0x80
1336*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_WR_S_SHIFT				0x07
1337*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_LDO_BYPASS_EN				0x40
1338*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_LDO_BYPASS_EN_SHIFT			0x06
1339*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_STATUS					0x10
1340*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_STATUS_SHIFT				0x04
1341*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_MODE_SLEEP				0x04
1342*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_MODE_SLEEP_SHIFT			0x02
1343*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_MODE_ACTIVE				0x01
1344*4882a593Smuzhiyun #define PALMAS_LDO9_CTRL_MODE_ACTIVE_SHIFT			0x00
1345*4882a593Smuzhiyun 
1346*4882a593Smuzhiyun /* Bit definitions for LDO9_VOLTAGE */
1347*4882a593Smuzhiyun #define PALMAS_LDO9_VOLTAGE_VSEL_MASK				0x3F
1348*4882a593Smuzhiyun #define PALMAS_LDO9_VOLTAGE_VSEL_SHIFT				0x00
1349*4882a593Smuzhiyun 
1350*4882a593Smuzhiyun /* Bit definitions for LDOLN_CTRL */
1351*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_WR_S					0x80
1352*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_WR_S_SHIFT				0x07
1353*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_STATUS				0x10
1354*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_STATUS_SHIFT				0x04
1355*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_MODE_SLEEP				0x04
1356*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_MODE_SLEEP_SHIFT			0x02
1357*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_MODE_ACTIVE				0x01
1358*4882a593Smuzhiyun #define PALMAS_LDOLN_CTRL_MODE_ACTIVE_SHIFT			0x00
1359*4882a593Smuzhiyun 
1360*4882a593Smuzhiyun /* Bit definitions for LDOLN_VOLTAGE */
1361*4882a593Smuzhiyun #define PALMAS_LDOLN_VOLTAGE_VSEL_MASK				0x3F
1362*4882a593Smuzhiyun #define PALMAS_LDOLN_VOLTAGE_VSEL_SHIFT				0x00
1363*4882a593Smuzhiyun 
1364*4882a593Smuzhiyun /* Bit definitions for LDOUSB_CTRL */
1365*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_WR_S					0x80
1366*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_WR_S_SHIFT				0x07
1367*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_STATUS				0x10
1368*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_STATUS_SHIFT				0x04
1369*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_MODE_SLEEP				0x04
1370*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_MODE_SLEEP_SHIFT			0x02
1371*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_MODE_ACTIVE				0x01
1372*4882a593Smuzhiyun #define PALMAS_LDOUSB_CTRL_MODE_ACTIVE_SHIFT			0x00
1373*4882a593Smuzhiyun 
1374*4882a593Smuzhiyun /* Bit definitions for LDOUSB_VOLTAGE */
1375*4882a593Smuzhiyun #define PALMAS_LDOUSB_VOLTAGE_VSEL_MASK				0x3F
1376*4882a593Smuzhiyun #define PALMAS_LDOUSB_VOLTAGE_VSEL_SHIFT			0x00
1377*4882a593Smuzhiyun 
1378*4882a593Smuzhiyun /* Bit definitions for LDO_CTRL */
1379*4882a593Smuzhiyun #define PALMAS_LDO_CTRL_LDOUSB_ON_VBUS_VSYS			0x01
1380*4882a593Smuzhiyun #define PALMAS_LDO_CTRL_LDOUSB_ON_VBUS_VSYS_SHIFT		0x00
1381*4882a593Smuzhiyun 
1382*4882a593Smuzhiyun /* Bit definitions for LDO_PD_CTRL1 */
1383*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO8				0x80
1384*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO8_SHIFT				0x07
1385*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO7				0x40
1386*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO7_SHIFT				0x06
1387*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO6				0x20
1388*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO6_SHIFT				0x05
1389*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO5				0x10
1390*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO5_SHIFT				0x04
1391*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO4				0x08
1392*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO4_SHIFT				0x03
1393*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO3				0x04
1394*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO3_SHIFT				0x02
1395*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO2				0x02
1396*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO2_SHIFT				0x01
1397*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO1				0x01
1398*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL1_LDO1_SHIFT				0x00
1399*4882a593Smuzhiyun 
1400*4882a593Smuzhiyun /* Bit definitions for LDO_PD_CTRL2 */
1401*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDOUSB				0x04
1402*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDOUSB_SHIFT			0x02
1403*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDOLN				0x02
1404*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDOLN_SHIFT				0x01
1405*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDO9				0x01
1406*4882a593Smuzhiyun #define PALMAS_LDO_PD_CTRL2_LDO9_SHIFT				0x00
1407*4882a593Smuzhiyun 
1408*4882a593Smuzhiyun /* Bit definitions for LDO_SHORT_STATUS1 */
1409*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO8				0x80
1410*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO8_SHIFT			0x07
1411*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO7				0x40
1412*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO7_SHIFT			0x06
1413*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO6				0x20
1414*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO6_SHIFT			0x05
1415*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO5				0x10
1416*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO5_SHIFT			0x04
1417*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO4				0x08
1418*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO4_SHIFT			0x03
1419*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO3				0x04
1420*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO3_SHIFT			0x02
1421*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO2				0x02
1422*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO2_SHIFT			0x01
1423*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO1				0x01
1424*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS1_LDO1_SHIFT			0x00
1425*4882a593Smuzhiyun 
1426*4882a593Smuzhiyun /* Bit definitions for LDO_SHORT_STATUS2 */
1427*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOVANA			0x08
1428*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOVANA_SHIFT			0x03
1429*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOUSB				0x04
1430*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOUSB_SHIFT			0x02
1431*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOLN				0x02
1432*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDOLN_SHIFT			0x01
1433*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDO9				0x01
1434*4882a593Smuzhiyun #define PALMAS_LDO_SHORT_STATUS2_LDO9_SHIFT			0x00
1435*4882a593Smuzhiyun 
1436*4882a593Smuzhiyun /* Registers for function PMU_CONTROL */
1437*4882a593Smuzhiyun #define PALMAS_DEV_CTRL						0x00
1438*4882a593Smuzhiyun #define PALMAS_POWER_CTRL					0x01
1439*4882a593Smuzhiyun #define PALMAS_VSYS_LO						0x02
1440*4882a593Smuzhiyun #define PALMAS_VSYS_MON						0x03
1441*4882a593Smuzhiyun #define PALMAS_VBAT_MON						0x04
1442*4882a593Smuzhiyun #define PALMAS_WATCHDOG						0x05
1443*4882a593Smuzhiyun #define PALMAS_BOOT_STATUS					0x06
1444*4882a593Smuzhiyun #define PALMAS_BATTERY_BOUNCE					0x07
1445*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL				0x08
1446*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY					0x09
1447*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL					0x0A
1448*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING					0x0B
1449*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST					0x0F
1450*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST					0x10
1451*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS					0x11
1452*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG					0x12
1453*4882a593Smuzhiyun #define PALMAS_SPARE						0x14
1454*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT				0x15
1455*4882a593Smuzhiyun #define PALMAS_SW_REVISION					0x17
1456*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL					0x18
1457*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2				0x19
1458*4882a593Smuzhiyun 
1459*4882a593Smuzhiyun /* Bit definitions for DEV_CTRL */
1460*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_DEV_STATUS_MASK				0x0c
1461*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_DEV_STATUS_SHIFT			0x02
1462*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_SW_RST					0x02
1463*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_SW_RST_SHIFT				0x01
1464*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_DEV_ON					0x01
1465*4882a593Smuzhiyun #define PALMAS_DEV_CTRL_DEV_ON_SHIFT				0x00
1466*4882a593Smuzhiyun 
1467*4882a593Smuzhiyun /* Bit definitions for POWER_CTRL */
1468*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_ENABLE2_MASK				0x04
1469*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_ENABLE2_MASK_SHIFT			0x02
1470*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_ENABLE1_MASK				0x02
1471*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_ENABLE1_MASK_SHIFT			0x01
1472*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_NSLEEP_MASK				0x01
1473*4882a593Smuzhiyun #define PALMAS_POWER_CTRL_NSLEEP_MASK_SHIFT			0x00
1474*4882a593Smuzhiyun 
1475*4882a593Smuzhiyun /* Bit definitions for VSYS_LO */
1476*4882a593Smuzhiyun #define PALMAS_VSYS_LO_THRESHOLD_MASK				0x1F
1477*4882a593Smuzhiyun #define PALMAS_VSYS_LO_THRESHOLD_SHIFT				0x00
1478*4882a593Smuzhiyun 
1479*4882a593Smuzhiyun /* Bit definitions for VSYS_MON */
1480*4882a593Smuzhiyun #define PALMAS_VSYS_MON_ENABLE					0x80
1481*4882a593Smuzhiyun #define PALMAS_VSYS_MON_ENABLE_SHIFT				0x07
1482*4882a593Smuzhiyun #define PALMAS_VSYS_MON_THRESHOLD_MASK				0x3F
1483*4882a593Smuzhiyun #define PALMAS_VSYS_MON_THRESHOLD_SHIFT				0x00
1484*4882a593Smuzhiyun 
1485*4882a593Smuzhiyun /* Bit definitions for VBAT_MON */
1486*4882a593Smuzhiyun #define PALMAS_VBAT_MON_ENABLE					0x80
1487*4882a593Smuzhiyun #define PALMAS_VBAT_MON_ENABLE_SHIFT				0x07
1488*4882a593Smuzhiyun #define PALMAS_VBAT_MON_THRESHOLD_MASK				0x3F
1489*4882a593Smuzhiyun #define PALMAS_VBAT_MON_THRESHOLD_SHIFT				0x00
1490*4882a593Smuzhiyun 
1491*4882a593Smuzhiyun /* Bit definitions for WATCHDOG */
1492*4882a593Smuzhiyun #define PALMAS_WATCHDOG_LOCK					0x20
1493*4882a593Smuzhiyun #define PALMAS_WATCHDOG_LOCK_SHIFT				0x05
1494*4882a593Smuzhiyun #define PALMAS_WATCHDOG_ENABLE					0x10
1495*4882a593Smuzhiyun #define PALMAS_WATCHDOG_ENABLE_SHIFT				0x04
1496*4882a593Smuzhiyun #define PALMAS_WATCHDOG_MODE					0x08
1497*4882a593Smuzhiyun #define PALMAS_WATCHDOG_MODE_SHIFT				0x03
1498*4882a593Smuzhiyun #define PALMAS_WATCHDOG_TIMER_MASK				0x07
1499*4882a593Smuzhiyun #define PALMAS_WATCHDOG_TIMER_SHIFT				0x00
1500*4882a593Smuzhiyun 
1501*4882a593Smuzhiyun /* Bit definitions for BOOT_STATUS */
1502*4882a593Smuzhiyun #define PALMAS_BOOT_STATUS_BOOT1				0x02
1503*4882a593Smuzhiyun #define PALMAS_BOOT_STATUS_BOOT1_SHIFT				0x01
1504*4882a593Smuzhiyun #define PALMAS_BOOT_STATUS_BOOT0				0x01
1505*4882a593Smuzhiyun #define PALMAS_BOOT_STATUS_BOOT0_SHIFT				0x00
1506*4882a593Smuzhiyun 
1507*4882a593Smuzhiyun /* Bit definitions for BATTERY_BOUNCE */
1508*4882a593Smuzhiyun #define PALMAS_BATTERY_BOUNCE_BB_DELAY_MASK			0x3F
1509*4882a593Smuzhiyun #define PALMAS_BATTERY_BOUNCE_BB_DELAY_SHIFT			0x00
1510*4882a593Smuzhiyun 
1511*4882a593Smuzhiyun /* Bit definitions for BACKUP_BATTERY_CTRL */
1512*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_18_15			0x80
1513*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_18_15_SHIFT		0x07
1514*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_EN_SLP			0x40
1515*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_EN_SLP_SHIFT		0x06
1516*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_EN_OFF			0x20
1517*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_EN_OFF_SHIFT		0x05
1518*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_PWEN			0x10
1519*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_VRTC_PWEN_SHIFT		0x04
1520*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BBS_BBC_LOW_ICHRG		0x08
1521*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BBS_BBC_LOW_ICHRG_SHIFT	0x03
1522*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BB_SEL_MASK			0x06
1523*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BB_SEL_SHIFT			0x01
1524*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BB_CHG_EN			0x01
1525*4882a593Smuzhiyun #define PALMAS_BACKUP_BATTERY_CTRL_BB_CHG_EN_SHIFT		0x00
1526*4882a593Smuzhiyun 
1527*4882a593Smuzhiyun /* Bit definitions for LONG_PRESS_KEY */
1528*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_LOCK				0x80
1529*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_LOCK_SHIFT			0x07
1530*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_INT_CLR			0x10
1531*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_INT_CLR_SHIFT			0x04
1532*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_TIME_MASK			0x0c
1533*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_LPK_TIME_SHIFT			0x02
1534*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_PWRON_DEBOUNCE_MASK		0x03
1535*4882a593Smuzhiyun #define PALMAS_LONG_PRESS_KEY_PWRON_DEBOUNCE_SHIFT		0x00
1536*4882a593Smuzhiyun 
1537*4882a593Smuzhiyun /* Bit definitions for OSC_THERM_CTRL */
1538*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_VANA_ON_IN_SLEEP			0x80
1539*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_VANA_ON_IN_SLEEP_SHIFT		0x07
1540*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_INT_MASK_IN_SLEEP			0x40
1541*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_INT_MASK_IN_SLEEP_SHIFT		0x06
1542*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_RC15MHZ_ON_IN_SLEEP		0x20
1543*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_RC15MHZ_ON_IN_SLEEP_SHIFT		0x05
1544*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_THERM_OFF_IN_SLEEP		0x10
1545*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_THERM_OFF_IN_SLEEP_SHIFT		0x04
1546*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_THERM_HD_SEL_MASK			0x0c
1547*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_THERM_HD_SEL_SHIFT		0x02
1548*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_OSC_BYPASS			0x02
1549*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_OSC_BYPASS_SHIFT			0x01
1550*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_OSC_HPMODE			0x01
1551*4882a593Smuzhiyun #define PALMAS_OSC_THERM_CTRL_OSC_HPMODE_SHIFT			0x00
1552*4882a593Smuzhiyun 
1553*4882a593Smuzhiyun /* Bit definitions for BATDEBOUNCING */
1554*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BAT_DEB_BYPASS			0x80
1555*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BAT_DEB_BYPASS_SHIFT		0x07
1556*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BINS_DEB_MASK			0x78
1557*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BINS_DEB_SHIFT			0x03
1558*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BEXT_DEB_MASK			0x07
1559*4882a593Smuzhiyun #define PALMAS_BATDEBOUNCING_BEXT_DEB_SHIFT			0x00
1560*4882a593Smuzhiyun 
1561*4882a593Smuzhiyun /* Bit definitions for SWOFF_HWRST */
1562*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_PWRON_LPK				0x80
1563*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_PWRON_LPK_SHIFT			0x07
1564*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_PWRDOWN				0x40
1565*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_PWRDOWN_SHIFT			0x06
1566*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_WTD					0x20
1567*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_WTD_SHIFT				0x05
1568*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_TSHUT				0x10
1569*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_TSHUT_SHIFT				0x04
1570*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_RESET_IN				0x08
1571*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_RESET_IN_SHIFT			0x03
1572*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_SW_RST				0x04
1573*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_SW_RST_SHIFT				0x02
1574*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_VSYS_LO				0x02
1575*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_VSYS_LO_SHIFT			0x01
1576*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_GPADC_SHUTDOWN			0x01
1577*4882a593Smuzhiyun #define PALMAS_SWOFF_HWRST_GPADC_SHUTDOWN_SHIFT			0x00
1578*4882a593Smuzhiyun 
1579*4882a593Smuzhiyun /* Bit definitions for SWOFF_COLDRST */
1580*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_PWRON_LPK				0x80
1581*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_PWRON_LPK_SHIFT			0x07
1582*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_PWRDOWN				0x40
1583*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_PWRDOWN_SHIFT			0x06
1584*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_WTD				0x20
1585*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_WTD_SHIFT				0x05
1586*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_TSHUT				0x10
1587*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_TSHUT_SHIFT			0x04
1588*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_RESET_IN				0x08
1589*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_RESET_IN_SHIFT			0x03
1590*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_SW_RST				0x04
1591*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_SW_RST_SHIFT			0x02
1592*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_VSYS_LO				0x02
1593*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_VSYS_LO_SHIFT			0x01
1594*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_GPADC_SHUTDOWN			0x01
1595*4882a593Smuzhiyun #define PALMAS_SWOFF_COLDRST_GPADC_SHUTDOWN_SHIFT		0x00
1596*4882a593Smuzhiyun 
1597*4882a593Smuzhiyun /* Bit definitions for SWOFF_STATUS */
1598*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_PWRON_LPK				0x80
1599*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_PWRON_LPK_SHIFT			0x07
1600*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_PWRDOWN				0x40
1601*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_PWRDOWN_SHIFT			0x06
1602*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_WTD					0x20
1603*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_WTD_SHIFT				0x05
1604*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_TSHUT				0x10
1605*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_TSHUT_SHIFT				0x04
1606*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_RESET_IN				0x08
1607*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_RESET_IN_SHIFT			0x03
1608*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_SW_RST				0x04
1609*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_SW_RST_SHIFT			0x02
1610*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_VSYS_LO				0x02
1611*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_VSYS_LO_SHIFT			0x01
1612*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_GPADC_SHUTDOWN			0x01
1613*4882a593Smuzhiyun #define PALMAS_SWOFF_STATUS_GPADC_SHUTDOWN_SHIFT		0x00
1614*4882a593Smuzhiyun 
1615*4882a593Smuzhiyun /* Bit definitions for PMU_CONFIG */
1616*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_MULTI_CELL_EN				0x40
1617*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_MULTI_CELL_EN_SHIFT			0x06
1618*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_SPARE_MASK				0x30
1619*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_SPARE_SHIFT				0x04
1620*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_SWOFF_DLY_MASK			0x0c
1621*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_SWOFF_DLY_SHIFT			0x02
1622*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_GATE_RESET_OUT			0x02
1623*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_GATE_RESET_OUT_SHIFT			0x01
1624*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_AUTODEVON				0x01
1625*4882a593Smuzhiyun #define PALMAS_PMU_CONFIG_AUTODEVON_SHIFT			0x00
1626*4882a593Smuzhiyun 
1627*4882a593Smuzhiyun /* Bit definitions for SPARE */
1628*4882a593Smuzhiyun #define PALMAS_SPARE_SPARE_MASK					0xf8
1629*4882a593Smuzhiyun #define PALMAS_SPARE_SPARE_SHIFT				0x03
1630*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN3_OD					0x04
1631*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN3_OD_SHIFT				0x02
1632*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN2_OD					0x02
1633*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN2_OD_SHIFT				0x01
1634*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN1_OD					0x01
1635*4882a593Smuzhiyun #define PALMAS_SPARE_REGEN1_OD_SHIFT				0x00
1636*4882a593Smuzhiyun 
1637*4882a593Smuzhiyun /* Bit definitions for PMU_SECONDARY_INT */
1638*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_VBUS_OVV_INT_SRC		0x80
1639*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_VBUS_OVV_INT_SRC_SHIFT		0x07
1640*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_CHARG_DET_N_INT_SRC		0x40
1641*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_CHARG_DET_N_INT_SRC_SHIFT	0x06
1642*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_BB_INT_SRC			0x20
1643*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_BB_INT_SRC_SHIFT		0x05
1644*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_FBI_INT_SRC			0x10
1645*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_FBI_INT_SRC_SHIFT		0x04
1646*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_VBUS_OVV_MASK			0x08
1647*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_VBUS_OVV_MASK_SHIFT		0x03
1648*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_CHARG_DET_N_MASK		0x04
1649*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_CHARG_DET_N_MASK_SHIFT		0x02
1650*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_BB_MASK			0x02
1651*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_BB_MASK_SHIFT			0x01
1652*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_FBI_MASK			0x01
1653*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT_FBI_MASK_SHIFT			0x00
1654*4882a593Smuzhiyun 
1655*4882a593Smuzhiyun /* Bit definitions for SW_REVISION */
1656*4882a593Smuzhiyun #define PALMAS_SW_REVISION_SW_REVISION_MASK			0xFF
1657*4882a593Smuzhiyun #define PALMAS_SW_REVISION_SW_REVISION_SHIFT			0x00
1658*4882a593Smuzhiyun 
1659*4882a593Smuzhiyun /* Bit definitions for EXT_CHRG_CTRL */
1660*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_VBUS_OVV_STATUS			0x80
1661*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_VBUS_OVV_STATUS_SHIFT		0x07
1662*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_CHARG_DET_N_STATUS			0x40
1663*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_CHARG_DET_N_STATUS_SHIFT		0x06
1664*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_VSYS_DEBOUNCE_DELAY		0x08
1665*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_VSYS_DEBOUNCE_DELAY_SHIFT		0x03
1666*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_CHRG_DET_N				0x04
1667*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_CHRG_DET_N_SHIFT			0x02
1668*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_AUTO_ACA_EN			0x02
1669*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_AUTO_ACA_EN_SHIFT			0x01
1670*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_AUTO_LDOUSB_EN			0x01
1671*4882a593Smuzhiyun #define PALMAS_EXT_CHRG_CTRL_AUTO_LDOUSB_EN_SHIFT		0x00
1672*4882a593Smuzhiyun 
1673*4882a593Smuzhiyun /* Bit definitions for PMU_SECONDARY_INT2 */
1674*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS2_INT_SRC			0x20
1675*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS2_INT_SRC_SHIFT		0x05
1676*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS1_INT_SRC			0x10
1677*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS1_INT_SRC_SHIFT		0x04
1678*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS2_MASK			0x02
1679*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS2_MASK_SHIFT		0x01
1680*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS1_MASK			0x01
1681*4882a593Smuzhiyun #define PALMAS_PMU_SECONDARY_INT2_DVFS1_MASK_SHIFT		0x00
1682*4882a593Smuzhiyun 
1683*4882a593Smuzhiyun /* Registers for function RESOURCE */
1684*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL					0x00
1685*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL				0x01
1686*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL					0x02
1687*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL					0x03
1688*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL					0x04
1689*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL					0x05
1690*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN				0x06
1691*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN				0x07
1692*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1				0x08
1693*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2				0x09
1694*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN				0x0A
1695*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN				0x0B
1696*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1				0x0C
1697*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2				0x0D
1698*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN				0x0E
1699*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN				0x0F
1700*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1				0x10
1701*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2				0x11
1702*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL					0x12
1703*4882a593Smuzhiyun 
1704*4882a593Smuzhiyun /* Bit definitions for CLK32KG_CTRL */
1705*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_STATUS				0x10
1706*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_STATUS_SHIFT			0x04
1707*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_MODE_SLEEP				0x04
1708*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_MODE_SLEEP_SHIFT			0x02
1709*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_MODE_ACTIVE				0x01
1710*4882a593Smuzhiyun #define PALMAS_CLK32KG_CTRL_MODE_ACTIVE_SHIFT			0x00
1711*4882a593Smuzhiyun 
1712*4882a593Smuzhiyun /* Bit definitions for CLK32KGAUDIO_CTRL */
1713*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_STATUS				0x10
1714*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_STATUS_SHIFT			0x04
1715*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_RESERVED3			0x08
1716*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_RESERVED3_SHIFT		0x03
1717*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_MODE_SLEEP			0x04
1718*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_MODE_SLEEP_SHIFT		0x02
1719*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_MODE_ACTIVE			0x01
1720*4882a593Smuzhiyun #define PALMAS_CLK32KGAUDIO_CTRL_MODE_ACTIVE_SHIFT		0x00
1721*4882a593Smuzhiyun 
1722*4882a593Smuzhiyun /* Bit definitions for REGEN1_CTRL */
1723*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_STATUS				0x10
1724*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_STATUS_SHIFT				0x04
1725*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_MODE_SLEEP				0x04
1726*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_MODE_SLEEP_SHIFT			0x02
1727*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_MODE_ACTIVE				0x01
1728*4882a593Smuzhiyun #define PALMAS_REGEN1_CTRL_MODE_ACTIVE_SHIFT			0x00
1729*4882a593Smuzhiyun 
1730*4882a593Smuzhiyun /* Bit definitions for REGEN2_CTRL */
1731*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_STATUS				0x10
1732*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_STATUS_SHIFT				0x04
1733*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_MODE_SLEEP				0x04
1734*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_MODE_SLEEP_SHIFT			0x02
1735*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_MODE_ACTIVE				0x01
1736*4882a593Smuzhiyun #define PALMAS_REGEN2_CTRL_MODE_ACTIVE_SHIFT			0x00
1737*4882a593Smuzhiyun 
1738*4882a593Smuzhiyun /* Bit definitions for SYSEN1_CTRL */
1739*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_STATUS				0x10
1740*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_STATUS_SHIFT				0x04
1741*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_MODE_SLEEP				0x04
1742*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_MODE_SLEEP_SHIFT			0x02
1743*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_MODE_ACTIVE				0x01
1744*4882a593Smuzhiyun #define PALMAS_SYSEN1_CTRL_MODE_ACTIVE_SHIFT			0x00
1745*4882a593Smuzhiyun 
1746*4882a593Smuzhiyun /* Bit definitions for SYSEN2_CTRL */
1747*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_STATUS				0x10
1748*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_STATUS_SHIFT				0x04
1749*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_MODE_SLEEP				0x04
1750*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_MODE_SLEEP_SHIFT			0x02
1751*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_MODE_ACTIVE				0x01
1752*4882a593Smuzhiyun #define PALMAS_SYSEN2_CTRL_MODE_ACTIVE_SHIFT			0x00
1753*4882a593Smuzhiyun 
1754*4882a593Smuzhiyun /* Bit definitions for NSLEEP_RES_ASSIGN */
1755*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN3				0x40
1756*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN3_SHIFT			0x06
1757*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_CLK32KGAUDIO			0x20
1758*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_CLK32KGAUDIO_SHIFT		0x05
1759*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_CLK32KG			0x10
1760*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_CLK32KG_SHIFT			0x04
1761*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_SYSEN2				0x08
1762*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_SYSEN2_SHIFT			0x03
1763*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_SYSEN1				0x04
1764*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_SYSEN1_SHIFT			0x02
1765*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN2				0x02
1766*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN2_SHIFT			0x01
1767*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN1				0x01
1768*4882a593Smuzhiyun #define PALMAS_NSLEEP_RES_ASSIGN_REGEN1_SHIFT			0x00
1769*4882a593Smuzhiyun 
1770*4882a593Smuzhiyun /* Bit definitions for NSLEEP_SMPS_ASSIGN */
1771*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS10			0x80
1772*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS10_SHIFT			0x07
1773*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS9				0x40
1774*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS9_SHIFT			0x06
1775*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS8				0x20
1776*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS8_SHIFT			0x05
1777*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS7				0x10
1778*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS7_SHIFT			0x04
1779*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS6				0x08
1780*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS6_SHIFT			0x03
1781*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS45			0x04
1782*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS45_SHIFT			0x02
1783*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS3				0x02
1784*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS3_SHIFT			0x01
1785*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS12			0x01
1786*4882a593Smuzhiyun #define PALMAS_NSLEEP_SMPS_ASSIGN_SMPS12_SHIFT			0x00
1787*4882a593Smuzhiyun 
1788*4882a593Smuzhiyun /* Bit definitions for NSLEEP_LDO_ASSIGN1 */
1789*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO8				0x80
1790*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO8_SHIFT			0x07
1791*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO7				0x40
1792*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO7_SHIFT			0x06
1793*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO6				0x20
1794*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO6_SHIFT			0x05
1795*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO5				0x10
1796*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO5_SHIFT			0x04
1797*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO4				0x08
1798*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO4_SHIFT			0x03
1799*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO3				0x04
1800*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO3_SHIFT			0x02
1801*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO2				0x02
1802*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO2_SHIFT			0x01
1803*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO1				0x01
1804*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN1_LDO1_SHIFT			0x00
1805*4882a593Smuzhiyun 
1806*4882a593Smuzhiyun /* Bit definitions for NSLEEP_LDO_ASSIGN2 */
1807*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDOUSB			0x04
1808*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDOUSB_SHIFT			0x02
1809*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDOLN				0x02
1810*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDOLN_SHIFT			0x01
1811*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDO9				0x01
1812*4882a593Smuzhiyun #define PALMAS_NSLEEP_LDO_ASSIGN2_LDO9_SHIFT			0x00
1813*4882a593Smuzhiyun 
1814*4882a593Smuzhiyun /* Bit definitions for ENABLE1_RES_ASSIGN */
1815*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN3			0x40
1816*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN3_SHIFT			0x06
1817*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_CLK32KGAUDIO			0x20
1818*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_CLK32KGAUDIO_SHIFT		0x05
1819*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_CLK32KG			0x10
1820*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_CLK32KG_SHIFT			0x04
1821*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_SYSEN2			0x08
1822*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_SYSEN2_SHIFT			0x03
1823*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_SYSEN1			0x04
1824*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_SYSEN1_SHIFT			0x02
1825*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN2			0x02
1826*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN2_SHIFT			0x01
1827*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN1			0x01
1828*4882a593Smuzhiyun #define PALMAS_ENABLE1_RES_ASSIGN_REGEN1_SHIFT			0x00
1829*4882a593Smuzhiyun 
1830*4882a593Smuzhiyun /* Bit definitions for ENABLE1_SMPS_ASSIGN */
1831*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS10			0x80
1832*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS10_SHIFT			0x07
1833*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS9			0x40
1834*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS9_SHIFT			0x06
1835*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS8			0x20
1836*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS8_SHIFT			0x05
1837*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS7			0x10
1838*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS7_SHIFT			0x04
1839*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS6			0x08
1840*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS6_SHIFT			0x03
1841*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS45			0x04
1842*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS45_SHIFT			0x02
1843*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS3			0x02
1844*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS3_SHIFT			0x01
1845*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS12			0x01
1846*4882a593Smuzhiyun #define PALMAS_ENABLE1_SMPS_ASSIGN_SMPS12_SHIFT			0x00
1847*4882a593Smuzhiyun 
1848*4882a593Smuzhiyun /* Bit definitions for ENABLE1_LDO_ASSIGN1 */
1849*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO8				0x80
1850*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO8_SHIFT			0x07
1851*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO7				0x40
1852*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO7_SHIFT			0x06
1853*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO6				0x20
1854*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO6_SHIFT			0x05
1855*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO5				0x10
1856*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO5_SHIFT			0x04
1857*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO4				0x08
1858*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO4_SHIFT			0x03
1859*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO3				0x04
1860*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO3_SHIFT			0x02
1861*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO2				0x02
1862*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO2_SHIFT			0x01
1863*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO1				0x01
1864*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN1_LDO1_SHIFT			0x00
1865*4882a593Smuzhiyun 
1866*4882a593Smuzhiyun /* Bit definitions for ENABLE1_LDO_ASSIGN2 */
1867*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDOUSB			0x04
1868*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDOUSB_SHIFT			0x02
1869*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDOLN			0x02
1870*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDOLN_SHIFT			0x01
1871*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDO9				0x01
1872*4882a593Smuzhiyun #define PALMAS_ENABLE1_LDO_ASSIGN2_LDO9_SHIFT			0x00
1873*4882a593Smuzhiyun 
1874*4882a593Smuzhiyun /* Bit definitions for ENABLE2_RES_ASSIGN */
1875*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN3			0x40
1876*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN3_SHIFT			0x06
1877*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_CLK32KGAUDIO			0x20
1878*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_CLK32KGAUDIO_SHIFT		0x05
1879*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_CLK32KG			0x10
1880*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_CLK32KG_SHIFT			0x04
1881*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_SYSEN2			0x08
1882*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_SYSEN2_SHIFT			0x03
1883*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_SYSEN1			0x04
1884*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_SYSEN1_SHIFT			0x02
1885*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN2			0x02
1886*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN2_SHIFT			0x01
1887*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN1			0x01
1888*4882a593Smuzhiyun #define PALMAS_ENABLE2_RES_ASSIGN_REGEN1_SHIFT			0x00
1889*4882a593Smuzhiyun 
1890*4882a593Smuzhiyun /* Bit definitions for ENABLE2_SMPS_ASSIGN */
1891*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS10			0x80
1892*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS10_SHIFT			0x07
1893*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS9			0x40
1894*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS9_SHIFT			0x06
1895*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS8			0x20
1896*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS8_SHIFT			0x05
1897*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS7			0x10
1898*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS7_SHIFT			0x04
1899*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS6			0x08
1900*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS6_SHIFT			0x03
1901*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS45			0x04
1902*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS45_SHIFT			0x02
1903*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS3			0x02
1904*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS3_SHIFT			0x01
1905*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS12			0x01
1906*4882a593Smuzhiyun #define PALMAS_ENABLE2_SMPS_ASSIGN_SMPS12_SHIFT			0x00
1907*4882a593Smuzhiyun 
1908*4882a593Smuzhiyun /* Bit definitions for ENABLE2_LDO_ASSIGN1 */
1909*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO8				0x80
1910*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO8_SHIFT			0x07
1911*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO7				0x40
1912*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO7_SHIFT			0x06
1913*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO6				0x20
1914*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO6_SHIFT			0x05
1915*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO5				0x10
1916*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO5_SHIFT			0x04
1917*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO4				0x08
1918*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO4_SHIFT			0x03
1919*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO3				0x04
1920*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO3_SHIFT			0x02
1921*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO2				0x02
1922*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO2_SHIFT			0x01
1923*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO1				0x01
1924*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN1_LDO1_SHIFT			0x00
1925*4882a593Smuzhiyun 
1926*4882a593Smuzhiyun /* Bit definitions for ENABLE2_LDO_ASSIGN2 */
1927*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDOUSB			0x04
1928*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDOUSB_SHIFT			0x02
1929*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDOLN			0x02
1930*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDOLN_SHIFT			0x01
1931*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDO9				0x01
1932*4882a593Smuzhiyun #define PALMAS_ENABLE2_LDO_ASSIGN2_LDO9_SHIFT			0x00
1933*4882a593Smuzhiyun 
1934*4882a593Smuzhiyun /* Bit definitions for REGEN3_CTRL */
1935*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_STATUS				0x10
1936*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_STATUS_SHIFT				0x04
1937*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_MODE_SLEEP				0x04
1938*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_MODE_SLEEP_SHIFT			0x02
1939*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_MODE_ACTIVE				0x01
1940*4882a593Smuzhiyun #define PALMAS_REGEN3_CTRL_MODE_ACTIVE_SHIFT			0x00
1941*4882a593Smuzhiyun 
1942*4882a593Smuzhiyun /* Registers for function PAD_CONTROL */
1943*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL2					0x02
1944*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL2					0x03
1945*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1				0x04
1946*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2				0x05
1947*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3				0x06
1948*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL5				0x07
1949*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL					0x08
1950*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL					0x09
1951*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1				0x0A
1952*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2				0x0B
1953*4882a593Smuzhiyun #define PALMAS_I2C_SPI						0x0C
1954*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4				0x0D
1955*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD3				0x0E
1956*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD4				0x0F
1957*4882a593Smuzhiyun 
1958*4882a593Smuzhiyun /* Bit definitions for PU_PD_INPUT_CTRL1 */
1959*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_RESET_IN_PD			0x40
1960*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_RESET_IN_PD_SHIFT		0x06
1961*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_GPADC_START_PU			0x20
1962*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_GPADC_START_PU_SHIFT		0x05
1963*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_GPADC_START_PD			0x10
1964*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_GPADC_START_PD_SHIFT		0x04
1965*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_PWRDOWN_PD			0x04
1966*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_PWRDOWN_PD_SHIFT		0x02
1967*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_NRESWARM_PU			0x02
1968*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL1_NRESWARM_PU_SHIFT		0x01
1969*4882a593Smuzhiyun 
1970*4882a593Smuzhiyun /* Bit definitions for PU_PD_INPUT_CTRL2 */
1971*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE2_PU			0x20
1972*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE2_PU_SHIFT		0x05
1973*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE2_PD			0x10
1974*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE2_PD_SHIFT		0x04
1975*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE1_PU			0x08
1976*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE1_PU_SHIFT		0x03
1977*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE1_PD			0x04
1978*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_ENABLE1_PD_SHIFT		0x02
1979*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_NSLEEP_PU			0x02
1980*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_NSLEEP_PU_SHIFT		0x01
1981*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_NSLEEP_PD			0x01
1982*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL2_NSLEEP_PD_SHIFT		0x00
1983*4882a593Smuzhiyun 
1984*4882a593Smuzhiyun /* Bit definitions for PU_PD_INPUT_CTRL3 */
1985*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_ACOK_PD			0x40
1986*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_ACOK_PD_SHIFT			0x06
1987*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_CHRG_DET_N_PD			0x10
1988*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_CHRG_DET_N_PD_SHIFT		0x04
1989*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_POWERHOLD_PD			0x04
1990*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_POWERHOLD_PD_SHIFT		0x02
1991*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_MSECURE_PD			0x01
1992*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL3_MSECURE_PD_SHIFT		0x00
1993*4882a593Smuzhiyun 
1994*4882a593Smuzhiyun /* Bit definitions for OD_OUTPUT_CTRL */
1995*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_PWM_2_OD				0x80
1996*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_PWM_2_OD_SHIFT			0x07
1997*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_VBUSDET_OD			0x40
1998*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_VBUSDET_OD_SHIFT			0x06
1999*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_PWM_1_OD				0x20
2000*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_PWM_1_OD_SHIFT			0x05
2001*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_INT_OD				0x08
2002*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_CTRL_INT_OD_SHIFT			0x03
2003*4882a593Smuzhiyun 
2004*4882a593Smuzhiyun /* Bit definitions for POLARITY_CTRL */
2005*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_INT_POLARITY			0x80
2006*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_INT_POLARITY_SHIFT			0x07
2007*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_ENABLE2_POLARITY			0x40
2008*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_ENABLE2_POLARITY_SHIFT		0x06
2009*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_ENABLE1_POLARITY			0x20
2010*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_ENABLE1_POLARITY_SHIFT		0x05
2011*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_NSLEEP_POLARITY			0x10
2012*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_NSLEEP_POLARITY_SHIFT		0x04
2013*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_RESET_IN_POLARITY			0x08
2014*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_RESET_IN_POLARITY_SHIFT		0x03
2015*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_GPIO_3_CHRG_DET_N_POLARITY		0x04
2016*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_GPIO_3_CHRG_DET_N_POLARITY_SHIFT	0x02
2017*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_POWERGOOD_USB_PSEL_POLARITY	0x02
2018*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_POWERGOOD_USB_PSEL_POLARITY_SHIFT	0x01
2019*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_PWRDOWN_POLARITY			0x01
2020*4882a593Smuzhiyun #define PALMAS_POLARITY_CTRL_PWRDOWN_POLARITY_SHIFT		0x00
2021*4882a593Smuzhiyun 
2022*4882a593Smuzhiyun /* Bit definitions for PRIMARY_SECONDARY_PAD1 */
2023*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_3			0x80
2024*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_3_SHIFT		0x07
2025*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_2_MASK		0x60
2026*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_2_SHIFT		0x05
2027*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_1_MASK		0x18
2028*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_1_SHIFT		0x03
2029*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_0			0x04
2030*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_GPIO_0_SHIFT		0x02
2031*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_VAC			0x02
2032*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_VAC_SHIFT			0x01
2033*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_POWERGOOD			0x01
2034*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD1_POWERGOOD_SHIFT		0x00
2035*4882a593Smuzhiyun 
2036*4882a593Smuzhiyun /* Bit definitions for PRIMARY_SECONDARY_PAD2 */
2037*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK		0x30
2038*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_SHIFT		0x04
2039*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_6			0x08
2040*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_6_SHIFT		0x03
2041*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK		0x06
2042*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_5_SHIFT		0x01
2043*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_4			0x01
2044*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_4_SHIFT		0x00
2045*4882a593Smuzhiyun 
2046*4882a593Smuzhiyun /* Bit definitions for I2C_SPI */
2047*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C2OTP_EN				0x80
2048*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C2OTP_EN_SHIFT				0x07
2049*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C2OTP_PAGESEL				0x40
2050*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C2OTP_PAGESEL_SHIFT			0x06
2051*4882a593Smuzhiyun #define PALMAS_I2C_SPI_ID_I2C2					0x20
2052*4882a593Smuzhiyun #define PALMAS_I2C_SPI_ID_I2C2_SHIFT				0x05
2053*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C_SPI					0x10
2054*4882a593Smuzhiyun #define PALMAS_I2C_SPI_I2C_SPI_SHIFT				0x04
2055*4882a593Smuzhiyun #define PALMAS_I2C_SPI_ID_I2C1_MASK				0x0F
2056*4882a593Smuzhiyun #define PALMAS_I2C_SPI_ID_I2C1_SHIFT				0x00
2057*4882a593Smuzhiyun 
2058*4882a593Smuzhiyun /* Bit definitions for PU_PD_INPUT_CTRL4 */
2059*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS2_DAT_PD			0x40
2060*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS2_DAT_PD_SHIFT		0x06
2061*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS2_CLK_PD			0x10
2062*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS2_CLK_PD_SHIFT		0x04
2063*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS1_DAT_PD			0x04
2064*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS1_DAT_PD_SHIFT		0x02
2065*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS1_CLK_PD			0x01
2066*4882a593Smuzhiyun #define PALMAS_PU_PD_INPUT_CTRL4_DVFS1_CLK_PD_SHIFT		0x00
2067*4882a593Smuzhiyun 
2068*4882a593Smuzhiyun /* Bit definitions for PRIMARY_SECONDARY_PAD3 */
2069*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD3_DVFS2			0x02
2070*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD3_DVFS2_SHIFT		0x01
2071*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD3_DVFS1			0x01
2072*4882a593Smuzhiyun #define PALMAS_PRIMARY_SECONDARY_PAD3_DVFS1_SHIFT		0x00
2073*4882a593Smuzhiyun 
2074*4882a593Smuzhiyun /* Registers for function LED_PWM */
2075*4882a593Smuzhiyun #define PALMAS_LED_PERIOD_CTRL					0x00
2076*4882a593Smuzhiyun #define PALMAS_LED_CTRL						0x01
2077*4882a593Smuzhiyun #define PALMAS_PWM_CTRL1					0x02
2078*4882a593Smuzhiyun #define PALMAS_PWM_CTRL2					0x03
2079*4882a593Smuzhiyun 
2080*4882a593Smuzhiyun /* Bit definitions for LED_PERIOD_CTRL */
2081*4882a593Smuzhiyun #define PALMAS_LED_PERIOD_CTRL_LED_2_PERIOD_MASK		0x38
2082*4882a593Smuzhiyun #define PALMAS_LED_PERIOD_CTRL_LED_2_PERIOD_SHIFT		0x03
2083*4882a593Smuzhiyun #define PALMAS_LED_PERIOD_CTRL_LED_1_PERIOD_MASK		0x07
2084*4882a593Smuzhiyun #define PALMAS_LED_PERIOD_CTRL_LED_1_PERIOD_SHIFT		0x00
2085*4882a593Smuzhiyun 
2086*4882a593Smuzhiyun /* Bit definitions for LED_CTRL */
2087*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_2_SEQ				0x20
2088*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_2_SEQ_SHIFT				0x05
2089*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_1_SEQ				0x10
2090*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_1_SEQ_SHIFT				0x04
2091*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_2_ON_TIME_MASK			0x0c
2092*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_2_ON_TIME_SHIFT			0x02
2093*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_1_ON_TIME_MASK			0x03
2094*4882a593Smuzhiyun #define PALMAS_LED_CTRL_LED_1_ON_TIME_SHIFT			0x00
2095*4882a593Smuzhiyun 
2096*4882a593Smuzhiyun /* Bit definitions for PWM_CTRL1 */
2097*4882a593Smuzhiyun #define PALMAS_PWM_CTRL1_PWM_FREQ_EN				0x02
2098*4882a593Smuzhiyun #define PALMAS_PWM_CTRL1_PWM_FREQ_EN_SHIFT			0x01
2099*4882a593Smuzhiyun #define PALMAS_PWM_CTRL1_PWM_FREQ_SEL				0x01
2100*4882a593Smuzhiyun #define PALMAS_PWM_CTRL1_PWM_FREQ_SEL_SHIFT			0x00
2101*4882a593Smuzhiyun 
2102*4882a593Smuzhiyun /* Bit definitions for PWM_CTRL2 */
2103*4882a593Smuzhiyun #define PALMAS_PWM_CTRL2_PWM_DUTY_SEL_MASK			0xFF
2104*4882a593Smuzhiyun #define PALMAS_PWM_CTRL2_PWM_DUTY_SEL_SHIFT			0x00
2105*4882a593Smuzhiyun 
2106*4882a593Smuzhiyun /* Registers for function INTERRUPT */
2107*4882a593Smuzhiyun #define PALMAS_INT1_STATUS					0x00
2108*4882a593Smuzhiyun #define PALMAS_INT1_MASK					0x01
2109*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE					0x02
2110*4882a593Smuzhiyun #define PALMAS_INT1_EDGE_DETECT1_RESERVED			0x03
2111*4882a593Smuzhiyun #define PALMAS_INT1_EDGE_DETECT2_RESERVED			0x04
2112*4882a593Smuzhiyun #define PALMAS_INT2_STATUS					0x05
2113*4882a593Smuzhiyun #define PALMAS_INT2_MASK					0x06
2114*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE					0x07
2115*4882a593Smuzhiyun #define PALMAS_INT2_EDGE_DETECT1_RESERVED			0x08
2116*4882a593Smuzhiyun #define PALMAS_INT2_EDGE_DETECT2_RESERVED			0x09
2117*4882a593Smuzhiyun #define PALMAS_INT3_STATUS					0x0A
2118*4882a593Smuzhiyun #define PALMAS_INT3_MASK					0x0B
2119*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE					0x0C
2120*4882a593Smuzhiyun #define PALMAS_INT3_EDGE_DETECT1_RESERVED			0x0D
2121*4882a593Smuzhiyun #define PALMAS_INT3_EDGE_DETECT2_RESERVED			0x0E
2122*4882a593Smuzhiyun #define PALMAS_INT4_STATUS					0x0F
2123*4882a593Smuzhiyun #define PALMAS_INT4_MASK					0x10
2124*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE					0x11
2125*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1				0x12
2126*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2				0x13
2127*4882a593Smuzhiyun #define PALMAS_INT_CTRL						0x14
2128*4882a593Smuzhiyun 
2129*4882a593Smuzhiyun /* Bit definitions for INT1_STATUS */
2130*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_VBAT_MON				0x80
2131*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_VBAT_MON_SHIFT			0x07
2132*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_VSYS_MON				0x40
2133*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_VSYS_MON_SHIFT			0x06
2134*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_HOTDIE				0x20
2135*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_HOTDIE_SHIFT				0x05
2136*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_PWRDOWN				0x10
2137*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_PWRDOWN_SHIFT			0x04
2138*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_RPWRON				0x08
2139*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_RPWRON_SHIFT				0x03
2140*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_LONG_PRESS_KEY			0x04
2141*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_LONG_PRESS_KEY_SHIFT			0x02
2142*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_PWRON				0x02
2143*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_PWRON_SHIFT				0x01
2144*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_CHARG_DET_N_VBUS_OVV			0x01
2145*4882a593Smuzhiyun #define PALMAS_INT1_STATUS_CHARG_DET_N_VBUS_OVV_SHIFT		0x00
2146*4882a593Smuzhiyun 
2147*4882a593Smuzhiyun /* Bit definitions for INT1_MASK */
2148*4882a593Smuzhiyun #define PALMAS_INT1_MASK_VBAT_MON				0x80
2149*4882a593Smuzhiyun #define PALMAS_INT1_MASK_VBAT_MON_SHIFT				0x07
2150*4882a593Smuzhiyun #define PALMAS_INT1_MASK_VSYS_MON				0x40
2151*4882a593Smuzhiyun #define PALMAS_INT1_MASK_VSYS_MON_SHIFT				0x06
2152*4882a593Smuzhiyun #define PALMAS_INT1_MASK_HOTDIE					0x20
2153*4882a593Smuzhiyun #define PALMAS_INT1_MASK_HOTDIE_SHIFT				0x05
2154*4882a593Smuzhiyun #define PALMAS_INT1_MASK_PWRDOWN				0x10
2155*4882a593Smuzhiyun #define PALMAS_INT1_MASK_PWRDOWN_SHIFT				0x04
2156*4882a593Smuzhiyun #define PALMAS_INT1_MASK_RPWRON					0x08
2157*4882a593Smuzhiyun #define PALMAS_INT1_MASK_RPWRON_SHIFT				0x03
2158*4882a593Smuzhiyun #define PALMAS_INT1_MASK_LONG_PRESS_KEY				0x04
2159*4882a593Smuzhiyun #define PALMAS_INT1_MASK_LONG_PRESS_KEY_SHIFT			0x02
2160*4882a593Smuzhiyun #define PALMAS_INT1_MASK_PWRON					0x02
2161*4882a593Smuzhiyun #define PALMAS_INT1_MASK_PWRON_SHIFT				0x01
2162*4882a593Smuzhiyun #define PALMAS_INT1_MASK_CHARG_DET_N_VBUS_OVV			0x01
2163*4882a593Smuzhiyun #define PALMAS_INT1_MASK_CHARG_DET_N_VBUS_OVV_SHIFT		0x00
2164*4882a593Smuzhiyun 
2165*4882a593Smuzhiyun /* Bit definitions for INT1_LINE_STATE */
2166*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_VBAT_MON				0x80
2167*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_VBAT_MON_SHIFT			0x07
2168*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_VSYS_MON				0x40
2169*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_VSYS_MON_SHIFT			0x06
2170*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_HOTDIE				0x20
2171*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_HOTDIE_SHIFT			0x05
2172*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_PWRDOWN				0x10
2173*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_PWRDOWN_SHIFT			0x04
2174*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_RPWRON				0x08
2175*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_RPWRON_SHIFT			0x03
2176*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_LONG_PRESS_KEY			0x04
2177*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_LONG_PRESS_KEY_SHIFT		0x02
2178*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_PWRON				0x02
2179*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_PWRON_SHIFT			0x01
2180*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_CHARG_DET_N_VBUS_OVV		0x01
2181*4882a593Smuzhiyun #define PALMAS_INT1_LINE_STATE_CHARG_DET_N_VBUS_OVV_SHIFT	0x00
2182*4882a593Smuzhiyun 
2183*4882a593Smuzhiyun /* Bit definitions for INT2_STATUS */
2184*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_VAC_ACOK				0x80
2185*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_VAC_ACOK_SHIFT			0x07
2186*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_SHORT				0x40
2187*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_SHORT_SHIFT				0x06
2188*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_FBI_BB				0x20
2189*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_FBI_BB_SHIFT				0x05
2190*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RESET_IN				0x10
2191*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RESET_IN_SHIFT			0x04
2192*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_BATREMOVAL				0x08
2193*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_BATREMOVAL_SHIFT			0x03
2194*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_WDT					0x04
2195*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_WDT_SHIFT				0x02
2196*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RTC_TIMER				0x02
2197*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RTC_TIMER_SHIFT			0x01
2198*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RTC_ALARM				0x01
2199*4882a593Smuzhiyun #define PALMAS_INT2_STATUS_RTC_ALARM_SHIFT			0x00
2200*4882a593Smuzhiyun 
2201*4882a593Smuzhiyun /* Bit definitions for INT2_MASK */
2202*4882a593Smuzhiyun #define PALMAS_INT2_MASK_VAC_ACOK				0x80
2203*4882a593Smuzhiyun #define PALMAS_INT2_MASK_VAC_ACOK_SHIFT				0x07
2204*4882a593Smuzhiyun #define PALMAS_INT2_MASK_SHORT					0x40
2205*4882a593Smuzhiyun #define PALMAS_INT2_MASK_SHORT_SHIFT				0x06
2206*4882a593Smuzhiyun #define PALMAS_INT2_MASK_FBI_BB					0x20
2207*4882a593Smuzhiyun #define PALMAS_INT2_MASK_FBI_BB_SHIFT				0x05
2208*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RESET_IN				0x10
2209*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RESET_IN_SHIFT				0x04
2210*4882a593Smuzhiyun #define PALMAS_INT2_MASK_BATREMOVAL				0x08
2211*4882a593Smuzhiyun #define PALMAS_INT2_MASK_BATREMOVAL_SHIFT			0x03
2212*4882a593Smuzhiyun #define PALMAS_INT2_MASK_WDT					0x04
2213*4882a593Smuzhiyun #define PALMAS_INT2_MASK_WDT_SHIFT				0x02
2214*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RTC_TIMER				0x02
2215*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RTC_TIMER_SHIFT			0x01
2216*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RTC_ALARM				0x01
2217*4882a593Smuzhiyun #define PALMAS_INT2_MASK_RTC_ALARM_SHIFT			0x00
2218*4882a593Smuzhiyun 
2219*4882a593Smuzhiyun /* Bit definitions for INT2_LINE_STATE */
2220*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_VAC_ACOK				0x80
2221*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_VAC_ACOK_SHIFT			0x07
2222*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_SHORT				0x40
2223*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_SHORT_SHIFT			0x06
2224*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_FBI_BB				0x20
2225*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_FBI_BB_SHIFT			0x05
2226*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RESET_IN				0x10
2227*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RESET_IN_SHIFT			0x04
2228*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_BATREMOVAL			0x08
2229*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_BATREMOVAL_SHIFT			0x03
2230*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_WDT				0x04
2231*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_WDT_SHIFT			0x02
2232*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RTC_TIMER			0x02
2233*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RTC_TIMER_SHIFT			0x01
2234*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RTC_ALARM			0x01
2235*4882a593Smuzhiyun #define PALMAS_INT2_LINE_STATE_RTC_ALARM_SHIFT			0x00
2236*4882a593Smuzhiyun 
2237*4882a593Smuzhiyun /* Bit definitions for INT3_STATUS */
2238*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_VBUS					0x80
2239*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_VBUS_SHIFT				0x07
2240*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_VBUS_OTG				0x40
2241*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_VBUS_OTG_SHIFT			0x06
2242*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_ID					0x20
2243*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_ID_SHIFT				0x05
2244*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_ID_OTG				0x10
2245*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_ID_OTG_SHIFT				0x04
2246*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_EOC_RT				0x08
2247*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_EOC_RT_SHIFT			0x03
2248*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_EOC_SW				0x04
2249*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_EOC_SW_SHIFT			0x02
2250*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_AUTO_1				0x02
2251*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_AUTO_1_SHIFT			0x01
2252*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_AUTO_0				0x01
2253*4882a593Smuzhiyun #define PALMAS_INT3_STATUS_GPADC_AUTO_0_SHIFT			0x00
2254*4882a593Smuzhiyun 
2255*4882a593Smuzhiyun /* Bit definitions for INT3_MASK */
2256*4882a593Smuzhiyun #define PALMAS_INT3_MASK_VBUS					0x80
2257*4882a593Smuzhiyun #define PALMAS_INT3_MASK_VBUS_SHIFT				0x07
2258*4882a593Smuzhiyun #define PALMAS_INT3_MASK_VBUS_OTG				0x40
2259*4882a593Smuzhiyun #define PALMAS_INT3_MASK_VBUS_OTG_SHIFT				0x06
2260*4882a593Smuzhiyun #define PALMAS_INT3_MASK_ID					0x20
2261*4882a593Smuzhiyun #define PALMAS_INT3_MASK_ID_SHIFT				0x05
2262*4882a593Smuzhiyun #define PALMAS_INT3_MASK_ID_OTG					0x10
2263*4882a593Smuzhiyun #define PALMAS_INT3_MASK_ID_OTG_SHIFT				0x04
2264*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_EOC_RT				0x08
2265*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_EOC_RT_SHIFT			0x03
2266*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_EOC_SW				0x04
2267*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_EOC_SW_SHIFT			0x02
2268*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_AUTO_1				0x02
2269*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_AUTO_1_SHIFT			0x01
2270*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_AUTO_0				0x01
2271*4882a593Smuzhiyun #define PALMAS_INT3_MASK_GPADC_AUTO_0_SHIFT			0x00
2272*4882a593Smuzhiyun 
2273*4882a593Smuzhiyun /* Bit definitions for INT3_LINE_STATE */
2274*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_VBUS				0x80
2275*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_VBUS_SHIFT			0x07
2276*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_VBUS_OTG				0x40
2277*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_VBUS_OTG_SHIFT			0x06
2278*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_ID				0x20
2279*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_ID_SHIFT				0x05
2280*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_ID_OTG				0x10
2281*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_ID_OTG_SHIFT			0x04
2282*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_EOC_RT			0x08
2283*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_EOC_RT_SHIFT		0x03
2284*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_EOC_SW			0x04
2285*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_EOC_SW_SHIFT		0x02
2286*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_AUTO_1			0x02
2287*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_AUTO_1_SHIFT		0x01
2288*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_AUTO_0			0x01
2289*4882a593Smuzhiyun #define PALMAS_INT3_LINE_STATE_GPADC_AUTO_0_SHIFT		0x00
2290*4882a593Smuzhiyun 
2291*4882a593Smuzhiyun /* Bit definitions for INT4_STATUS */
2292*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_7				0x80
2293*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_7_SHIFT				0x07
2294*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_6				0x40
2295*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_6_SHIFT				0x06
2296*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_5				0x20
2297*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_5_SHIFT				0x05
2298*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_4				0x10
2299*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_4_SHIFT				0x04
2300*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_3				0x08
2301*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_3_SHIFT				0x03
2302*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_2				0x04
2303*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_2_SHIFT				0x02
2304*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_1				0x02
2305*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_1_SHIFT				0x01
2306*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_0				0x01
2307*4882a593Smuzhiyun #define PALMAS_INT4_STATUS_GPIO_0_SHIFT				0x00
2308*4882a593Smuzhiyun 
2309*4882a593Smuzhiyun /* Bit definitions for INT4_MASK */
2310*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_7					0x80
2311*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_7_SHIFT				0x07
2312*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_6					0x40
2313*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_6_SHIFT				0x06
2314*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_5					0x20
2315*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_5_SHIFT				0x05
2316*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_4					0x10
2317*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_4_SHIFT				0x04
2318*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_3					0x08
2319*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_3_SHIFT				0x03
2320*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_2					0x04
2321*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_2_SHIFT				0x02
2322*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_1					0x02
2323*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_1_SHIFT				0x01
2324*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_0					0x01
2325*4882a593Smuzhiyun #define PALMAS_INT4_MASK_GPIO_0_SHIFT				0x00
2326*4882a593Smuzhiyun 
2327*4882a593Smuzhiyun /* Bit definitions for INT4_LINE_STATE */
2328*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_7				0x80
2329*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_7_SHIFT			0x07
2330*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_6				0x40
2331*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_6_SHIFT			0x06
2332*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_5				0x20
2333*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_5_SHIFT			0x05
2334*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_4				0x10
2335*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_4_SHIFT			0x04
2336*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_3				0x08
2337*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_3_SHIFT			0x03
2338*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_2				0x04
2339*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_2_SHIFT			0x02
2340*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_1				0x02
2341*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_1_SHIFT			0x01
2342*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_0				0x01
2343*4882a593Smuzhiyun #define PALMAS_INT4_LINE_STATE_GPIO_0_SHIFT			0x00
2344*4882a593Smuzhiyun 
2345*4882a593Smuzhiyun /* Bit definitions for INT4_EDGE_DETECT1 */
2346*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_3_RISING			0x80
2347*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_3_RISING_SHIFT		0x07
2348*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_3_FALLING			0x40
2349*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_3_FALLING_SHIFT		0x06
2350*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_2_RISING			0x20
2351*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_2_RISING_SHIFT		0x05
2352*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_2_FALLING			0x10
2353*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_2_FALLING_SHIFT		0x04
2354*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_1_RISING			0x08
2355*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_1_RISING_SHIFT		0x03
2356*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_1_FALLING			0x04
2357*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_1_FALLING_SHIFT		0x02
2358*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_0_RISING			0x02
2359*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_0_RISING_SHIFT		0x01
2360*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_0_FALLING			0x01
2361*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT1_GPIO_0_FALLING_SHIFT		0x00
2362*4882a593Smuzhiyun 
2363*4882a593Smuzhiyun /* Bit definitions for INT4_EDGE_DETECT2 */
2364*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_7_RISING			0x80
2365*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_7_RISING_SHIFT		0x07
2366*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_7_FALLING			0x40
2367*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_7_FALLING_SHIFT		0x06
2368*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_6_RISING			0x20
2369*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_6_RISING_SHIFT		0x05
2370*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_6_FALLING			0x10
2371*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_6_FALLING_SHIFT		0x04
2372*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_5_RISING			0x08
2373*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_5_RISING_SHIFT		0x03
2374*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_5_FALLING			0x04
2375*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_5_FALLING_SHIFT		0x02
2376*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_4_RISING			0x02
2377*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_4_RISING_SHIFT		0x01
2378*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_4_FALLING			0x01
2379*4882a593Smuzhiyun #define PALMAS_INT4_EDGE_DETECT2_GPIO_4_FALLING_SHIFT		0x00
2380*4882a593Smuzhiyun 
2381*4882a593Smuzhiyun /* Bit definitions for INT_CTRL */
2382*4882a593Smuzhiyun #define PALMAS_INT_CTRL_INT_PENDING				0x04
2383*4882a593Smuzhiyun #define PALMAS_INT_CTRL_INT_PENDING_SHIFT			0x02
2384*4882a593Smuzhiyun #define PALMAS_INT_CTRL_INT_CLEAR				0x01
2385*4882a593Smuzhiyun #define PALMAS_INT_CTRL_INT_CLEAR_SHIFT				0x00
2386*4882a593Smuzhiyun 
2387*4882a593Smuzhiyun /* Registers for function USB_OTG */
2388*4882a593Smuzhiyun #define PALMAS_USB_WAKEUP					0x03
2389*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET				0x04
2390*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR				0x05
2391*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET					0x06
2392*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR				0x07
2393*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC					0x08
2394*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET				0x09
2395*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR				0x0A
2396*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET				0x0B
2397*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR				0x0C
2398*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET				0x0D
2399*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR				0x0E
2400*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC					0x0F
2401*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET				0x10
2402*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR				0x11
2403*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET				0x12
2404*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR				0x13
2405*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET				0x14
2406*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR				0x15
2407*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_CTRL					0x16
2408*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_HIGH					0x17
2409*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_LOW					0x18
2410*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_RISE					0x19
2411*4882a593Smuzhiyun #define PALMAS_USB_OTG_REVISION					0x1A
2412*4882a593Smuzhiyun 
2413*4882a593Smuzhiyun /* Bit definitions for USB_WAKEUP */
2414*4882a593Smuzhiyun #define PALMAS_USB_WAKEUP_ID_WK_UP_COMP				0x01
2415*4882a593Smuzhiyun #define PALMAS_USB_WAKEUP_ID_WK_UP_COMP_SHIFT			0x00
2416*4882a593Smuzhiyun 
2417*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_CTRL_SET */
2418*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_CHRG_VSYS			0x80
2419*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_CHRG_VSYS_SHIFT		0x07
2420*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_DISCHRG			0x20
2421*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_DISCHRG_SHIFT		0x05
2422*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SRC			0x10
2423*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SRC_SHIFT		0x04
2424*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SINK			0x08
2425*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SINK_SHIFT		0x03
2426*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_ACT_COMP			0x04
2427*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_SET_VBUS_ACT_COMP_SHIFT		0x02
2428*4882a593Smuzhiyun 
2429*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_CTRL_CLR */
2430*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_CHRG_VSYS			0x80
2431*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_CHRG_VSYS_SHIFT		0x07
2432*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_DISCHRG			0x20
2433*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_DISCHRG_SHIFT		0x05
2434*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_IADP_SRC			0x10
2435*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_IADP_SRC_SHIFT		0x04
2436*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_IADP_SINK			0x08
2437*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_IADP_SINK_SHIFT		0x03
2438*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_ACT_COMP			0x04
2439*4882a593Smuzhiyun #define PALMAS_USB_VBUS_CTRL_CLR_VBUS_ACT_COMP_SHIFT		0x02
2440*4882a593Smuzhiyun 
2441*4882a593Smuzhiyun /* Bit definitions for USB_ID_CTRL_SET */
2442*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_PU_220K			0x80
2443*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_PU_220K_SHIFT			0x07
2444*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_PU_100K			0x40
2445*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_PU_100K_SHIFT			0x06
2446*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_GND_DRV			0x20
2447*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_GND_DRV_SHIFT			0x05
2448*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_SRC_16U			0x10
2449*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_SRC_16U_SHIFT			0x04
2450*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_SRC_5U			0x08
2451*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_SRC_5U_SHIFT			0x03
2452*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_ACT_COMP			0x04
2453*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_SET_ID_ACT_COMP_SHIFT		0x02
2454*4882a593Smuzhiyun 
2455*4882a593Smuzhiyun /* Bit definitions for USB_ID_CTRL_CLEAR */
2456*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_PU_220K			0x80
2457*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_PU_220K_SHIFT		0x07
2458*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_PU_100K			0x40
2459*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_PU_100K_SHIFT		0x06
2460*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_GND_DRV			0x20
2461*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_GND_DRV_SHIFT		0x05
2462*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_SRC_16U			0x10
2463*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_SRC_16U_SHIFT		0x04
2464*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_SRC_5U			0x08
2465*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_SRC_5U_SHIFT		0x03
2466*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_ACT_COMP			0x04
2467*4882a593Smuzhiyun #define PALMAS_USB_ID_CTRL_CLEAR_ID_ACT_COMP_SHIFT		0x02
2468*4882a593Smuzhiyun 
2469*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_SRC */
2470*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VOTG_SESS_VLD			0x80
2471*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VOTG_SESS_VLD_SHIFT		0x07
2472*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VADP_PRB			0x40
2473*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VADP_PRB_SHIFT			0x06
2474*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VADP_SNS			0x20
2475*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VADP_SNS_SHIFT			0x05
2476*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VA_VBUS_VLD			0x08
2477*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VA_VBUS_VLD_SHIFT		0x03
2478*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VA_SESS_VLD			0x04
2479*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VA_SESS_VLD_SHIFT		0x02
2480*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VB_SESS_VLD			0x02
2481*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VB_SESS_VLD_SHIFT		0x01
2482*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VB_SESS_END			0x01
2483*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_SRC_VB_SESS_END_SHIFT		0x00
2484*4882a593Smuzhiyun 
2485*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_LATCH_SET */
2486*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VOTG_SESS_VLD		0x80
2487*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VOTG_SESS_VLD_SHIFT	0x07
2488*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VADP_PRB			0x40
2489*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VADP_PRB_SHIFT		0x06
2490*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VADP_SNS			0x20
2491*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VADP_SNS_SHIFT		0x05
2492*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_ADP			0x10
2493*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_ADP_SHIFT			0x04
2494*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VA_VBUS_VLD		0x08
2495*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VA_VBUS_VLD_SHIFT		0x03
2496*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VA_SESS_VLD		0x04
2497*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VA_SESS_VLD_SHIFT		0x02
2498*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VB_SESS_VLD		0x02
2499*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VB_SESS_VLD_SHIFT		0x01
2500*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VB_SESS_END		0x01
2501*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_SET_VB_SESS_END_SHIFT		0x00
2502*4882a593Smuzhiyun 
2503*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_LATCH_CLR */
2504*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VOTG_SESS_VLD		0x80
2505*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VOTG_SESS_VLD_SHIFT	0x07
2506*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VADP_PRB			0x40
2507*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VADP_PRB_SHIFT		0x06
2508*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VADP_SNS			0x20
2509*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VADP_SNS_SHIFT		0x05
2510*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_ADP			0x10
2511*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_ADP_SHIFT			0x04
2512*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VA_VBUS_VLD		0x08
2513*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VA_VBUS_VLD_SHIFT		0x03
2514*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VA_SESS_VLD		0x04
2515*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VA_SESS_VLD_SHIFT		0x02
2516*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VB_SESS_VLD		0x02
2517*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VB_SESS_VLD_SHIFT		0x01
2518*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VB_SESS_END		0x01
2519*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_LATCH_CLR_VB_SESS_END_SHIFT		0x00
2520*4882a593Smuzhiyun 
2521*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_EN_LO_SET */
2522*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VOTG_SESS_VLD		0x80
2523*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VOTG_SESS_VLD_SHIFT	0x07
2524*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VADP_PRB			0x40
2525*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VADP_PRB_SHIFT		0x06
2526*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VADP_SNS			0x20
2527*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VADP_SNS_SHIFT		0x05
2528*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VA_VBUS_VLD		0x08
2529*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VA_VBUS_VLD_SHIFT		0x03
2530*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VA_SESS_VLD		0x04
2531*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VA_SESS_VLD_SHIFT		0x02
2532*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VB_SESS_VLD		0x02
2533*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VB_SESS_VLD_SHIFT		0x01
2534*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VB_SESS_END		0x01
2535*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_SET_VB_SESS_END_SHIFT		0x00
2536*4882a593Smuzhiyun 
2537*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_EN_LO_CLR */
2538*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VOTG_SESS_VLD		0x80
2539*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VOTG_SESS_VLD_SHIFT	0x07
2540*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VADP_PRB			0x40
2541*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VADP_PRB_SHIFT		0x06
2542*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VADP_SNS			0x20
2543*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VADP_SNS_SHIFT		0x05
2544*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VA_VBUS_VLD		0x08
2545*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VA_VBUS_VLD_SHIFT		0x03
2546*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VA_SESS_VLD		0x04
2547*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VA_SESS_VLD_SHIFT		0x02
2548*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VB_SESS_VLD		0x02
2549*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VB_SESS_VLD_SHIFT		0x01
2550*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VB_SESS_END		0x01
2551*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_LO_CLR_VB_SESS_END_SHIFT		0x00
2552*4882a593Smuzhiyun 
2553*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_EN_HI_SET */
2554*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VOTG_SESS_VLD		0x80
2555*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VOTG_SESS_VLD_SHIFT	0x07
2556*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VADP_PRB			0x40
2557*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VADP_PRB_SHIFT		0x06
2558*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VADP_SNS			0x20
2559*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VADP_SNS_SHIFT		0x05
2560*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_ADP			0x10
2561*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_ADP_SHIFT			0x04
2562*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VA_VBUS_VLD		0x08
2563*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VA_VBUS_VLD_SHIFT		0x03
2564*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VA_SESS_VLD		0x04
2565*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VA_SESS_VLD_SHIFT		0x02
2566*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VB_SESS_VLD		0x02
2567*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VB_SESS_VLD_SHIFT		0x01
2568*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VB_SESS_END		0x01
2569*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_SET_VB_SESS_END_SHIFT		0x00
2570*4882a593Smuzhiyun 
2571*4882a593Smuzhiyun /* Bit definitions for USB_VBUS_INT_EN_HI_CLR */
2572*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VOTG_SESS_VLD		0x80
2573*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VOTG_SESS_VLD_SHIFT	0x07
2574*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VADP_PRB			0x40
2575*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VADP_PRB_SHIFT		0x06
2576*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VADP_SNS			0x20
2577*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VADP_SNS_SHIFT		0x05
2578*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_ADP			0x10
2579*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_ADP_SHIFT			0x04
2580*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VA_VBUS_VLD		0x08
2581*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VA_VBUS_VLD_SHIFT		0x03
2582*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VA_SESS_VLD		0x04
2583*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VA_SESS_VLD_SHIFT		0x02
2584*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VB_SESS_VLD		0x02
2585*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VB_SESS_VLD_SHIFT		0x01
2586*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VB_SESS_END		0x01
2587*4882a593Smuzhiyun #define PALMAS_USB_VBUS_INT_EN_HI_CLR_VB_SESS_END_SHIFT		0x00
2588*4882a593Smuzhiyun 
2589*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_SRC */
2590*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_FLOAT				0x10
2591*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_FLOAT_SHIFT			0x04
2592*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_A				0x08
2593*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_A_SHIFT			0x03
2594*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_B				0x04
2595*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_B_SHIFT			0x02
2596*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_C				0x02
2597*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_C_SHIFT			0x01
2598*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_GND				0x01
2599*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_SRC_ID_GND_SHIFT			0x00
2600*4882a593Smuzhiyun 
2601*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_LATCH_SET */
2602*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_FLOAT			0x10
2603*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_FLOAT_SHIFT		0x04
2604*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_A			0x08
2605*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_A_SHIFT			0x03
2606*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_B			0x04
2607*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_B_SHIFT			0x02
2608*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_C			0x02
2609*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_C_SHIFT			0x01
2610*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_GND			0x01
2611*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_SET_ID_GND_SHIFT		0x00
2612*4882a593Smuzhiyun 
2613*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_LATCH_CLR */
2614*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_FLOAT			0x10
2615*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_FLOAT_SHIFT		0x04
2616*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_A			0x08
2617*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_A_SHIFT			0x03
2618*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_B			0x04
2619*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_B_SHIFT			0x02
2620*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_C			0x02
2621*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_C_SHIFT			0x01
2622*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_GND			0x01
2623*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_LATCH_CLR_ID_GND_SHIFT		0x00
2624*4882a593Smuzhiyun 
2625*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_EN_LO_SET */
2626*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_FLOAT			0x10
2627*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_FLOAT_SHIFT		0x04
2628*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_A			0x08
2629*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_A_SHIFT			0x03
2630*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_B			0x04
2631*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_B_SHIFT			0x02
2632*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_C			0x02
2633*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_C_SHIFT			0x01
2634*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_GND			0x01
2635*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_SET_ID_GND_SHIFT		0x00
2636*4882a593Smuzhiyun 
2637*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_EN_LO_CLR */
2638*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_FLOAT			0x10
2639*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_FLOAT_SHIFT		0x04
2640*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_A			0x08
2641*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_A_SHIFT			0x03
2642*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_B			0x04
2643*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_B_SHIFT			0x02
2644*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_C			0x02
2645*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_C_SHIFT			0x01
2646*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_GND			0x01
2647*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_LO_CLR_ID_GND_SHIFT		0x00
2648*4882a593Smuzhiyun 
2649*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_EN_HI_SET */
2650*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_FLOAT			0x10
2651*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_FLOAT_SHIFT		0x04
2652*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_A			0x08
2653*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_A_SHIFT			0x03
2654*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_B			0x04
2655*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_B_SHIFT			0x02
2656*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_C			0x02
2657*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_C_SHIFT			0x01
2658*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_GND			0x01
2659*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_SET_ID_GND_SHIFT		0x00
2660*4882a593Smuzhiyun 
2661*4882a593Smuzhiyun /* Bit definitions for USB_ID_INT_EN_HI_CLR */
2662*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_FLOAT			0x10
2663*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_FLOAT_SHIFT		0x04
2664*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_A			0x08
2665*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_A_SHIFT			0x03
2666*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_B			0x04
2667*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_B_SHIFT			0x02
2668*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_C			0x02
2669*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_C_SHIFT			0x01
2670*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_GND			0x01
2671*4882a593Smuzhiyun #define PALMAS_USB_ID_INT_EN_HI_CLR_ID_GND_SHIFT		0x00
2672*4882a593Smuzhiyun 
2673*4882a593Smuzhiyun /* Bit definitions for USB_OTG_ADP_CTRL */
2674*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_CTRL_ADP_EN				0x04
2675*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_CTRL_ADP_EN_SHIFT			0x02
2676*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_CTRL_ADP_MODE_MASK			0x03
2677*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_CTRL_ADP_MODE_SHIFT			0x00
2678*4882a593Smuzhiyun 
2679*4882a593Smuzhiyun /* Bit definitions for USB_OTG_ADP_HIGH */
2680*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_HIGH_T_ADP_HIGH_MASK			0xFF
2681*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_HIGH_T_ADP_HIGH_SHIFT		0x00
2682*4882a593Smuzhiyun 
2683*4882a593Smuzhiyun /* Bit definitions for USB_OTG_ADP_LOW */
2684*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_LOW_T_ADP_LOW_MASK			0xFF
2685*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_LOW_T_ADP_LOW_SHIFT			0x00
2686*4882a593Smuzhiyun 
2687*4882a593Smuzhiyun /* Bit definitions for USB_OTG_ADP_RISE */
2688*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_RISE_T_ADP_RISE_MASK			0xFF
2689*4882a593Smuzhiyun #define PALMAS_USB_OTG_ADP_RISE_T_ADP_RISE_SHIFT		0x00
2690*4882a593Smuzhiyun 
2691*4882a593Smuzhiyun /* Bit definitions for USB_OTG_REVISION */
2692*4882a593Smuzhiyun #define PALMAS_USB_OTG_REVISION_OTG_REV				0x01
2693*4882a593Smuzhiyun #define PALMAS_USB_OTG_REVISION_OTG_REV_SHIFT			0x00
2694*4882a593Smuzhiyun 
2695*4882a593Smuzhiyun /* Registers for function VIBRATOR */
2696*4882a593Smuzhiyun #define PALMAS_VIBRA_CTRL					0x00
2697*4882a593Smuzhiyun 
2698*4882a593Smuzhiyun /* Bit definitions for VIBRA_CTRL */
2699*4882a593Smuzhiyun #define PALMAS_VIBRA_CTRL_PWM_DUTY_SEL_MASK			0x06
2700*4882a593Smuzhiyun #define PALMAS_VIBRA_CTRL_PWM_DUTY_SEL_SHIFT			0x01
2701*4882a593Smuzhiyun #define PALMAS_VIBRA_CTRL_PWM_FREQ_SEL				0x01
2702*4882a593Smuzhiyun #define PALMAS_VIBRA_CTRL_PWM_FREQ_SEL_SHIFT			0x00
2703*4882a593Smuzhiyun 
2704*4882a593Smuzhiyun /* Registers for function GPIO */
2705*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN					0x00
2706*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR					0x01
2707*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT					0x02
2708*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN					0x03
2709*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT				0x04
2710*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT				0x05
2711*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1					0x06
2712*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2					0x07
2713*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL				0x08
2714*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN2					0x09
2715*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR2					0x0A
2716*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT2					0x0B
2717*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN2				0x0C
2718*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT2				0x0D
2719*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT2				0x0E
2720*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL3					0x0F
2721*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL4					0x10
2722*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL2				0x11
2723*4882a593Smuzhiyun 
2724*4882a593Smuzhiyun /* Bit definitions for GPIO_DATA_IN */
2725*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_7_IN				0x80
2726*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_7_IN_SHIFT			0x07
2727*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_6_IN				0x40
2728*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_6_IN_SHIFT			0x06
2729*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_5_IN				0x20
2730*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_5_IN_SHIFT			0x05
2731*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_4_IN				0x10
2732*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_4_IN_SHIFT			0x04
2733*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_3_IN				0x08
2734*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_3_IN_SHIFT			0x03
2735*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_2_IN				0x04
2736*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_2_IN_SHIFT			0x02
2737*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_1_IN				0x02
2738*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_1_IN_SHIFT			0x01
2739*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_0_IN				0x01
2740*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_IN_GPIO_0_IN_SHIFT			0x00
2741*4882a593Smuzhiyun 
2742*4882a593Smuzhiyun /* Bit definitions for GPIO_DATA_DIR */
2743*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_7_DIR				0x80
2744*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_7_DIR_SHIFT			0x07
2745*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_6_DIR				0x40
2746*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_6_DIR_SHIFT			0x06
2747*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_5_DIR				0x20
2748*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_5_DIR_SHIFT			0x05
2749*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_4_DIR				0x10
2750*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_4_DIR_SHIFT			0x04
2751*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_3_DIR				0x08
2752*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_3_DIR_SHIFT			0x03
2753*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_2_DIR				0x04
2754*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_2_DIR_SHIFT			0x02
2755*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_1_DIR				0x02
2756*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_1_DIR_SHIFT			0x01
2757*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_0_DIR				0x01
2758*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_DIR_GPIO_0_DIR_SHIFT			0x00
2759*4882a593Smuzhiyun 
2760*4882a593Smuzhiyun /* Bit definitions for GPIO_DATA_OUT */
2761*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_7_OUT				0x80
2762*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_7_OUT_SHIFT			0x07
2763*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_6_OUT				0x40
2764*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_6_OUT_SHIFT			0x06
2765*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_5_OUT				0x20
2766*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_5_OUT_SHIFT			0x05
2767*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_4_OUT				0x10
2768*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_4_OUT_SHIFT			0x04
2769*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_3_OUT				0x08
2770*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_3_OUT_SHIFT			0x03
2771*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_2_OUT				0x04
2772*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_2_OUT_SHIFT			0x02
2773*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_1_OUT				0x02
2774*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_1_OUT_SHIFT			0x01
2775*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_0_OUT				0x01
2776*4882a593Smuzhiyun #define PALMAS_GPIO_DATA_OUT_GPIO_0_OUT_SHIFT			0x00
2777*4882a593Smuzhiyun 
2778*4882a593Smuzhiyun /* Bit definitions for GPIO_DEBOUNCE_EN */
2779*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_7_DEBOUNCE_EN		0x80
2780*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_7_DEBOUNCE_EN_SHIFT	0x07
2781*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_6_DEBOUNCE_EN		0x40
2782*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_6_DEBOUNCE_EN_SHIFT	0x06
2783*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_5_DEBOUNCE_EN		0x20
2784*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_5_DEBOUNCE_EN_SHIFT	0x05
2785*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_4_DEBOUNCE_EN		0x10
2786*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_4_DEBOUNCE_EN_SHIFT	0x04
2787*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_3_DEBOUNCE_EN		0x08
2788*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_3_DEBOUNCE_EN_SHIFT	0x03
2789*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_2_DEBOUNCE_EN		0x04
2790*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_2_DEBOUNCE_EN_SHIFT	0x02
2791*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_1_DEBOUNCE_EN		0x02
2792*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_1_DEBOUNCE_EN_SHIFT	0x01
2793*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_0_DEBOUNCE_EN		0x01
2794*4882a593Smuzhiyun #define PALMAS_GPIO_DEBOUNCE_EN_GPIO_0_DEBOUNCE_EN_SHIFT	0x00
2795*4882a593Smuzhiyun 
2796*4882a593Smuzhiyun /* Bit definitions for GPIO_CLEAR_DATA_OUT */
2797*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_7_CLEAR_DATA_OUT	0x80
2798*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_7_CLEAR_DATA_OUT_SHIFT	0x07
2799*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_6_CLEAR_DATA_OUT	0x40
2800*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_6_CLEAR_DATA_OUT_SHIFT	0x06
2801*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_5_CLEAR_DATA_OUT	0x20
2802*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_5_CLEAR_DATA_OUT_SHIFT	0x05
2803*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_4_CLEAR_DATA_OUT	0x10
2804*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_4_CLEAR_DATA_OUT_SHIFT	0x04
2805*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_3_CLEAR_DATA_OUT	0x08
2806*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_3_CLEAR_DATA_OUT_SHIFT	0x03
2807*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_2_CLEAR_DATA_OUT	0x04
2808*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_2_CLEAR_DATA_OUT_SHIFT	0x02
2809*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_1_CLEAR_DATA_OUT	0x02
2810*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_1_CLEAR_DATA_OUT_SHIFT	0x01
2811*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_0_CLEAR_DATA_OUT	0x01
2812*4882a593Smuzhiyun #define PALMAS_GPIO_CLEAR_DATA_OUT_GPIO_0_CLEAR_DATA_OUT_SHIFT	0x00
2813*4882a593Smuzhiyun 
2814*4882a593Smuzhiyun /* Bit definitions for GPIO_SET_DATA_OUT */
2815*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_7_SET_DATA_OUT		0x80
2816*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_7_SET_DATA_OUT_SHIFT	0x07
2817*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_6_SET_DATA_OUT		0x40
2818*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_6_SET_DATA_OUT_SHIFT	0x06
2819*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_5_SET_DATA_OUT		0x20
2820*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_5_SET_DATA_OUT_SHIFT	0x05
2821*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_4_SET_DATA_OUT		0x10
2822*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_4_SET_DATA_OUT_SHIFT	0x04
2823*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_3_SET_DATA_OUT		0x08
2824*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_3_SET_DATA_OUT_SHIFT	0x03
2825*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_2_SET_DATA_OUT		0x04
2826*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_2_SET_DATA_OUT_SHIFT	0x02
2827*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_1_SET_DATA_OUT		0x02
2828*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_1_SET_DATA_OUT_SHIFT	0x01
2829*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_0_SET_DATA_OUT		0x01
2830*4882a593Smuzhiyun #define PALMAS_GPIO_SET_DATA_OUT_GPIO_0_SET_DATA_OUT_SHIFT	0x00
2831*4882a593Smuzhiyun 
2832*4882a593Smuzhiyun /* Bit definitions for PU_PD_GPIO_CTRL1 */
2833*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_3_PD			0x40
2834*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_3_PD_SHIFT			0x06
2835*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_2_PU			0x20
2836*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_2_PU_SHIFT			0x05
2837*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_2_PD			0x10
2838*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_2_PD_SHIFT			0x04
2839*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_1_PU			0x08
2840*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_1_PU_SHIFT			0x03
2841*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_1_PD			0x04
2842*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_1_PD_SHIFT			0x02
2843*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_0_PD			0x01
2844*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL1_GPIO_0_PD_SHIFT			0x00
2845*4882a593Smuzhiyun 
2846*4882a593Smuzhiyun /* Bit definitions for PU_PD_GPIO_CTRL2 */
2847*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_7_PD			0x40
2848*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_7_PD_SHIFT			0x06
2849*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_6_PU			0x20
2850*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_6_PU_SHIFT			0x05
2851*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_6_PD			0x10
2852*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_6_PD_SHIFT			0x04
2853*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_5_PU			0x08
2854*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_5_PU_SHIFT			0x03
2855*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_5_PD			0x04
2856*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_5_PD_SHIFT			0x02
2857*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_4_PU			0x02
2858*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_4_PU_SHIFT			0x01
2859*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_4_PD			0x01
2860*4882a593Smuzhiyun #define PALMAS_PU_PD_GPIO_CTRL2_GPIO_4_PD_SHIFT			0x00
2861*4882a593Smuzhiyun 
2862*4882a593Smuzhiyun /* Bit definitions for OD_OUTPUT_GPIO_CTRL */
2863*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_5_OD			0x20
2864*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_5_OD_SHIFT		0x05
2865*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_2_OD			0x04
2866*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_2_OD_SHIFT		0x02
2867*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_1_OD			0x02
2868*4882a593Smuzhiyun #define PALMAS_OD_OUTPUT_GPIO_CTRL_GPIO_1_OD_SHIFT		0x01
2869*4882a593Smuzhiyun 
2870*4882a593Smuzhiyun /* Registers for function GPADC */
2871*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1					0x00
2872*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL2					0x01
2873*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CTRL					0x02
2874*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL					0x03
2875*4882a593Smuzhiyun #define PALMAS_GPADC_STATUS					0x04
2876*4882a593Smuzhiyun #define PALMAS_GPADC_RT_SELECT					0x05
2877*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_LSB				0x06
2878*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_MSB				0x07
2879*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_SELECT				0x08
2880*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_LSB				0x09
2881*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_MSB				0x0A
2882*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_LSB				0x0B
2883*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_MSB				0x0C
2884*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT					0x0D
2885*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_LSB				0x0E
2886*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_MSB				0x0F
2887*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_LSB				0x10
2888*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_MSB				0x11
2889*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_LSB				0x12
2890*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_MSB				0x13
2891*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN				0x14
2892*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_VSEL_MONITORING			0x15
2893*4882a593Smuzhiyun 
2894*4882a593Smuzhiyun /* Bit definitions for GPADC_CTRL1 */
2895*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_RESERVED_MASK			0xc0
2896*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_RESERVED_SHIFT			0x06
2897*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_CURRENT_SRC_CH3_MASK			0x30
2898*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_CURRENT_SRC_CH3_SHIFT		0x04
2899*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_CURRENT_SRC_CH0_MASK			0x0c
2900*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_CURRENT_SRC_CH0_SHIFT		0x02
2901*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_BAT_REMOVAL_DET			0x02
2902*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_BAT_REMOVAL_DET_SHIFT		0x01
2903*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_GPADC_FORCE				0x01
2904*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL1_GPADC_FORCE_SHIFT			0x00
2905*4882a593Smuzhiyun 
2906*4882a593Smuzhiyun /* Bit definitions for GPADC_CTRL2 */
2907*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL2_RESERVED_MASK			0x06
2908*4882a593Smuzhiyun #define PALMAS_GPADC_CTRL2_RESERVED_SHIFT			0x01
2909*4882a593Smuzhiyun 
2910*4882a593Smuzhiyun /* Bit definitions for GPADC_RT_CTRL */
2911*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CTRL_EXTEND_DELAY			0x02
2912*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CTRL_EXTEND_DELAY_SHIFT			0x01
2913*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CTRL_START_POLARITY			0x01
2914*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CTRL_START_POLARITY_SHIFT		0x00
2915*4882a593Smuzhiyun 
2916*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_CTRL */
2917*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_SHUTDOWN_CONV1			0x80
2918*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_SHUTDOWN_CONV1_SHIFT		0x07
2919*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_SHUTDOWN_CONV0			0x40
2920*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_SHUTDOWN_CONV0_SHIFT		0x06
2921*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_AUTO_CONV1_EN			0x20
2922*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_AUTO_CONV1_EN_SHIFT		0x05
2923*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_AUTO_CONV0_EN			0x10
2924*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_AUTO_CONV0_EN_SHIFT		0x04
2925*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_COUNTER_CONV_MASK		0x0F
2926*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CTRL_COUNTER_CONV_SHIFT		0x00
2927*4882a593Smuzhiyun 
2928*4882a593Smuzhiyun /* Bit definitions for GPADC_STATUS */
2929*4882a593Smuzhiyun #define PALMAS_GPADC_STATUS_GPADC_AVAILABLE			0x10
2930*4882a593Smuzhiyun #define PALMAS_GPADC_STATUS_GPADC_AVAILABLE_SHIFT		0x04
2931*4882a593Smuzhiyun 
2932*4882a593Smuzhiyun /* Bit definitions for GPADC_RT_SELECT */
2933*4882a593Smuzhiyun #define PALMAS_GPADC_RT_SELECT_RT_CONV_EN			0x80
2934*4882a593Smuzhiyun #define PALMAS_GPADC_RT_SELECT_RT_CONV_EN_SHIFT			0x07
2935*4882a593Smuzhiyun #define PALMAS_GPADC_RT_SELECT_RT_CONV0_SEL_MASK		0x0F
2936*4882a593Smuzhiyun #define PALMAS_GPADC_RT_SELECT_RT_CONV0_SEL_SHIFT		0x00
2937*4882a593Smuzhiyun 
2938*4882a593Smuzhiyun /* Bit definitions for GPADC_RT_CONV0_LSB */
2939*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_LSB_RT_CONV0_LSB_MASK		0xFF
2940*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_LSB_RT_CONV0_LSB_SHIFT		0x00
2941*4882a593Smuzhiyun 
2942*4882a593Smuzhiyun /* Bit definitions for GPADC_RT_CONV0_MSB */
2943*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_MSB_RT_CONV0_MSB_MASK		0x0F
2944*4882a593Smuzhiyun #define PALMAS_GPADC_RT_CONV0_MSB_RT_CONV0_MSB_SHIFT		0x00
2945*4882a593Smuzhiyun 
2946*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_SELECT */
2947*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_SELECT_AUTO_CONV1_SEL_MASK		0xF0
2948*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_SELECT_AUTO_CONV1_SEL_SHIFT		0x04
2949*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_SELECT_AUTO_CONV0_SEL_MASK		0x0F
2950*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_SELECT_AUTO_CONV0_SEL_SHIFT		0x00
2951*4882a593Smuzhiyun 
2952*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_CONV0_LSB */
2953*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_LSB_AUTO_CONV0_LSB_MASK		0xFF
2954*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_LSB_AUTO_CONV0_LSB_SHIFT	0x00
2955*4882a593Smuzhiyun 
2956*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_CONV0_MSB */
2957*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_MSB_AUTO_CONV0_MSB_MASK		0x0F
2958*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV0_MSB_AUTO_CONV0_MSB_SHIFT	0x00
2959*4882a593Smuzhiyun 
2960*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_CONV1_LSB */
2961*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_LSB_AUTO_CONV1_LSB_MASK		0xFF
2962*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_LSB_AUTO_CONV1_LSB_SHIFT	0x00
2963*4882a593Smuzhiyun 
2964*4882a593Smuzhiyun /* Bit definitions for GPADC_AUTO_CONV1_MSB */
2965*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_MSB_AUTO_CONV1_MSB_MASK		0x0F
2966*4882a593Smuzhiyun #define PALMAS_GPADC_AUTO_CONV1_MSB_AUTO_CONV1_MSB_SHIFT	0x00
2967*4882a593Smuzhiyun 
2968*4882a593Smuzhiyun /* Bit definitions for GPADC_SW_SELECT */
2969*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_CONV_EN			0x80
2970*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_CONV_EN_SHIFT			0x07
2971*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_START_CONV0			0x10
2972*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_START_CONV0_SHIFT		0x04
2973*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_CONV0_SEL_MASK		0x0F
2974*4882a593Smuzhiyun #define PALMAS_GPADC_SW_SELECT_SW_CONV0_SEL_SHIFT		0x00
2975*4882a593Smuzhiyun 
2976*4882a593Smuzhiyun /* Bit definitions for GPADC_SW_CONV0_LSB */
2977*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_LSB_SW_CONV0_LSB_MASK		0xFF
2978*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_LSB_SW_CONV0_LSB_SHIFT		0x00
2979*4882a593Smuzhiyun 
2980*4882a593Smuzhiyun /* Bit definitions for GPADC_SW_CONV0_MSB */
2981*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_MSB_SW_CONV0_MSB_MASK		0x0F
2982*4882a593Smuzhiyun #define PALMAS_GPADC_SW_CONV0_MSB_SW_CONV0_MSB_SHIFT		0x00
2983*4882a593Smuzhiyun 
2984*4882a593Smuzhiyun /* Bit definitions for GPADC_THRES_CONV0_LSB */
2985*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_LSB_THRES_CONV0_LSB_MASK	0xFF
2986*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_LSB_THRES_CONV0_LSB_SHIFT	0x00
2987*4882a593Smuzhiyun 
2988*4882a593Smuzhiyun /* Bit definitions for GPADC_THRES_CONV0_MSB */
2989*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_MSB_THRES_CONV0_POL		0x80
2990*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_MSB_THRES_CONV0_POL_SHIFT	0x07
2991*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_MSB_THRES_CONV0_MSB_MASK	0x0F
2992*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV0_MSB_THRES_CONV0_MSB_SHIFT	0x00
2993*4882a593Smuzhiyun 
2994*4882a593Smuzhiyun /* Bit definitions for GPADC_THRES_CONV1_LSB */
2995*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_LSB_THRES_CONV1_LSB_MASK	0xFF
2996*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_LSB_THRES_CONV1_LSB_SHIFT	0x00
2997*4882a593Smuzhiyun 
2998*4882a593Smuzhiyun /* Bit definitions for GPADC_THRES_CONV1_MSB */
2999*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_MSB_THRES_CONV1_POL		0x80
3000*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_MSB_THRES_CONV1_POL_SHIFT	0x07
3001*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_MSB_THRES_CONV1_MSB_MASK	0x0F
3002*4882a593Smuzhiyun #define PALMAS_GPADC_THRES_CONV1_MSB_THRES_CONV1_MSB_SHIFT	0x00
3003*4882a593Smuzhiyun 
3004*4882a593Smuzhiyun /* Bit definitions for GPADC_SMPS_ILMONITOR_EN */
3005*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_EN		0x20
3006*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_EN_SHIFT	0x05
3007*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_REXT		0x10
3008*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_REXT_SHIFT	0x04
3009*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_SEL_MASK	0x0F
3010*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_ILMONITOR_EN_SMPS_ILMON_SEL_SHIFT	0x00
3011*4882a593Smuzhiyun 
3012*4882a593Smuzhiyun /* Bit definitions for GPADC_SMPS_VSEL_MONITORING */
3013*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_VSEL_MONITORING_ACTIVE_PHASE		0x80
3014*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_VSEL_MONITORING_ACTIVE_PHASE_SHIFT	0x07
3015*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_VSEL_MONITORING_SMPS_VSEL_MONITORING_MASK	0x7F
3016*4882a593Smuzhiyun #define PALMAS_GPADC_SMPS_VSEL_MONITORING_SMPS_VSEL_MONITORING_SHIFT	0x00
3017*4882a593Smuzhiyun 
3018*4882a593Smuzhiyun /* Registers for function GPADC */
3019*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM1					0x00
3020*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM2					0x01
3021*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM3					0x02
3022*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM4					0x03
3023*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM5					0x04
3024*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM6					0x05
3025*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM7					0x06
3026*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM8					0x07
3027*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM9					0x08
3028*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM10					0x09
3029*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM11					0x0A
3030*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM12					0x0B
3031*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM13					0x0C
3032*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM14					0x0D
3033*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM15					0x0E
3034*4882a593Smuzhiyun #define PALMAS_GPADC_TRIM16					0x0F
3035*4882a593Smuzhiyun 
3036*4882a593Smuzhiyun /* TPS659038 regen2_ctrl offset iss different from palmas */
3037*4882a593Smuzhiyun #define TPS659038_REGEN2_CTRL					0x12
3038*4882a593Smuzhiyun 
3039*4882a593Smuzhiyun /* TPS65917 Interrupt registers */
3040*4882a593Smuzhiyun 
3041*4882a593Smuzhiyun /* Registers for function INTERRUPT */
3042*4882a593Smuzhiyun #define TPS65917_INT1_STATUS					0x00
3043*4882a593Smuzhiyun #define TPS65917_INT1_MASK					0x01
3044*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE				0x02
3045*4882a593Smuzhiyun #define TPS65917_INT2_STATUS					0x05
3046*4882a593Smuzhiyun #define TPS65917_INT2_MASK					0x06
3047*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE				0x07
3048*4882a593Smuzhiyun #define TPS65917_INT3_STATUS					0x0A
3049*4882a593Smuzhiyun #define TPS65917_INT3_MASK					0x0B
3050*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE				0x0C
3051*4882a593Smuzhiyun #define TPS65917_INT4_STATUS					0x0F
3052*4882a593Smuzhiyun #define TPS65917_INT4_MASK					0x10
3053*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE				0x11
3054*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1				0x12
3055*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2				0x13
3056*4882a593Smuzhiyun #define TPS65917_INT_CTRL					0x14
3057*4882a593Smuzhiyun 
3058*4882a593Smuzhiyun /* Bit definitions for INT1_STATUS */
3059*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_VSYS_MON				0x40
3060*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_VSYS_MON_SHIFT			0x06
3061*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_HOTDIE				0x20
3062*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_HOTDIE_SHIFT			0x05
3063*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_PWRDOWN				0x10
3064*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_PWRDOWN_SHIFT			0x04
3065*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_LONG_PRESS_KEY			0x04
3066*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_LONG_PRESS_KEY_SHIFT		0x02
3067*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_PWRON				0x02
3068*4882a593Smuzhiyun #define TPS65917_INT1_STATUS_PWRON_SHIFT			0x01
3069*4882a593Smuzhiyun 
3070*4882a593Smuzhiyun /* Bit definitions for INT1_MASK */
3071*4882a593Smuzhiyun #define TPS65917_INT1_MASK_VSYS_MON				0x40
3072*4882a593Smuzhiyun #define TPS65917_INT1_MASK_VSYS_MON_SHIFT			0x06
3073*4882a593Smuzhiyun #define TPS65917_INT1_MASK_HOTDIE				0x20
3074*4882a593Smuzhiyun #define TPS65917_INT1_MASK_HOTDIE_SHIFT			0x05
3075*4882a593Smuzhiyun #define TPS65917_INT1_MASK_PWRDOWN				0x10
3076*4882a593Smuzhiyun #define TPS65917_INT1_MASK_PWRDOWN_SHIFT			0x04
3077*4882a593Smuzhiyun #define TPS65917_INT1_MASK_LONG_PRESS_KEY			0x04
3078*4882a593Smuzhiyun #define TPS65917_INT1_MASK_LONG_PRESS_KEY_SHIFT		0x02
3079*4882a593Smuzhiyun #define TPS65917_INT1_MASK_PWRON				0x02
3080*4882a593Smuzhiyun #define TPS65917_INT1_MASK_PWRON_SHIFT				0x01
3081*4882a593Smuzhiyun 
3082*4882a593Smuzhiyun /* Bit definitions for INT1_LINE_STATE */
3083*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_VSYS_MON			0x40
3084*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_VSYS_MON_SHIFT		0x06
3085*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_HOTDIE			0x20
3086*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_HOTDIE_SHIFT			0x05
3087*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_PWRDOWN			0x10
3088*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_PWRDOWN_SHIFT			0x04
3089*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_LONG_PRESS_KEY		0x04
3090*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_LONG_PRESS_KEY_SHIFT		0x02
3091*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_PWRON				0x02
3092*4882a593Smuzhiyun #define TPS65917_INT1_LINE_STATE_PWRON_SHIFT			0x01
3093*4882a593Smuzhiyun 
3094*4882a593Smuzhiyun /* Bit definitions for INT2_STATUS */
3095*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_SHORT				0x40
3096*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_SHORT_SHIFT			0x06
3097*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_FSD				0x20
3098*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_FSD_SHIFT				0x05
3099*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_RESET_IN				0x10
3100*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_RESET_IN_SHIFT			0x04
3101*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_WDT				0x04
3102*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_WDT_SHIFT				0x02
3103*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_OTP_ERROR				0x02
3104*4882a593Smuzhiyun #define TPS65917_INT2_STATUS_OTP_ERROR_SHIFT			0x01
3105*4882a593Smuzhiyun 
3106*4882a593Smuzhiyun /* Bit definitions for INT2_MASK */
3107*4882a593Smuzhiyun #define TPS65917_INT2_MASK_SHORT				0x40
3108*4882a593Smuzhiyun #define TPS65917_INT2_MASK_SHORT_SHIFT				0x06
3109*4882a593Smuzhiyun #define TPS65917_INT2_MASK_FSD					0x20
3110*4882a593Smuzhiyun #define TPS65917_INT2_MASK_FSD_SHIFT				0x05
3111*4882a593Smuzhiyun #define TPS65917_INT2_MASK_RESET_IN				0x10
3112*4882a593Smuzhiyun #define TPS65917_INT2_MASK_RESET_IN_SHIFT			0x04
3113*4882a593Smuzhiyun #define TPS65917_INT2_MASK_WDT					0x04
3114*4882a593Smuzhiyun #define TPS65917_INT2_MASK_WDT_SHIFT				0x02
3115*4882a593Smuzhiyun #define TPS65917_INT2_MASK_OTP_ERROR_TIMER			0x02
3116*4882a593Smuzhiyun #define TPS65917_INT2_MASK_OTP_ERROR_SHIFT			0x01
3117*4882a593Smuzhiyun 
3118*4882a593Smuzhiyun /* Bit definitions for INT2_LINE_STATE */
3119*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_SHORT				0x40
3120*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_SHORT_SHIFT			0x06
3121*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_FSD				0x20
3122*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_FSD_SHIFT			0x05
3123*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_RESET_IN			0x10
3124*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_RESET_IN_SHIFT		0x04
3125*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_WDT				0x04
3126*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_WDT_SHIFT			0x02
3127*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_OTP_ERROR			0x02
3128*4882a593Smuzhiyun #define TPS65917_INT2_LINE_STATE_OTP_ERROR_SHIFT		0x01
3129*4882a593Smuzhiyun 
3130*4882a593Smuzhiyun /* Bit definitions for INT3_STATUS */
3131*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_VBUS				0x80
3132*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_VBUS_SHIFT			0x07
3133*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_EOC_SW			0x04
3134*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_EOC_SW_SHIFT		0x02
3135*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_AUTO_1			0x02
3136*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_AUTO_1_SHIFT		0x01
3137*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_AUTO_0			0x01
3138*4882a593Smuzhiyun #define TPS65917_INT3_STATUS_GPADC_AUTO_0_SHIFT		0x00
3139*4882a593Smuzhiyun 
3140*4882a593Smuzhiyun /* Bit definitions for INT3_MASK */
3141*4882a593Smuzhiyun #define TPS65917_INT3_MASK_VBUS				0x80
3142*4882a593Smuzhiyun #define TPS65917_INT3_MASK_VBUS_SHIFT				0x07
3143*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_EOC_SW			0x04
3144*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_EOC_SW_SHIFT			0x02
3145*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_AUTO_1			0x02
3146*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_AUTO_1_SHIFT			0x01
3147*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_AUTO_0			0x01
3148*4882a593Smuzhiyun #define TPS65917_INT3_MASK_GPADC_AUTO_0_SHIFT			0x00
3149*4882a593Smuzhiyun 
3150*4882a593Smuzhiyun /* Bit definitions for INT3_LINE_STATE */
3151*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_VBUS				0x80
3152*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_VBUS_SHIFT			0x07
3153*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_EOC_SW			0x04
3154*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_EOC_SW_SHIFT		0x02
3155*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_AUTO_1			0x02
3156*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_AUTO_1_SHIFT		0x01
3157*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_AUTO_0			0x01
3158*4882a593Smuzhiyun #define TPS65917_INT3_LINE_STATE_GPADC_AUTO_0_SHIFT		0x00
3159*4882a593Smuzhiyun 
3160*4882a593Smuzhiyun /* Bit definitions for INT4_STATUS */
3161*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_6				0x40
3162*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_6_SHIFT			0x06
3163*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_5				0x20
3164*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_5_SHIFT			0x05
3165*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_4				0x10
3166*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_4_SHIFT			0x04
3167*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_3				0x08
3168*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_3_SHIFT			0x03
3169*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_2				0x04
3170*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_2_SHIFT			0x02
3171*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_1				0x02
3172*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_1_SHIFT			0x01
3173*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_0				0x01
3174*4882a593Smuzhiyun #define TPS65917_INT4_STATUS_GPIO_0_SHIFT			0x00
3175*4882a593Smuzhiyun 
3176*4882a593Smuzhiyun /* Bit definitions for INT4_MASK */
3177*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_6				0x40
3178*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_6_SHIFT			0x06
3179*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_5				0x20
3180*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_5_SHIFT			0x05
3181*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_4				0x10
3182*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_4_SHIFT			0x04
3183*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_3				0x08
3184*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_3_SHIFT			0x03
3185*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_2				0x04
3186*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_2_SHIFT			0x02
3187*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_1				0x02
3188*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_1_SHIFT			0x01
3189*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_0				0x01
3190*4882a593Smuzhiyun #define TPS65917_INT4_MASK_GPIO_0_SHIFT			0x00
3191*4882a593Smuzhiyun 
3192*4882a593Smuzhiyun /* Bit definitions for INT4_LINE_STATE */
3193*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_6			0x40
3194*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_6_SHIFT			0x06
3195*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_5			0x20
3196*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_5_SHIFT			0x05
3197*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_4			0x10
3198*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_4_SHIFT			0x04
3199*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_3			0x08
3200*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_3_SHIFT			0x03
3201*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_2			0x04
3202*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_2_SHIFT			0x02
3203*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_1			0x02
3204*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_1_SHIFT			0x01
3205*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_0			0x01
3206*4882a593Smuzhiyun #define TPS65917_INT4_LINE_STATE_GPIO_0_SHIFT			0x00
3207*4882a593Smuzhiyun 
3208*4882a593Smuzhiyun /* Bit definitions for INT4_EDGE_DETECT1 */
3209*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_3_RISING		0x80
3210*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_3_RISING_SHIFT		0x07
3211*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_3_FALLING		0x40
3212*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_3_FALLING_SHIFT	0x06
3213*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_2_RISING		0x20
3214*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_2_RISING_SHIFT		0x05
3215*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_2_FALLING		0x10
3216*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_2_FALLING_SHIFT	0x04
3217*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_1_RISING		0x08
3218*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_1_RISING_SHIFT		0x03
3219*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_1_FALLING		0x04
3220*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_1_FALLING_SHIFT	0x02
3221*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_0_RISING		0x02
3222*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_0_RISING_SHIFT		0x01
3223*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_0_FALLING		0x01
3224*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT1_GPIO_0_FALLING_SHIFT	0x00
3225*4882a593Smuzhiyun 
3226*4882a593Smuzhiyun /* Bit definitions for INT4_EDGE_DETECT2 */
3227*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_6_RISING		0x20
3228*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_6_RISING_SHIFT		0x05
3229*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_6_FALLING		0x10
3230*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_6_FALLING_SHIFT	0x04
3231*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_5_RISING		0x08
3232*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_5_RISING_SHIFT		0x03
3233*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_5_FALLING		0x04
3234*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_5_FALLING_SHIFT	0x02
3235*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_4_RISING		0x02
3236*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_4_RISING_SHIFT		0x01
3237*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_4_FALLING		0x01
3238*4882a593Smuzhiyun #define TPS65917_INT4_EDGE_DETECT2_GPIO_4_FALLING_SHIFT	0x00
3239*4882a593Smuzhiyun 
3240*4882a593Smuzhiyun /* Bit definitions for INT_CTRL */
3241*4882a593Smuzhiyun #define TPS65917_INT_CTRL_INT_PENDING				0x04
3242*4882a593Smuzhiyun #define TPS65917_INT_CTRL_INT_PENDING_SHIFT			0x02
3243*4882a593Smuzhiyun #define TPS65917_INT_CTRL_INT_CLEAR				0x01
3244*4882a593Smuzhiyun #define TPS65917_INT_CTRL_INT_CLEAR_SHIFT			0x00
3245*4882a593Smuzhiyun 
3246*4882a593Smuzhiyun /* TPS65917 SMPS Registers */
3247*4882a593Smuzhiyun 
3248*4882a593Smuzhiyun /* Registers for function SMPS */
3249*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL					0x00
3250*4882a593Smuzhiyun #define TPS65917_SMPS1_FORCE					0x02
3251*4882a593Smuzhiyun #define TPS65917_SMPS1_VOLTAGE					0x03
3252*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL					0x04
3253*4882a593Smuzhiyun #define TPS65917_SMPS2_FORCE					0x06
3254*4882a593Smuzhiyun #define TPS65917_SMPS2_VOLTAGE					0x07
3255*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL					0x0C
3256*4882a593Smuzhiyun #define TPS65917_SMPS3_FORCE					0x0E
3257*4882a593Smuzhiyun #define TPS65917_SMPS3_VOLTAGE					0x0F
3258*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL					0x10
3259*4882a593Smuzhiyun #define TPS65917_SMPS4_VOLTAGE					0x13
3260*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL					0x18
3261*4882a593Smuzhiyun #define TPS65917_SMPS5_VOLTAGE					0x1B
3262*4882a593Smuzhiyun #define TPS65917_SMPS_CTRL					0x24
3263*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL					0x25
3264*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN				0x27
3265*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS				0x28
3266*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS				0x29
3267*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN		0x2A
3268*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1				0x2B
3269*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK2				0x2C
3270*4882a593Smuzhiyun 
3271*4882a593Smuzhiyun /* Bit definitions for SMPS1_CTRL */
3272*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_WR_S				0x80
3273*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_WR_S_SHIFT				0x07
3274*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_ROOF_FLOOR_EN			0x40
3275*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_ROOF_FLOOR_EN_SHIFT		0x06
3276*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_STATUS_MASK			0x30
3277*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_STATUS_SHIFT			0x04
3278*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_MODE_SLEEP_MASK			0x0C
3279*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_MODE_SLEEP_SHIFT			0x02
3280*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_MODE_ACTIVE_MASK			0x03
3281*4882a593Smuzhiyun #define TPS65917_SMPS1_CTRL_MODE_ACTIVE_SHIFT			0x00
3282*4882a593Smuzhiyun 
3283*4882a593Smuzhiyun /* Bit definitions for SMPS1_FORCE */
3284*4882a593Smuzhiyun #define TPS65917_SMPS1_FORCE_CMD				0x80
3285*4882a593Smuzhiyun #define TPS65917_SMPS1_FORCE_CMD_SHIFT				0x07
3286*4882a593Smuzhiyun #define TPS65917_SMPS1_FORCE_VSEL_MASK				0x7F
3287*4882a593Smuzhiyun #define TPS65917_SMPS1_FORCE_VSEL_SHIFT			0x00
3288*4882a593Smuzhiyun 
3289*4882a593Smuzhiyun /* Bit definitions for SMPS1_VOLTAGE */
3290*4882a593Smuzhiyun #define TPS65917_SMPS1_VOLTAGE_RANGE				0x80
3291*4882a593Smuzhiyun #define TPS65917_SMPS1_VOLTAGE_RANGE_SHIFT			0x07
3292*4882a593Smuzhiyun #define TPS65917_SMPS1_VOLTAGE_VSEL_MASK			0x7F
3293*4882a593Smuzhiyun #define TPS65917_SMPS1_VOLTAGE_VSEL_SHIFT			0x00
3294*4882a593Smuzhiyun 
3295*4882a593Smuzhiyun /* Bit definitions for SMPS2_CTRL */
3296*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_WR_S				0x80
3297*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_WR_S_SHIFT				0x07
3298*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_ROOF_FLOOR_EN			0x40
3299*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_ROOF_FLOOR_EN_SHIFT		0x06
3300*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_STATUS_MASK			0x30
3301*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_STATUS_SHIFT			0x04
3302*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_MODE_SLEEP_MASK			0x0C
3303*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_MODE_SLEEP_SHIFT			0x02
3304*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_MODE_ACTIVE_MASK			0x03
3305*4882a593Smuzhiyun #define TPS65917_SMPS2_CTRL_MODE_ACTIVE_SHIFT			0x00
3306*4882a593Smuzhiyun 
3307*4882a593Smuzhiyun /* Bit definitions for SMPS2_FORCE */
3308*4882a593Smuzhiyun #define TPS65917_SMPS2_FORCE_CMD				0x80
3309*4882a593Smuzhiyun #define TPS65917_SMPS2_FORCE_CMD_SHIFT				0x07
3310*4882a593Smuzhiyun #define TPS65917_SMPS2_FORCE_VSEL_MASK				0x7F
3311*4882a593Smuzhiyun #define TPS65917_SMPS2_FORCE_VSEL_SHIFT			0x00
3312*4882a593Smuzhiyun 
3313*4882a593Smuzhiyun /* Bit definitions for SMPS2_VOLTAGE */
3314*4882a593Smuzhiyun #define TPS65917_SMPS2_VOLTAGE_RANGE				0x80
3315*4882a593Smuzhiyun #define TPS65917_SMPS2_VOLTAGE_RANGE_SHIFT			0x07
3316*4882a593Smuzhiyun #define TPS65917_SMPS2_VOLTAGE_VSEL_MASK			0x7F
3317*4882a593Smuzhiyun #define TPS65917_SMPS2_VOLTAGE_VSEL_SHIFT			0x00
3318*4882a593Smuzhiyun 
3319*4882a593Smuzhiyun /* Bit definitions for SMPS3_CTRL */
3320*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_WR_S				0x80
3321*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_WR_S_SHIFT				0x07
3322*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_ROOF_FLOOR_EN			0x40
3323*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_ROOF_FLOOR_EN_SHIFT		0x06
3324*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_STATUS_MASK			0x30
3325*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_STATUS_SHIFT			0x04
3326*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_MODE_SLEEP_MASK			0x0C
3327*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_MODE_SLEEP_SHIFT			0x02
3328*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_MODE_ACTIVE_MASK			0x03
3329*4882a593Smuzhiyun #define TPS65917_SMPS3_CTRL_MODE_ACTIVE_SHIFT			0x00
3330*4882a593Smuzhiyun 
3331*4882a593Smuzhiyun /* Bit definitions for SMPS3_FORCE */
3332*4882a593Smuzhiyun #define TPS65917_SMPS3_FORCE_CMD				0x80
3333*4882a593Smuzhiyun #define TPS65917_SMPS3_FORCE_CMD_SHIFT				0x07
3334*4882a593Smuzhiyun #define TPS65917_SMPS3_FORCE_VSEL_MASK				0x7F
3335*4882a593Smuzhiyun #define TPS65917_SMPS3_FORCE_VSEL_SHIFT			0x00
3336*4882a593Smuzhiyun 
3337*4882a593Smuzhiyun /* Bit definitions for SMPS3_VOLTAGE */
3338*4882a593Smuzhiyun #define TPS65917_SMPS3_VOLTAGE_RANGE				0x80
3339*4882a593Smuzhiyun #define TPS65917_SMPS3_VOLTAGE_RANGE_SHIFT			0x07
3340*4882a593Smuzhiyun #define TPS65917_SMPS3_VOLTAGE_VSEL_MASK			0x7F
3341*4882a593Smuzhiyun #define TPS65917_SMPS3_VOLTAGE_VSEL_SHIFT			0x00
3342*4882a593Smuzhiyun 
3343*4882a593Smuzhiyun /* Bit definitions for SMPS4_CTRL */
3344*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_WR_S				0x80
3345*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_WR_S_SHIFT				0x07
3346*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_ROOF_FLOOR_EN			0x40
3347*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_ROOF_FLOOR_EN_SHIFT		0x06
3348*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_STATUS_MASK			0x30
3349*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_STATUS_SHIFT			0x04
3350*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_MODE_SLEEP_MASK			0x0C
3351*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_MODE_SLEEP_SHIFT			0x02
3352*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_MODE_ACTIVE_MASK			0x03
3353*4882a593Smuzhiyun #define TPS65917_SMPS4_CTRL_MODE_ACTIVE_SHIFT			0x00
3354*4882a593Smuzhiyun 
3355*4882a593Smuzhiyun /* Bit definitions for SMPS4_VOLTAGE */
3356*4882a593Smuzhiyun #define TPS65917_SMPS4_VOLTAGE_RANGE				0x80
3357*4882a593Smuzhiyun #define TPS65917_SMPS4_VOLTAGE_RANGE_SHIFT			0x07
3358*4882a593Smuzhiyun #define TPS65917_SMPS4_VOLTAGE_VSEL_MASK			0x7F
3359*4882a593Smuzhiyun #define TPS65917_SMPS4_VOLTAGE_VSEL_SHIFT			0x00
3360*4882a593Smuzhiyun 
3361*4882a593Smuzhiyun /* Bit definitions for SMPS5_CTRL */
3362*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_WR_S				0x80
3363*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_WR_S_SHIFT				0x07
3364*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_ROOF_FLOOR_EN			0x40
3365*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_ROOF_FLOOR_EN_SHIFT		0x06
3366*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_STATUS_MASK			0x30
3367*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_STATUS_SHIFT			0x04
3368*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_MODE_SLEEP_MASK			0x0C
3369*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_MODE_SLEEP_SHIFT			0x02
3370*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_MODE_ACTIVE_MASK			0x03
3371*4882a593Smuzhiyun #define TPS65917_SMPS5_CTRL_MODE_ACTIVE_SHIFT			0x00
3372*4882a593Smuzhiyun 
3373*4882a593Smuzhiyun /* Bit definitions for SMPS5_VOLTAGE */
3374*4882a593Smuzhiyun #define TPS65917_SMPS5_VOLTAGE_RANGE				0x80
3375*4882a593Smuzhiyun #define TPS65917_SMPS5_VOLTAGE_RANGE_SHIFT			0x07
3376*4882a593Smuzhiyun #define TPS65917_SMPS5_VOLTAGE_VSEL_MASK			0x7F
3377*4882a593Smuzhiyun #define TPS65917_SMPS5_VOLTAGE_VSEL_SHIFT			0x00
3378*4882a593Smuzhiyun 
3379*4882a593Smuzhiyun /* Bit definitions for SMPS_CTRL */
3380*4882a593Smuzhiyun #define TPS65917_SMPS_CTRL_SMPS1_SMPS12_EN			0x10
3381*4882a593Smuzhiyun #define TPS65917_SMPS_CTRL_SMPS1_SMPS12_EN_SHIFT		0x04
3382*4882a593Smuzhiyun #define TPS65917_SMPS_CTRL_SMPS12_PHASE_CTRL			0x03
3383*4882a593Smuzhiyun #define TPS65917_SMPS_CTRL_SMPS12_PHASE_CTRL_SHIFT		0x00
3384*4882a593Smuzhiyun 
3385*4882a593Smuzhiyun /* Bit definitions for SMPS_PD_CTRL */
3386*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS5				0x40
3387*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS5_SHIFT			0x06
3388*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS4				0x10
3389*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS4_SHIFT			0x04
3390*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS3				0x08
3391*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS3_SHIFT			0x03
3392*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS2				0x02
3393*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS2_SHIFT			0x01
3394*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS1				0x01
3395*4882a593Smuzhiyun #define TPS65917_SMPS_PD_CTRL_SMPS1_SHIFT			0x00
3396*4882a593Smuzhiyun 
3397*4882a593Smuzhiyun /* Bit definitions for SMPS_THERMAL_EN */
3398*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS5				0x40
3399*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS5_SHIFT			0x06
3400*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS3				0x08
3401*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS3_SHIFT			0x03
3402*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS12			0x01
3403*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_EN_SMPS12_SHIFT			0x00
3404*4882a593Smuzhiyun 
3405*4882a593Smuzhiyun /* Bit definitions for SMPS_THERMAL_STATUS */
3406*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS5			0x40
3407*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS5_SHIFT		0x06
3408*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS3			0x08
3409*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS3_SHIFT		0x03
3410*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS12			0x01
3411*4882a593Smuzhiyun #define TPS65917_SMPS_THERMAL_STATUS_SMPS12_SHIFT		0x00
3412*4882a593Smuzhiyun 
3413*4882a593Smuzhiyun /* Bit definitions for SMPS_SHORT_STATUS */
3414*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS5			0x40
3415*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS5_SHIFT			0x06
3416*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS4			0x10
3417*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS4_SHIFT			0x04
3418*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS3			0x08
3419*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS3_SHIFT			0x03
3420*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS2			0x02
3421*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS2_SHIFT			0x01
3422*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS1			0x01
3423*4882a593Smuzhiyun #define TPS65917_SMPS_SHORT_STATUS_SMPS1_SHIFT			0x00
3424*4882a593Smuzhiyun 
3425*4882a593Smuzhiyun /* Bit definitions for SMPS_NEGATIVE_CURRENT_LIMIT_EN */
3426*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS5		0x40
3427*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS5_SHIFT	0x06
3428*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS4		0x10
3429*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS4_SHIFT	0x04
3430*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS3		0x08
3431*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS3_SHIFT	0x03
3432*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS2		0x02
3433*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS2_SHIFT	0x01
3434*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS1		0x01
3435*4882a593Smuzhiyun #define TPS65917_SMPS_NEGATIVE_CURRENT_LIMIT_EN_SMPS1_SHIFT	0x00
3436*4882a593Smuzhiyun 
3437*4882a593Smuzhiyun /* Bit definitions for SMPS_POWERGOOD_MASK1 */
3438*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS5			0x40
3439*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS5_SHIFT		0x06
3440*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS4			0x10
3441*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS4_SHIFT		0x04
3442*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS3			0x08
3443*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS3_SHIFT		0x03
3444*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS2			0x02
3445*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS2_SHIFT		0x01
3446*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS1			0x01
3447*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK1_SMPS1_SHIFT		0x00
3448*4882a593Smuzhiyun 
3449*4882a593Smuzhiyun /* Bit definitions for SMPS_POWERGOOD_MASK2 */
3450*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK2_POWERGOOD_TYPE_SELECT		0x80
3451*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK2_POWERGOOD_TYPE_SELECT_SHIFT	0x07
3452*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK2_OVC_ALARM_SHIFT			0x10
3453*4882a593Smuzhiyun #define TPS65917_SMPS_POWERGOOD_MASK2_OVC_ALARM			0x04
3454*4882a593Smuzhiyun 
3455*4882a593Smuzhiyun /* Bit definitions for SMPS_PLL_CTRL */
3456*4882a593Smuzhiyun 
3457*4882a593Smuzhiyun #define TPS65917_SMPS_PLL_CTRL_PLL_EN_PLL_BYPASS_SHIFT		0x08
3458*4882a593Smuzhiyun #define TPS65917_SMPS_PLL_CTRL_PLL_PLL_EN_BYPASS		0x03
3459*4882a593Smuzhiyun #define TPS65917_SMPS_PLL_CTRL_PLL_PLL_BYPASS_CLK_SHIFT	0x04
3460*4882a593Smuzhiyun #define TPS65917_SMPS_PLL_CTRL_PLL_PLL_BYPASS_CLK		0x02
3461*4882a593Smuzhiyun 
3462*4882a593Smuzhiyun /* Registers for function LDO */
3463*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL					0x00
3464*4882a593Smuzhiyun #define TPS65917_LDO1_VOLTAGE					0x01
3465*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL					0x02
3466*4882a593Smuzhiyun #define TPS65917_LDO2_VOLTAGE					0x03
3467*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL					0x04
3468*4882a593Smuzhiyun #define TPS65917_LDO3_VOLTAGE					0x05
3469*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL					0x0E
3470*4882a593Smuzhiyun #define TPS65917_LDO4_VOLTAGE					0x0F
3471*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL					0x12
3472*4882a593Smuzhiyun #define TPS65917_LDO5_VOLTAGE					0x13
3473*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1					0x1B
3474*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2					0x1C
3475*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1				0x1D
3476*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2				0x1E
3477*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL3					0x2D
3478*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS3				0x2E
3479*4882a593Smuzhiyun 
3480*4882a593Smuzhiyun /* Bit definitions for LDO1_CTRL */
3481*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_WR_S				0x80
3482*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_WR_S_SHIFT				0x07
3483*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_BYPASS_EN				0x40
3484*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_BYPASS_EN_SHIFT			0x06
3485*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_STATUS				0x10
3486*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_STATUS_SHIFT			0x04
3487*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_MODE_SLEEP				0x04
3488*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_MODE_SLEEP_SHIFT			0x02
3489*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_MODE_ACTIVE				0x01
3490*4882a593Smuzhiyun #define TPS65917_LDO1_CTRL_MODE_ACTIVE_SHIFT			0x00
3491*4882a593Smuzhiyun 
3492*4882a593Smuzhiyun /* Bit definitions for LDO1_VOLTAGE */
3493*4882a593Smuzhiyun #define TPS65917_LDO1_VOLTAGE_VSEL_MASK			0x2F
3494*4882a593Smuzhiyun #define TPS65917_LDO1_VOLTAGE_VSEL_SHIFT			0x00
3495*4882a593Smuzhiyun 
3496*4882a593Smuzhiyun /* Bit definitions for LDO2_CTRL */
3497*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_WR_S				0x80
3498*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_WR_S_SHIFT				0x07
3499*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_BYPASS_EN				0x40
3500*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_BYPASS_EN_SHIFT			0x06
3501*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_STATUS				0x10
3502*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_STATUS_SHIFT			0x04
3503*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_MODE_SLEEP				0x04
3504*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_MODE_SLEEP_SHIFT			0x02
3505*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_MODE_ACTIVE				0x01
3506*4882a593Smuzhiyun #define TPS65917_LDO2_CTRL_MODE_ACTIVE_SHIFT			0x00
3507*4882a593Smuzhiyun 
3508*4882a593Smuzhiyun /* Bit definitions for LDO2_VOLTAGE */
3509*4882a593Smuzhiyun #define TPS65917_LDO2_VOLTAGE_VSEL_MASK			0x2F
3510*4882a593Smuzhiyun #define TPS65917_LDO2_VOLTAGE_VSEL_SHIFT			0x00
3511*4882a593Smuzhiyun 
3512*4882a593Smuzhiyun /* Bit definitions for LDO3_CTRL */
3513*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_WR_S				0x80
3514*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_WR_S_SHIFT				0x07
3515*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_STATUS				0x10
3516*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_STATUS_SHIFT			0x04
3517*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_MODE_SLEEP				0x04
3518*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_MODE_SLEEP_SHIFT			0x02
3519*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_MODE_ACTIVE				0x01
3520*4882a593Smuzhiyun #define TPS65917_LDO3_CTRL_MODE_ACTIVE_SHIFT			0x00
3521*4882a593Smuzhiyun 
3522*4882a593Smuzhiyun /* Bit definitions for LDO3_VOLTAGE */
3523*4882a593Smuzhiyun #define TPS65917_LDO3_VOLTAGE_VSEL_MASK			0x2F
3524*4882a593Smuzhiyun #define TPS65917_LDO3_VOLTAGE_VSEL_SHIFT			0x00
3525*4882a593Smuzhiyun 
3526*4882a593Smuzhiyun /* Bit definitions for LDO4_CTRL */
3527*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_WR_S				0x80
3528*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_WR_S_SHIFT				0x07
3529*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_STATUS				0x10
3530*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_STATUS_SHIFT			0x04
3531*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_MODE_SLEEP				0x04
3532*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_MODE_SLEEP_SHIFT			0x02
3533*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_MODE_ACTIVE				0x01
3534*4882a593Smuzhiyun #define TPS65917_LDO4_CTRL_MODE_ACTIVE_SHIFT			0x00
3535*4882a593Smuzhiyun 
3536*4882a593Smuzhiyun /* Bit definitions for LDO4_VOLTAGE */
3537*4882a593Smuzhiyun #define TPS65917_LDO4_VOLTAGE_VSEL_MASK			0x2F
3538*4882a593Smuzhiyun #define TPS65917_LDO4_VOLTAGE_VSEL_SHIFT			0x00
3539*4882a593Smuzhiyun 
3540*4882a593Smuzhiyun /* Bit definitions for LDO5_CTRL */
3541*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_WR_S				0x80
3542*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_WR_S_SHIFT				0x07
3543*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_STATUS				0x10
3544*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_STATUS_SHIFT			0x04
3545*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_MODE_SLEEP				0x04
3546*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_MODE_SLEEP_SHIFT			0x02
3547*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_MODE_ACTIVE				0x01
3548*4882a593Smuzhiyun #define TPS65917_LDO5_CTRL_MODE_ACTIVE_SHIFT			0x00
3549*4882a593Smuzhiyun 
3550*4882a593Smuzhiyun /* Bit definitions for LDO5_VOLTAGE */
3551*4882a593Smuzhiyun #define TPS65917_LDO5_VOLTAGE_VSEL_MASK			0x2F
3552*4882a593Smuzhiyun #define TPS65917_LDO5_VOLTAGE_VSEL_SHIFT			0x00
3553*4882a593Smuzhiyun 
3554*4882a593Smuzhiyun /* Bit definitions for LDO_PD_CTRL1 */
3555*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO4				0x80
3556*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO4_SHIFT			0x07
3557*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO2				0x02
3558*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO2_SHIFT			0x01
3559*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO1				0x01
3560*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL1_LDO1_SHIFT			0x00
3561*4882a593Smuzhiyun 
3562*4882a593Smuzhiyun /* Bit definitions for LDO_PD_CTRL2 */
3563*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDO3				0x04
3564*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDO3_SHIFT			0x02
3565*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDO5				0x02
3566*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDO5_SHIFT			0x01
3567*4882a593Smuzhiyun 
3568*4882a593Smuzhiyun /* Bit definitions for LDO_PD_CTRL3 */
3569*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDOVANA				0x80
3570*4882a593Smuzhiyun #define TPS65917_LDO_PD_CTRL2_LDOVANA_SHIFT			0x07
3571*4882a593Smuzhiyun 
3572*4882a593Smuzhiyun /* Bit definitions for LDO_SHORT_STATUS1 */
3573*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO4			0x80
3574*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO4_SHIFT			0x07
3575*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO2			0x02
3576*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO2_SHIFT			0x01
3577*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO1			0x01
3578*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS1_LDO1_SHIFT			0x00
3579*4882a593Smuzhiyun 
3580*4882a593Smuzhiyun /* Bit definitions for LDO_SHORT_STATUS2 */
3581*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDO3			0x04
3582*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDO3_SHIFT			0x02
3583*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDO5			0x02
3584*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDO5_SHIFT			0x01
3585*4882a593Smuzhiyun 
3586*4882a593Smuzhiyun /* Bit definitions for LDO_SHORT_STATUS2 */
3587*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDOVANA			0x80
3588*4882a593Smuzhiyun #define TPS65917_LDO_SHORT_STATUS2_LDOVANA_SHIFT		0x07
3589*4882a593Smuzhiyun 
3590*4882a593Smuzhiyun /* Bit definitions for REGEN1_CTRL */
3591*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_STATUS				0x10
3592*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_STATUS_SHIFT			0x04
3593*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_MODE_SLEEP			0x04
3594*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_MODE_SLEEP_SHIFT			0x02
3595*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_MODE_ACTIVE			0x01
3596*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL_MODE_ACTIVE_SHIFT			0x00
3597*4882a593Smuzhiyun 
3598*4882a593Smuzhiyun /* Bit definitions for PLLEN_CTRL */
3599*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_STATUS				0x10
3600*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_STATUS_SHIFT			0x04
3601*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_MODE_SLEEP				0x04
3602*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_MODE_SLEEP_SHIFT			0x02
3603*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_MODE_ACTIVE			0x01
3604*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL_MODE_ACTIVE_SHIFT			0x00
3605*4882a593Smuzhiyun 
3606*4882a593Smuzhiyun /* Bit definitions for REGEN2_CTRL */
3607*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_STATUS				0x10
3608*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_STATUS_SHIFT			0x04
3609*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_MODE_SLEEP			0x04
3610*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_MODE_SLEEP_SHIFT			0x02
3611*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_MODE_ACTIVE			0x01
3612*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL_MODE_ACTIVE_SHIFT			0x00
3613*4882a593Smuzhiyun 
3614*4882a593Smuzhiyun /* Bit definitions for NSLEEP_RES_ASSIGN */
3615*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_PLL_EN			0x08
3616*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_PLL_EN_SHIFT		0x03
3617*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN3			0x04
3618*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN3_SHIFT		0x02
3619*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN2			0x02
3620*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN2_SHIFT		0x01
3621*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN1			0x01
3622*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN_REGEN1_SHIFT		0x00
3623*4882a593Smuzhiyun 
3624*4882a593Smuzhiyun /* Bit definitions for NSLEEP_SMPS_ASSIGN */
3625*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS5			0x40
3626*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS5_SHIFT		0x06
3627*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS4			0x10
3628*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS4_SHIFT		0x04
3629*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS3			0x08
3630*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS3_SHIFT		0x03
3631*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS2			0x02
3632*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS2_SHIFT		0x01
3633*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS1			0x01
3634*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN_SMPS1_SHIFT		0x00
3635*4882a593Smuzhiyun 
3636*4882a593Smuzhiyun /* Bit definitions for NSLEEP_LDO_ASSIGN1 */
3637*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO4			0x80
3638*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO4_SHIFT			0x07
3639*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO2			0x02
3640*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO2_SHIFT			0x01
3641*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO1			0x01
3642*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1_LDO1_SHIFT			0x00
3643*4882a593Smuzhiyun 
3644*4882a593Smuzhiyun /* Bit definitions for NSLEEP_LDO_ASSIGN2 */
3645*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN2_LDO3			0x04
3646*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN2_LDO3_SHIFT			0x02
3647*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN2_LDO5			0x02
3648*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN2_LDO5_SHIFT			0x01
3649*4882a593Smuzhiyun 
3650*4882a593Smuzhiyun /* Bit definitions for ENABLE1_RES_ASSIGN */
3651*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_PLLEN			0x08
3652*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_PLLEN_SHIFT		0x03
3653*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN3			0x04
3654*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN3_SHIFT		0x02
3655*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN2			0x02
3656*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN2_SHIFT		0x01
3657*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN1			0x01
3658*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN_REGEN1_SHIFT		0x00
3659*4882a593Smuzhiyun 
3660*4882a593Smuzhiyun /* Bit definitions for ENABLE1_SMPS_ASSIGN */
3661*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS5			0x40
3662*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS5_SHIFT		0x06
3663*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS4			0x10
3664*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS4_SHIFT		0x04
3665*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS3			0x08
3666*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS3_SHIFT		0x03
3667*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS2			0x02
3668*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS2_SHIFT		0x01
3669*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS1			0x01
3670*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN_SMPS1_SHIFT		0x00
3671*4882a593Smuzhiyun 
3672*4882a593Smuzhiyun /* Bit definitions for ENABLE1_LDO_ASSIGN1 */
3673*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO4			0x80
3674*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO4_SHIFT		0x07
3675*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO2			0x02
3676*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO2_SHIFT		0x01
3677*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO1			0x01
3678*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1_LDO1_SHIFT		0x00
3679*4882a593Smuzhiyun 
3680*4882a593Smuzhiyun /* Bit definitions for ENABLE1_LDO_ASSIGN2 */
3681*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN2_LDO3			0x04
3682*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN2_LDO3_SHIFT		0x02
3683*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN2_LDO5			0x02
3684*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN2_LDO5_SHIFT		0x01
3685*4882a593Smuzhiyun 
3686*4882a593Smuzhiyun /* Bit definitions for ENABLE2_RES_ASSIGN */
3687*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_PLLEN			0x08
3688*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_PLLEN_SHIFT		0x03
3689*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN3			0x04
3690*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN3_SHIFT		0x02
3691*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN2			0x02
3692*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN2_SHIFT		0x01
3693*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN1			0x01
3694*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN_REGEN1_SHIFT		0x00
3695*4882a593Smuzhiyun 
3696*4882a593Smuzhiyun /* Bit definitions for ENABLE2_SMPS_ASSIGN */
3697*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS5			0x40
3698*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS5_SHIFT		0x06
3699*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS4			0x10
3700*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS4_SHIFT		0x04
3701*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS3			0x08
3702*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS3_SHIFT		0x03
3703*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS2			0x02
3704*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS2_SHIFT		0x01
3705*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS1			0x01
3706*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN_SMPS1_SHIFT		0x00
3707*4882a593Smuzhiyun 
3708*4882a593Smuzhiyun /* Bit definitions for ENABLE2_LDO_ASSIGN1 */
3709*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO4			0x80
3710*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO4_SHIFT		0x07
3711*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO2			0x02
3712*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO2_SHIFT		0x01
3713*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO1			0x01
3714*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1_LDO1_SHIFT		0x00
3715*4882a593Smuzhiyun 
3716*4882a593Smuzhiyun /* Bit definitions for ENABLE2_LDO_ASSIGN2 */
3717*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN2_LDO3			0x04
3718*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN2_LDO3_SHIFT		0x02
3719*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN2_LDO5			0x02
3720*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN2_LDO5_SHIFT		0x01
3721*4882a593Smuzhiyun 
3722*4882a593Smuzhiyun /* Bit definitions for REGEN3_CTRL */
3723*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_STATUS				0x10
3724*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_STATUS_SHIFT			0x04
3725*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_MODE_SLEEP			0x04
3726*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_MODE_SLEEP_SHIFT			0x02
3727*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_MODE_ACTIVE			0x01
3728*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL_MODE_ACTIVE_SHIFT			0x00
3729*4882a593Smuzhiyun 
3730*4882a593Smuzhiyun /* POWERHOLD Mask field for PRIMARY_SECONDARY_PAD2 register */
3731*4882a593Smuzhiyun #define TPS65917_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK		0xC
3732*4882a593Smuzhiyun 
3733*4882a593Smuzhiyun /* Registers for function RESOURCE */
3734*4882a593Smuzhiyun #define TPS65917_REGEN1_CTRL					0x2
3735*4882a593Smuzhiyun #define TPS65917_PLLEN_CTRL					0x3
3736*4882a593Smuzhiyun #define TPS65917_NSLEEP_RES_ASSIGN				0x6
3737*4882a593Smuzhiyun #define TPS65917_NSLEEP_SMPS_ASSIGN				0x7
3738*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN1				0x8
3739*4882a593Smuzhiyun #define TPS65917_NSLEEP_LDO_ASSIGN2				0x9
3740*4882a593Smuzhiyun #define TPS65917_ENABLE1_RES_ASSIGN				0xA
3741*4882a593Smuzhiyun #define TPS65917_ENABLE1_SMPS_ASSIGN				0xB
3742*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN1				0xC
3743*4882a593Smuzhiyun #define TPS65917_ENABLE1_LDO_ASSIGN2				0xD
3744*4882a593Smuzhiyun #define TPS65917_ENABLE2_RES_ASSIGN				0xE
3745*4882a593Smuzhiyun #define TPS65917_ENABLE2_SMPS_ASSIGN				0xF
3746*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN1				0x10
3747*4882a593Smuzhiyun #define TPS65917_ENABLE2_LDO_ASSIGN2				0x11
3748*4882a593Smuzhiyun #define TPS65917_REGEN2_CTRL					0x12
3749*4882a593Smuzhiyun #define TPS65917_REGEN3_CTRL					0x13
3750*4882a593Smuzhiyun 
palmas_read(struct palmas * palmas,unsigned int base,unsigned int reg,unsigned int * val)3751*4882a593Smuzhiyun static inline int palmas_read(struct palmas *palmas, unsigned int base,
3752*4882a593Smuzhiyun 		unsigned int reg, unsigned int *val)
3753*4882a593Smuzhiyun {
3754*4882a593Smuzhiyun 	unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
3755*4882a593Smuzhiyun 	int slave_id = PALMAS_BASE_TO_SLAVE(base);
3756*4882a593Smuzhiyun 
3757*4882a593Smuzhiyun 	return regmap_read(palmas->regmap[slave_id], addr, val);
3758*4882a593Smuzhiyun }
3759*4882a593Smuzhiyun 
palmas_write(struct palmas * palmas,unsigned int base,unsigned int reg,unsigned int value)3760*4882a593Smuzhiyun static inline int palmas_write(struct palmas *palmas, unsigned int base,
3761*4882a593Smuzhiyun 		unsigned int reg, unsigned int value)
3762*4882a593Smuzhiyun {
3763*4882a593Smuzhiyun 	unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
3764*4882a593Smuzhiyun 	int slave_id = PALMAS_BASE_TO_SLAVE(base);
3765*4882a593Smuzhiyun 
3766*4882a593Smuzhiyun 	return regmap_write(palmas->regmap[slave_id], addr, value);
3767*4882a593Smuzhiyun }
3768*4882a593Smuzhiyun 
palmas_bulk_write(struct palmas * palmas,unsigned int base,unsigned int reg,const void * val,size_t val_count)3769*4882a593Smuzhiyun static inline int palmas_bulk_write(struct palmas *palmas, unsigned int base,
3770*4882a593Smuzhiyun 	unsigned int reg, const void *val, size_t val_count)
3771*4882a593Smuzhiyun {
3772*4882a593Smuzhiyun 	unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
3773*4882a593Smuzhiyun 	int slave_id = PALMAS_BASE_TO_SLAVE(base);
3774*4882a593Smuzhiyun 
3775*4882a593Smuzhiyun 	return regmap_bulk_write(palmas->regmap[slave_id], addr,
3776*4882a593Smuzhiyun 			val, val_count);
3777*4882a593Smuzhiyun }
3778*4882a593Smuzhiyun 
palmas_bulk_read(struct palmas * palmas,unsigned int base,unsigned int reg,void * val,size_t val_count)3779*4882a593Smuzhiyun static inline int palmas_bulk_read(struct palmas *palmas, unsigned int base,
3780*4882a593Smuzhiyun 		unsigned int reg, void *val, size_t val_count)
3781*4882a593Smuzhiyun {
3782*4882a593Smuzhiyun 	unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
3783*4882a593Smuzhiyun 	int slave_id = PALMAS_BASE_TO_SLAVE(base);
3784*4882a593Smuzhiyun 
3785*4882a593Smuzhiyun 	return regmap_bulk_read(palmas->regmap[slave_id], addr,
3786*4882a593Smuzhiyun 		val, val_count);
3787*4882a593Smuzhiyun }
3788*4882a593Smuzhiyun 
palmas_update_bits(struct palmas * palmas,unsigned int base,unsigned int reg,unsigned int mask,unsigned int val)3789*4882a593Smuzhiyun static inline int palmas_update_bits(struct palmas *palmas, unsigned int base,
3790*4882a593Smuzhiyun 	unsigned int reg, unsigned int mask, unsigned int val)
3791*4882a593Smuzhiyun {
3792*4882a593Smuzhiyun 	unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
3793*4882a593Smuzhiyun 	int slave_id = PALMAS_BASE_TO_SLAVE(base);
3794*4882a593Smuzhiyun 
3795*4882a593Smuzhiyun 	return regmap_update_bits(palmas->regmap[slave_id], addr, mask, val);
3796*4882a593Smuzhiyun }
3797*4882a593Smuzhiyun 
palmas_irq_get_virq(struct palmas * palmas,int irq)3798*4882a593Smuzhiyun static inline int palmas_irq_get_virq(struct palmas *palmas, int irq)
3799*4882a593Smuzhiyun {
3800*4882a593Smuzhiyun 	return regmap_irq_get_virq(palmas->irq_data, irq);
3801*4882a593Smuzhiyun }
3802*4882a593Smuzhiyun 
3803*4882a593Smuzhiyun 
3804*4882a593Smuzhiyun int palmas_ext_control_req_config(struct palmas *palmas,
3805*4882a593Smuzhiyun 	enum palmas_external_requestor_id ext_control_req_id,
3806*4882a593Smuzhiyun 	int ext_ctrl, bool enable);
3807*4882a593Smuzhiyun 
3808*4882a593Smuzhiyun #endif /*  __LINUX_MFD_PALMAS_H */
3809