1/*
2 * Registers definition for DA9063 modules
3 *
4 * Copyright 2012 Dialog Semiconductor Ltd.
5 *
6 * Author: Michal Hajduk <michal.hajduk@diasemi.com>
7 *	   Krystian Garbaciak <krystian.garbaciak@diasemi.com>
8 *
9 *  This program is free software; you can redistribute  it and/or modify it
10 *  under  the terms of  the GNU General  Public License as published by the
11 *  Free Software Foundation;  either version 2 of the  License, or (at your
12 *  option) any later version.
13 *
14 */
15
16#ifndef _DA9063_REG_H
17#define	_DA9063_REG_H
18
19#define DA9063_I2C_PAGE_SEL_SHIFT	1
20#define	DA9063_EVENT_REG_NUM		4
21
22/* Page selection I2C or SPI always in the begining of any page. */
23/* Page 0 : I2C access 0x000 - 0x0FF	SPI access 0x000 - 0x07F */
24/* Page 1 :				SPI access 0x080 - 0x0FF */
25/* Page 2 : I2C access 0x100 - 0x1FF	SPI access 0x100 - 0x17F */
26/* Page 3 :				SPI access 0x180 - 0x1FF */
27#define	DA9063_REG_PAGE_CON		0x00
28
29/* System Control and Event Registers */
30#define	DA9063_REG_STATUS_A		0x01
31#define	DA9063_REG_STATUS_B		0x02
32#define	DA9063_REG_STATUS_C		0x03
33#define	DA9063_REG_STATUS_D		0x04
34#define	DA9063_REG_FAULT_LOG		0x05
35#define	DA9063_REG_EVENT_A		0x06
36#define	DA9063_REG_EVENT_B		0x07
37#define	DA9063_REG_EVENT_C		0x08
38#define	DA9063_REG_EVENT_D		0x09
39#define	DA9063_REG_IRQ_MASK_A		0x0A
40#define	DA9063_REG_IRQ_MASK_B		0x0B
41#define	DA9063_REG_IRQ_MASK_C		0x0C
42#define	DA9063_REG_IRQ_MASK_D		0x0D
43#define	DA9063_REG_CONTROL_A		0x0E
44#define	DA9063_REG_CONTROL_B		0x0F
45#define	DA9063_REG_CONTROL_C		0x10
46#define	DA9063_REG_CONTROL_D		0x11
47#define	DA9063_REG_CONTROL_E		0x12
48#define	DA9063_REG_CONTROL_F		0x13
49#define	DA9063_REG_PD_DIS		0x14
50
51/* GPIO Control Registers */
52#define	DA9063_REG_GPIO_0_1		0x15
53#define	DA9063_REG_GPIO_2_3		0x16
54#define	DA9063_REG_GPIO_4_5		0x17
55#define	DA9063_REG_GPIO_6_7		0x18
56#define	DA9063_REG_GPIO_8_9		0x19
57#define	DA9063_REG_GPIO_10_11		0x1A
58#define	DA9063_REG_GPIO_12_13		0x1B
59#define	DA9063_REG_GPIO_14_15		0x1C
60#define	DA9063_REG_GPIO_MODE0_7		0x1D
61#define	DA9063_REG_GPIO_MODE8_15	0x1E
62#define	DA9063_REG_SWITCH_CONT		0x1F
63
64/* Regulator Control Registers */
65#define	DA9063_REG_BCORE2_CONT		0x20
66#define	DA9063_REG_BCORE1_CONT		0x21
67#define	DA9063_REG_BPRO_CONT		0x22
68#define	DA9063_REG_BMEM_CONT		0x23
69#define	DA9063_REG_BIO_CONT		0x24
70#define	DA9063_REG_BPERI_CONT		0x25
71#define	DA9063_REG_LDO1_CONT		0x26
72#define	DA9063_REG_LDO2_CONT		0x27
73#define	DA9063_REG_LDO3_CONT		0x28
74#define	DA9063_REG_LDO4_CONT		0x29
75#define	DA9063_REG_LDO5_CONT		0x2A
76#define	DA9063_REG_LDO6_CONT		0x2B
77#define	DA9063_REG_LDO7_CONT		0x2C
78#define	DA9063_REG_LDO8_CONT		0x2D
79#define	DA9063_REG_LDO9_CONT		0x2E
80#define	DA9063_REG_LDO10_CONT		0x2F
81#define	DA9063_REG_LDO11_CONT		0x30
82#define	DA9063_REG_SUPPLIES		0x31
83#define	DA9063_REG_DVC_1		0x32
84#define	DA9063_REG_DVC_2		0x33
85
86/* GP-ADC Control Registers */
87#define	DA9063_REG_ADC_MAN		0x34
88#define	DA9063_REG_ADC_CONT		0x35
89#define	DA9063_REG_VSYS_MON		0x36
90#define	DA9063_REG_ADC_RES_L		0x37
91#define	DA9063_REG_ADC_RES_H		0x38
92#define	DA9063_REG_VSYS_RES		0x39
93#define	DA9063_REG_ADCIN1_RES		0x3A
94#define	DA9063_REG_ADCIN2_RES		0x3B
95#define	DA9063_REG_ADCIN3_RES		0x3C
96#define	DA9063_REG_MON_A8_RES		0x3D
97#define	DA9063_REG_MON_A9_RES		0x3E
98#define	DA9063_REG_MON_A10_RES		0x3F
99
100/* RTC Calendar and Alarm Registers */
101#define	DA9063_REG_COUNT_S		0x40
102#define	DA9063_REG_COUNT_MI		0x41
103#define	DA9063_REG_COUNT_H		0x42
104#define	DA9063_REG_COUNT_D		0x43
105#define	DA9063_REG_COUNT_MO		0x44
106#define	DA9063_REG_COUNT_Y		0x45
107
108#define	DA9063_AD_REG_ALARM_MI		0x46
109#define	DA9063_AD_REG_ALARM_H		0x47
110#define	DA9063_AD_REG_ALARM_D		0x48
111#define	DA9063_AD_REG_ALARM_MO		0x49
112#define	DA9063_AD_REG_ALARM_Y		0x4A
113#define	DA9063_AD_REG_SECOND_A		0x4B
114#define	DA9063_AD_REG_SECOND_B		0x4C
115#define	DA9063_AD_REG_SECOND_C		0x4D
116#define	DA9063_AD_REG_SECOND_D		0x4E
117
118#define	DA9063_BB_REG_ALARM_S		0x46
119#define	DA9063_BB_REG_ALARM_MI		0x47
120#define	DA9063_BB_REG_ALARM_H		0x48
121#define	DA9063_BB_REG_ALARM_D		0x49
122#define	DA9063_BB_REG_ALARM_MO		0x4A
123#define	DA9063_BB_REG_ALARM_Y		0x4B
124#define	DA9063_BB_REG_SECOND_A		0x4C
125#define	DA9063_BB_REG_SECOND_B		0x4D
126#define	DA9063_BB_REG_SECOND_C		0x4E
127#define	DA9063_BB_REG_SECOND_D		0x4F
128
129/* Sequencer Control Registers */
130#define	DA9063_REG_SEQ			0x81
131#define	DA9063_REG_SEQ_TIMER		0x82
132#define	DA9063_REG_ID_2_1		0x83
133#define	DA9063_REG_ID_4_3		0x84
134#define	DA9063_REG_ID_6_5		0x85
135#define	DA9063_REG_ID_8_7		0x86
136#define	DA9063_REG_ID_10_9		0x87
137#define	DA9063_REG_ID_12_11		0x88
138#define	DA9063_REG_ID_14_13		0x89
139#define	DA9063_REG_ID_16_15		0x8A
140#define	DA9063_REG_ID_18_17		0x8B
141#define	DA9063_REG_ID_20_19		0x8C
142#define	DA9063_REG_ID_22_21		0x8D
143#define	DA9063_REG_ID_24_23		0x8E
144#define	DA9063_REG_ID_26_25		0x8F
145#define	DA9063_REG_ID_28_27		0x90
146#define	DA9063_REG_ID_30_29		0x91
147#define	DA9063_REG_ID_32_31		0x92
148#define	DA9063_REG_SEQ_A		0x95
149#define	DA9063_REG_SEQ_B		0x96
150#define	DA9063_REG_WAIT			0x97
151#define	DA9063_REG_EN_32K		0x98
152#define	DA9063_REG_RESET		0x99
153
154/* Regulator Setting Registers */
155#define	DA9063_REG_BUCK_ILIM_A		0x9A
156#define	DA9063_REG_BUCK_ILIM_B		0x9B
157#define	DA9063_REG_BUCK_ILIM_C		0x9C
158#define	DA9063_REG_BCORE2_CFG		0x9D
159#define	DA9063_REG_BCORE1_CFG		0x9E
160#define	DA9063_REG_BPRO_CFG		0x9F
161#define	DA9063_REG_BIO_CFG		0xA0
162#define	DA9063_REG_BMEM_CFG		0xA1
163#define	DA9063_REG_BPERI_CFG		0xA2
164#define	DA9063_REG_VBCORE2_A		0xA3
165#define	DA9063_REG_VBCORE1_A		0xA4
166#define	DA9063_REG_VBPRO_A		0xA5
167#define	DA9063_REG_VBMEM_A		0xA6
168#define	DA9063_REG_VBIO_A		0xA7
169#define	DA9063_REG_VBPERI_A		0xA8
170#define	DA9063_REG_VLDO1_A		0xA9
171#define	DA9063_REG_VLDO2_A		0xAA
172#define	DA9063_REG_VLDO3_A		0xAB
173#define	DA9063_REG_VLDO4_A		0xAC
174#define	DA9063_REG_VLDO5_A		0xAD
175#define	DA9063_REG_VLDO6_A		0xAE
176#define	DA9063_REG_VLDO7_A		0xAF
177#define	DA9063_REG_VLDO8_A		0xB0
178#define	DA9063_REG_VLDO9_A		0xB1
179#define	DA9063_REG_VLDO10_A		0xB2
180#define	DA9063_REG_VLDO11_A		0xB3
181#define	DA9063_REG_VBCORE2_B		0xB4
182#define	DA9063_REG_VBCORE1_B		0xB5
183#define	DA9063_REG_VBPRO_B		0xB6
184#define	DA9063_REG_VBMEM_B		0xB7
185#define	DA9063_REG_VBIO_B		0xB8
186#define	DA9063_REG_VBPERI_B		0xB9
187#define	DA9063_REG_VLDO1_B		0xBA
188#define	DA9063_REG_VLDO2_B		0xBB
189#define	DA9063_REG_VLDO3_B		0xBC
190#define	DA9063_REG_VLDO4_B		0xBD
191#define	DA9063_REG_VLDO5_B		0xBE
192#define	DA9063_REG_VLDO6_B		0xBF
193#define	DA9063_REG_VLDO7_B		0xC0
194#define	DA9063_REG_VLDO8_B		0xC1
195#define	DA9063_REG_VLDO9_B		0xC2
196#define	DA9063_REG_VLDO10_B		0xC3
197#define	DA9063_REG_VLDO11_B		0xC4
198
199/* Backup Battery Charger Control Register */
200#define	DA9063_REG_BBAT_CONT		0xC5
201
202/* GPIO PWM (LED) */
203#define	DA9063_REG_GPO11_LED		0xC6
204#define	DA9063_REG_GPO14_LED		0xC7
205#define	DA9063_REG_GPO15_LED		0xC8
206
207/* GP-ADC Threshold Registers */
208#define	DA9063_REG_ADC_CFG		0xC9
209#define	DA9063_REG_AUTO1_HIGH		0xCA
210#define	DA9063_REG_AUTO1_LOW		0xCB
211#define	DA9063_REG_AUTO2_HIGH		0xCC
212#define	DA9063_REG_AUTO2_LOW		0xCD
213#define	DA9063_REG_AUTO3_HIGH		0xCE
214#define	DA9063_REG_AUTO3_LOW		0xCF
215
216/* DA9063 Configuration registers */
217/* OTP */
218#define	DA9063_REG_OPT_COUNT		0x101
219#define	DA9063_REG_OPT_ADDR		0x102
220#define	DA9063_REG_OPT_DATA		0x103
221
222/* Customer Trim and Configuration */
223#define	DA9063_REG_T_OFFSET		0x104
224#define	DA9063_REG_INTERFACE		0x105
225#define	DA9063_REG_CONFIG_A		0x106
226#define	DA9063_REG_CONFIG_B		0x107
227#define	DA9063_REG_CONFIG_C		0x108
228#define	DA9063_REG_CONFIG_D		0x109
229#define	DA9063_REG_CONFIG_E		0x10A
230#define	DA9063_REG_CONFIG_F		0x10B
231#define	DA9063_REG_CONFIG_G		0x10C
232#define	DA9063_REG_CONFIG_H		0x10D
233#define	DA9063_REG_CONFIG_I		0x10E
234#define	DA9063_REG_CONFIG_J		0x10F
235#define	DA9063_REG_CONFIG_K		0x110
236#define	DA9063_REG_CONFIG_L		0x111
237
238#define	DA9063_AD_REG_MON_REG_1		0x112
239#define	DA9063_AD_REG_MON_REG_2		0x113
240#define	DA9063_AD_REG_MON_REG_3		0x114
241#define	DA9063_AD_REG_MON_REG_4		0x115
242#define	DA9063_AD_REG_MON_REG_5		0x116
243#define	DA9063_AD_REG_MON_REG_6		0x117
244#define	DA9063_AD_REG_TRIM_CLDR		0x118
245
246#define	DA9063_AD_REG_GP_ID_0		0x119
247#define	DA9063_AD_REG_GP_ID_1		0x11A
248#define	DA9063_AD_REG_GP_ID_2		0x11B
249#define	DA9063_AD_REG_GP_ID_3		0x11C
250#define	DA9063_AD_REG_GP_ID_4		0x11D
251#define	DA9063_AD_REG_GP_ID_5		0x11E
252#define	DA9063_AD_REG_GP_ID_6		0x11F
253#define	DA9063_AD_REG_GP_ID_7		0x120
254#define	DA9063_AD_REG_GP_ID_8		0x121
255#define	DA9063_AD_REG_GP_ID_9		0x122
256#define	DA9063_AD_REG_GP_ID_10		0x123
257#define	DA9063_AD_REG_GP_ID_11		0x124
258#define	DA9063_AD_REG_GP_ID_12		0x125
259#define	DA9063_AD_REG_GP_ID_13		0x126
260#define	DA9063_AD_REG_GP_ID_14		0x127
261#define	DA9063_AD_REG_GP_ID_15		0x128
262#define	DA9063_AD_REG_GP_ID_16		0x129
263#define	DA9063_AD_REG_GP_ID_17		0x12A
264#define	DA9063_AD_REG_GP_ID_18		0x12B
265#define	DA9063_AD_REG_GP_ID_19		0x12C
266
267#define	DA9063_BB_REG_CONFIG_M		0x112
268#define	DA9063_BB_REG_CONFIG_N		0x113
269
270#define	DA9063_BB_REG_MON_REG_1		0x114
271#define	DA9063_BB_REG_MON_REG_2		0x115
272#define	DA9063_BB_REG_MON_REG_3		0x116
273#define	DA9063_BB_REG_MON_REG_4		0x117
274#define	DA9063_BB_REG_MON_REG_5		0x11E
275#define	DA9063_BB_REG_MON_REG_6		0x11F
276#define	DA9063_BB_REG_TRIM_CLDR		0x120
277/* General Purpose Registers */
278#define	DA9063_BB_REG_GP_ID_0		0x121
279#define	DA9063_BB_REG_GP_ID_1		0x122
280#define	DA9063_BB_REG_GP_ID_2		0x123
281#define	DA9063_BB_REG_GP_ID_3		0x124
282#define	DA9063_BB_REG_GP_ID_4		0x125
283#define	DA9063_BB_REG_GP_ID_5		0x126
284#define	DA9063_BB_REG_GP_ID_6		0x127
285#define	DA9063_BB_REG_GP_ID_7		0x128
286#define	DA9063_BB_REG_GP_ID_8		0x129
287#define	DA9063_BB_REG_GP_ID_9		0x12A
288#define	DA9063_BB_REG_GP_ID_10		0x12B
289#define	DA9063_BB_REG_GP_ID_11		0x12C
290#define	DA9063_BB_REG_GP_ID_12		0x12D
291#define	DA9063_BB_REG_GP_ID_13		0x12E
292#define	DA9063_BB_REG_GP_ID_14		0x12F
293#define	DA9063_BB_REG_GP_ID_15		0x130
294#define	DA9063_BB_REG_GP_ID_16		0x131
295#define	DA9063_BB_REG_GP_ID_17		0x132
296#define	DA9063_BB_REG_GP_ID_18		0x133
297#define	DA9063_BB_REG_GP_ID_19		0x134
298
299/* Chip ID and variant */
300#define	DA9063_REG_CHIP_ID		0x181
301#define	DA9063_REG_CHIP_VARIANT		0x182
302
303/*
304 * PMIC registers bits
305 */
306/* DA9063_REG_PAGE_CON (addr=0x00) */
307#define	DA9063_PEG_PAGE_SHIFT			0
308#define	DA9063_REG_PAGE_MASK			0x07
309#define		DA9063_REG_PAGE0		0x00
310#define		DA9063_REG_PAGE2		0x02
311#define	DA9063_PAGE_WRITE_MODE			0x00
312#define	DA9063_REPEAT_WRITE_MODE		0x40
313#define	DA9063_PAGE_REVERT			0x80
314
315/* DA9063_REG_STATUS_A (addr=0x01) */
316#define	DA9063_NONKEY				0x01
317#define	DA9063_WAKE				0x02
318#define	DA9063_DVC_BUSY				0x04
319#define	DA9063_COMP_1V2				0x08
320
321/* DA9063_REG_STATUS_B (addr=0x02) */
322#define	DA9063_GPI0				0x01
323#define	DA9063_GPI1				0x02
324#define	DA9063_GPI2				0x04
325#define	DA9063_GPI3				0x08
326#define	DA9063_GPI4				0x10
327#define	DA9063_GPI5				0x20
328#define	DA9063_GPI6				0x40
329#define	DA9063_GPI7				0x80
330
331/* DA9063_REG_STATUS_C (addr=0x03) */
332#define	DA9063_GPI8				0x01
333#define	DA9063_GPI9				0x02
334#define	DA9063_GPI10				0x04
335#define	DA9063_GPI11				0x08
336#define	DA9063_GPI12				0x10
337#define	DA9063_GPI13				0x20
338#define	DA9063_GPI14				0x40
339#define	DA9063_GPI15				0x80
340
341/* DA9063_REG_STATUS_D (addr=0x04) */
342#define	DA9063_LDO3_LIM				0x08
343#define	DA9063_LDO4_LIM				0x10
344#define	DA9063_LDO7_LIM				0x20
345#define	DA9063_LDO8_LIM				0x40
346#define	DA9063_LDO11_LIM			0x80
347
348/* DA9063_REG_FAULT_LOG (addr=0x05) */
349#define	DA9063_TWD_ERROR			0x01
350#define	DA9063_POR				0x02
351#define	DA9063_VDD_FAULT			0x04
352#define	DA9063_VDD_START			0x08
353#define	DA9063_TEMP_CRIT			0x10
354#define	DA9063_KEY_RESET			0x20
355#define	DA9063_NSHUTDOWN			0x40
356#define	DA9063_WAIT_SHUT			0x80
357
358/* DA9063_REG_EVENT_A (addr=0x06) */
359#define	DA9063_E_NONKEY				0x01
360#define	DA9063_E_ALARM				0x02
361#define	DA9063_E_TICK				0x04
362#define	DA9063_E_ADC_RDY			0x08
363#define	DA9063_E_SEQ_RDY			0x10
364#define	DA9063_EVENTS_B				0x20
365#define	DA9063_EVENTS_C				0x40
366#define	DA9063_EVENTS_D				0x80
367
368/* DA9063_REG_EVENT_B (addr=0x07) */
369#define	DA9063_E_WAKE				0x01
370#define	DA9063_E_TEMP				0x02
371#define	DA9063_E_COMP_1V2			0x04
372#define	DA9063_E_LDO_LIM			0x08
373#define	DA9063_E_REG_UVOV			0x10
374#define	DA9063_E_DVC_RDY			0x20
375#define	DA9063_E_VDD_MON			0x40
376#define	DA9063_E_VDD_WARN			0x80
377
378/* DA9063_REG_EVENT_C (addr=0x08) */
379#define	DA9063_E_GPI0				0x01
380#define	DA9063_E_GPI1				0x02
381#define	DA9063_E_GPI2				0x04
382#define	DA9063_E_GPI3				0x08
383#define	DA9063_E_GPI4				0x10
384#define	DA9063_E_GPI5				0x20
385#define	DA9063_E_GPI6				0x40
386#define	DA9063_E_GPI7				0x80
387
388/* DA9063_REG_EVENT_D (addr=0x09) */
389#define	DA9063_E_GPI8				0x01
390#define	DA9063_E_GPI9				0x02
391#define	DA9063_E_GPI10				0x04
392#define	DA9063_E_GPI11				0x08
393#define	DA9063_E_GPI12				0x10
394#define	DA9063_E_GPI13				0x20
395#define	DA9063_E_GPI14				0x40
396#define	DA9063_E_GPI15				0x80
397
398/* DA9063_REG_IRQ_MASK_A (addr=0x0A) */
399#define	DA9063_M_ONKEY				0x01
400#define	DA9063_M_ALARM				0x02
401#define	DA9063_M_TICK				0x04
402#define	DA9063_M_ADC_RDY			0x08
403#define	DA9063_M_SEQ_RDY			0x10
404
405/* DA9063_REG_IRQ_MASK_B (addr=0x0B) */
406#define	DA9063_M_WAKE				0x01
407#define	DA9063_M_TEMP				0x02
408#define	DA9063_M_COMP_1V2			0x04
409#define	DA9063_M_LDO_LIM			0x08
410#define	DA9063_M_UVOV				0x10
411#define	DA9063_M_DVC_RDY			0x20
412#define	DA9063_M_VDD_MON			0x40
413#define	DA9063_M_VDD_WARN			0x80
414
415/* DA9063_REG_IRQ_MASK_C (addr=0x0C) */
416#define	DA9063_M_GPI0				0x01
417#define	DA9063_M_GPI1				0x02
418#define	DA9063_M_GPI2				0x04
419#define	DA9063_M_GPI3				0x08
420#define	DA9063_M_GPI4				0x10
421#define	DA9063_M_GPI5				0x20
422#define	DA9063_M_GPI6				0x40
423#define	DA9063_M_GPI7				0x80
424
425/* DA9063_REG_IRQ_MASK_D (addr=0x0D) */
426#define	DA9063_M_GPI8				0x01
427#define	DA9063_M_GPI9				0x02
428#define	DA9063_M_GPI10				0x04
429#define	DA9063_M_GPI11				0x08
430#define	DA9063_M_GPI12				0x10
431#define	DA9063_M_GPI13				0x20
432#define	DA9063_M_GPI14				0x40
433#define	DA9063_M_GPI15				0x80
434
435/* DA9063_REG_CONTROL_A (addr=0x0E) */
436#define	DA9063_SYSTEM_EN			0x01
437#define	DA9063_POWER_EN				0x02
438#define	DA9063_POWER1_EN			0x04
439#define	DA9063_STANDBY				0x08
440#define	DA9063_M_SYSTEM_EN			0x10
441#define	DA9063_M_POWER_EN			0x20
442#define	DA9063_M_POWER1_EN			0x40
443#define	DA9063_CP_EN				0x80
444
445/* DA9063_REG_CONTROL_B (addr=0x0F) */
446#define	DA9063_CHG_SEL				0x01
447#define	DA9063_WATCHDOG_PD			0x02
448#define	DA9063_BB_RESET_BLINKING		0x04
449#define	DA9063_NRES_MODE			0x08
450#define	DA9063_NONKEY_LOCK			0x10
451#define	DA9063_BB_BUCK_SLOWSTART		0x80
452
453/* DA9063_REG_CONTROL_C (addr=0x10) */
454#define	DA9063_DEBOUNCING_MASK			0x07
455#define		DA9063_DEBOUNCING_OFF		0x0
456#define		DA9063_DEBOUNCING_0MS1		0x1
457#define		DA9063_DEBOUNCING_1MS		0x2
458#define		DA9063_DEBOUNCING_10MS24	0x3
459#define		DA9063_DEBOUNCING_51MS2		0x4
460#define		DA9063_DEBOUNCING_256MS		0x5
461#define		DA9063_DEBOUNCING_512MS		0x6
462#define		DA9063_DEBOUNCING_1024MS	0x7
463
464#define	DA9063_AUTO_BOOT			0x08
465#define	DA9063_OTPREAD_EN			0x10
466#define	DA9063_SLEW_RATE_MASK			0x60
467#define		DA9063_SLEW_RATE_4US		0x00
468#define		DA9063_SLEW_RATE_3US		0x20
469#define		DA9063_SLEW_RATE_1US		0x40
470#define		DA9063_SLEW_RATE_0US5		0x60
471#define	DA9063_DEF_SUPPLY			0x80
472
473/* DA9063_REG_CONTROL_D (addr=0x11) */
474#define	DA9063_TWDSCALE_MASK			0x07
475#define	DA9063_BLINK_FRQ_MASK			0x38
476#define		DA9063_BLINK_FRQ_OFF		0x00
477#define		DA9063_BLINK_FRQ_1S0		0x08
478#define		DA9063_BLINK_FRQ_2S0		0x10
479#define		DA9063_BLINK_FRQ_4S0		0x18
480#define		DA9063_BLINK_FRQ_0S18		0x20
481#define		DA9063_BLINK_FRQ_2S0_VDD	0x28
482#define		DA9063_BLINK_FRQ_4S0_VDD	0x30
483#define		DA9063_BLINK_FRQ_0S18_VDD	0x38
484
485#define	DA9063_BLINK_DUR_MASK			0xC0
486#define		DA9063_BLINK_DUR_10MS		0x00
487#define		DA9063_BLINK_DUR_20MS		0x40
488#define		DA9063_BLINK_DUR_40MS		0x80
489#define		DA9063_BLINK_DUR_20MSDBL	0xC0
490
491/* DA9063_REG_CONTROL_E (addr=0x12) */
492#define	DA9063_RTC_MODE_PD			0x01
493#define	DA9063_RTC_MODE_SD			0x02
494#define	DA9063_RTC_EN				0x04
495#define	DA9063_ECO_MODE				0x08
496#define	DA9063_PM_FB1_PIN			0x10
497#define	DA9063_PM_FB2_PIN			0x20
498#define	DA9063_PM_FB3_PIN			0x40
499#define	DA9063_V_LOCK				0x80
500
501/* DA9063_REG_CONTROL_F (addr=0x13) */
502#define	DA9063_WATCHDOG				0x01
503#define	DA9063_SHUTDOWN				0x02
504#define	DA9063_WAKE_UP				0x04
505
506/* DA9063_REG_PD_DIS (addr=0x14) */
507#define	DA9063_GPI_DIS				0x01
508#define	DA9063_GPADC_PAUSE			0x02
509#define	DA9063_PMIF_DIS				0x04
510#define	DA9063_HS2WIRE_DIS			0x08
511#define	DA9063_BB_CLDR_PAUSE			0x10
512#define	DA9063_BBAT_DIS				0x20
513#define	DA9063_OUT_32K_PAUSE			0x40
514#define	DA9063_PMCONT_DIS			0x80
515
516/* DA9063_REG_GPIO_0_1 (addr=0x15) */
517#define	DA9063_GPIO0_PIN_MASK			0x03
518#define		DA9063_GPIO0_PIN_ADCIN1		0x00
519#define		DA9063_GPIO0_PIN_GPI		0x01
520#define		DA9063_GPIO0_PIN_GPO_OD		0x02
521#define		DA9063_GPIO0_PIN_GPO		0x03
522#define	DA9063_GPIO0_TYPE			0x04
523#define		DA9063_GPIO0_TYPE_GPI_ACT_LOW	0x00
524#define		DA9063_GPIO0_TYPE_GPO_VDD_IO1	0x00
525#define		DA9063_GPIO0_TYPE_GPI_ACT_HIGH	0x04
526#define		DA9063_GPIO0_TYPE_GPO_VDD_IO2	0x04
527#define	DA9063_GPIO0_NO_WAKEUP			0x08
528#define	DA9063_GPIO1_PIN_MASK			0x30
529#define		DA9063_GPIO1_PIN_ADCIN2_COMP	0x00
530#define		DA9063_GPIO1_PIN_GPI		0x10
531#define		DA9063_GPIO1_PIN_GPO_OD		0x20
532#define		DA9063_GPIO1_PIN_GPO		0x30
533#define	DA9063_GPIO1_TYPE			0x40
534#define		DA9063_GPIO1_TYPE_GPI_ACT_LOW	0x00
535#define		DA9063_GPIO1_TYPE_GPO_VDD_IO1	0x00
536#define		DA9063_GPIO1_TYPE_GPI_ACT_HIGH	0x04
537#define		DA9063_GPIO1_TYPE_GPO_VDD_IO2	0x04
538#define	DA9063_GPIO1_NO_WAKEUP			0x80
539
540/* DA9063_REG_GPIO_2_3 (addr=0x16) */
541#define	DA9063_GPIO2_PIN_MASK			0x03
542#define		DA9063_GPIO2_PIN_ADCIN3		0x00
543#define		DA9063_GPIO2_PIN_GPI		0x01
544#define		DA9063_GPIO2_PIN_GPO_PSS	0x02
545#define		DA9063_GPIO2_PIN_GPO		0x03
546#define	DA9063_GPIO2_TYPE			0x04
547#define		DA9063_GPIO2_TYPE_GPI_ACT_LOW	0x00
548#define		DA9063_GPIO2_TYPE_GPO_VDD_IO1	0x00
549#define		DA9063_GPIO2_TYPE_GPI_ACT_HIGH	0x04
550#define		DA9063_GPIO2_TYPE_GPO_VDD_IO2	0x04
551#define	DA9063_GPIO2_NO_WAKEUP			0x08
552#define	DA9063_GPIO3_PIN_MASK			0x30
553#define		DA9063_GPIO3_PIN_CORE_SW_G	0x00
554#define		DA9063_GPIO3_PIN_GPI		0x10
555#define		DA9063_GPIO3_PIN_GPO_OD		0x20
556#define		DA9063_GPIO3_PIN_GPO		0x30
557#define	DA9063_GPIO3_TYPE			0x40
558#define		DA9063_GPIO3_TYPE_GPI_ACT_LOW	0x00
559#define		DA9063_GPIO3_TYPE_GPO_VDD_IO1	0x00
560#define		DA9063_GPIO3_TYPE_GPI_ACT_HIGH	0x04
561#define		DA9063_GPIO3_TYPE_GPO_VDD_IO2	0x04
562#define	DA9063_GPIO3_NO_WAKEUP			0x80
563
564/* DA9063_REG_GPIO_4_5 (addr=0x17) */
565#define	DA9063_GPIO4_PIN_MASK			0x03
566#define		DA9063_GPIO4_PIN_CORE_SW_S	0x00
567#define		DA9063_GPIO4_PIN_GPI		0x01
568#define		DA9063_GPIO4_PIN_GPO_OD		0x02
569#define		DA9063_GPIO4_PIN_GPO		0x03
570#define	DA9063_GPIO4_TYPE			0x04
571#define		DA9063_GPIO4_TYPE_GPI_ACT_LOW	0x00
572#define		DA9063_GPIO4_TYPE_GPO_VDD_IO1	0x00
573#define		DA9063_GPIO4_TYPE_GPI_ACT_HIGH	0x04
574#define		DA9063_GPIO4_TYPE_GPO_VDD_IO2	0x04
575#define	DA9063_GPIO4_NO_WAKEUP			0x08
576#define	DA9063_GPIO5_PIN_MASK			0x30
577#define		DA9063_GPIO5_PIN_PERI_SW_G	0x00
578#define		DA9063_GPIO5_PIN_GPI		0x10
579#define		DA9063_GPIO5_PIN_GPO_OD		0x20
580#define		DA9063_GPIO5_PIN_GPO		0x30
581#define	DA9063_GPIO5_TYPE			0x40
582#define		DA9063_GPIO5_TYPE_GPI_ACT_LOW	0x00
583#define		DA9063_GPIO5_TYPE_GPO_VDD_IO1	0x00
584#define		DA9063_GPIO5_TYPE_GPI_ACT_HIGH	0x04
585#define		DA9063_GPIO5_TYPE_GPO_VDD_IO2	0x04
586#define	DA9063_GPIO5_NO_WAKEUP			0x80
587
588/* DA9063_REG_GPIO_6_7 (addr=0x18) */
589#define	DA9063_GPIO6_PIN_MASK			0x03
590#define		DA9063_GPIO6_PIN_PERI_SW_S	0x00
591#define		DA9063_GPIO6_PIN_GPI		0x01
592#define		DA9063_GPIO6_PIN_GPO_OD		0x02
593#define		DA9063_GPIO6_PIN_GPO		0x03
594#define	DA9063_GPIO6_TYPE			0x04
595#define		DA9063_GPIO6_TYPE_GPI_ACT_LOW	0x00
596#define		DA9063_GPIO6_TYPE_GPO_VDD_IO1	0x00
597#define		DA9063_GPIO6_TYPE_GPI_ACT_HIGH	0x04
598#define		DA9063_GPIO6_TYPE_GPO_VDD_IO2	0x04
599#define	DA9063_GPIO6_NO_WAKEUP			0x08
600#define	DA9063_GPIO7_PIN_MASK			0x30
601#define		DA9063_GPIO7_PIN_GPI		0x10
602#define		DA9063_GPIO7_PIN_GPO_PSS	0x20
603#define		DA9063_GPIO7_PIN_GPO		0x30
604#define	DA9063_GPIO7_TYPE			0x40
605#define		DA9063_GPIO7_TYPE_GPI_ACT_LOW	0x00
606#define		DA9063_GPIO7_TYPE_GPO_VDD_IO1	0x00
607#define		DA9063_GPIO7_TYPE_GPI_ACT_HIGH	0x04
608#define		DA9063_GPIO7_TYPE_GPO_VDD_IO2	0x04
609#define	DA9063_GPIO7_NO_WAKEUP			0x80
610
611/* DA9063_REG_GPIO_8_9 (addr=0x19) */
612#define	DA9063_GPIO8_PIN_MASK			0x03
613#define		DA9063_GPIO8_PIN_GPI_SYS_EN	0x00
614#define		DA9063_GPIO8_PIN_GPI		0x01
615#define		DA9063_GPIO8_PIN_GPO_PSS	0x02
616#define		DA9063_GPIO8_PIN_GPO		0x03
617#define	DA9063_GPIO8_TYPE			0x04
618#define		DA9063_GPIO8_TYPE_GPI_ACT_LOW	0x00
619#define		DA9063_GPIO8_TYPE_GPO_VDD_IO1	0x00
620#define		DA9063_GPIO8_TYPE_GPI_ACT_HIGH	0x04
621#define		DA9063_GPIO8_TYPE_GPO_VDD_IO2	0x04
622#define	DA9063_GPIO8_NO_WAKEUP			0x08
623#define	DA9063_GPIO9_PIN_MASK			0x30
624#define		DA9063_GPIO9_PIN_GPI_PWR_EN	0x00
625#define		DA9063_GPIO9_PIN_GPI		0x10
626#define		DA9063_GPIO9_PIN_GPO_PSS	0x20
627#define		DA9063_GPIO9_PIN_GPO		0x30
628#define	DA9063_GPIO9_TYPE			0x40
629#define		DA9063_GPIO9_TYPE_GPI_ACT_LOW	0x00
630#define		DA9063_GPIO9_TYPE_GPO_VDD_IO1	0x00
631#define		DA9063_GPIO9_TYPE_GPI_ACT_HIGH	0x04
632#define		DA9063_GPIO9_TYPE_GPO_VDD_IO2	0x04
633#define	DA9063_GPIO9_NO_WAKEUP			0x80
634
635/* DA9063_REG_GPIO_10_11 (addr=0x1A) */
636#define	DA9063_GPIO10_PIN_MASK			0x03
637#define		DA9063_GPIO10_PIN_GPI_PWR1_EN	0x00
638#define		DA9063_GPIO10_PIN_GPI		0x01
639#define		DA9063_GPIO10_PIN_GPO_OD	0x02
640#define		DA9063_GPIO10_PIN_GPO		0x03
641#define	DA9063_GPIO10_TYPE			0x04
642#define		DA9063_GPIO10_TYPE_GPI_ACT_LOW	0x00
643#define		DA9063_GPIO10_TYPE_GPO_VDD_IO1	0x00
644#define		DA9063_GPIO10_TYPE_GPI_ACT_HIGH	0x04
645#define		DA9063_GPIO10_TYPE_GPO_VDD_IO2	0x04
646#define	DA9063_GPIO10_NO_WAKEUP			0x08
647#define	DA9063_GPIO11_PIN_MASK			0x30
648#define		DA9063_GPIO11_PIN_GPO_OD	0x00
649#define		DA9063_GPIO11_PIN_GPI		0x10
650#define		DA9063_GPIO11_PIN_GPO_PSS	0x20
651#define		DA9063_GPIO11_PIN_GPO		0x30
652#define	DA9063_GPIO11_TYPE			0x40
653#define		DA9063_GPIO11_TYPE_GPI_ACT_LOW	0x00
654#define		DA9063_GPIO11_TYPE_GPO_VDD_IO1	0x00
655#define		DA9063_GPIO11_TYPE_GPI_ACT_HIGH	0x04
656#define		DA9063_GPIO11_TYPE_GPO_VDD_IO2	0x04
657#define	DA9063_GPIO11_NO_WAKEUP			0x80
658
659/* DA9063_REG_GPIO_12_13 (addr=0x1B) */
660#define	DA9063_GPIO12_PIN_MASK			0x03
661#define		DA9063_GPIO12_PIN_NVDDFLT_OUT	0x00
662#define		DA9063_GPIO12_PIN_GPI		0x01
663#define		DA9063_GPIO12_PIN_VSYSMON_OUT	0x02
664#define		DA9063_GPIO12_PIN_GPO		0x03
665#define	DA9063_GPIO12_TYPE			0x04
666#define		DA9063_GPIO12_TYPE_GPI_ACT_LOW	0x00
667#define		DA9063_GPIO12_TYPE_GPO_VDD_IO1	0x00
668#define		DA9063_GPIO12_TYPE_GPI_ACT_HIGH	0x04
669#define		DA9063_GPIO12_TYPE_GPO_VDD_IO2	0x04
670#define	DA9063_GPIO12_NO_WAKEUP			0x08
671#define	DA9063_GPIO13_PIN_MASK			0x30
672#define		DA9063_GPIO13_PIN_GPFB1_OUT	0x00
673#define		DA9063_GPIO13_PIN_GPI		0x10
674#define		DA9063_GPIO13_PIN_GPFB1_OUTOD	0x20
675#define		DA9063_GPIO13_PIN_GPO		0x30
676#define	DA9063_GPIO13_TYPE			0x40
677#define		DA9063_GPIO13_TYPE_GPFB1_OUT	0x00
678#define		DA9063_GPIO13_TYPE_GPI		0x00
679#define		DA9063_GPIO13_TYPE_GPFB1_OUTOD	0x04
680#define		DA9063_GPIO13_TYPE_GPO		0x04
681#define	DA9063_GPIO13_NO_WAKEUP			0x80
682
683/* DA9063_REG_GPIO_14_15 (addr=0x1C) */
684#define	DA9063_GPIO14_PIN_MASK			0x03
685#define		DA9063_GPIO14_PIN_GPO_OD	0x00
686#define		DA9063_GPIO14_PIN_GPI		0x01
687#define		DA9063_GPIO14_PIN_HS2DATA	0x02
688#define		DA9063_GPIO14_PIN_GPO		0x03
689#define	DA9063_GPIO14_TYPE			0x04
690#define		DA9063_GPIO14_TYPE_GPI_ACT_LOW	0x00
691#define		DA9063_GPIO14_TYPE_GPO_VDD_IO1	0x00
692#define		DA9063_GPIO14_TYPE_GPI_ACT_HIGH	0x04
693#define		DA9063_GPIO14_TYPE_GPO_VDD_IO2	0x04
694#define	DA9063_GPIO14_NO_WAKEUP			0x08
695#define	DA9063_GPIO15_PIN_MASK			0x30
696#define		DA9063_GPIO15_PIN_GPO_OD	0x00
697#define		DA9063_GPIO15_PIN_GPI		0x10
698#define		DA9063_GPIO15_PIN_GPO		0x30
699#define	DA9063_GPIO15_TYPE			0x40
700#define		DA9063_GPIO15_TYPE_GPFB1_OUT	0x00
701#define		DA9063_GPIO15_TYPE_GPI		0x00
702#define		DA9063_GPIO15_TYPE_GPFB1_OUTOD	0x04
703#define		DA9063_GPIO15_TYPE_GPO		0x04
704#define	DA9063_GPIO15_NO_WAKEUP			0x80
705
706/* DA9063_REG_GPIO_MODE0_7 (addr=0x1D) */
707#define	DA9063_GPIO0_MODE			0x01
708#define	DA9063_GPIO1_MODE			0x02
709#define	DA9063_GPIO2_MODE			0x04
710#define	DA9063_GPIO3_MODE			0x08
711#define	DA9063_GPIO4_MODE			0x10
712#define	DA9063_GPIO5_MODE			0x20
713#define	DA9063_GPIO6_MODE			0x40
714#define	DA9063_GPIO7_MODE			0x80
715
716/* DA9063_REG_GPIO_MODE8_15 (addr=0x1E) */
717#define	DA9063_GPIO8_MODE			0x01
718#define	DA9063_GPIO9_MODE			0x02
719#define	DA9063_GPIO10_MODE			0x04
720#define	DA9063_GPIO11_MODE			0x08
721#define		DA9063_GPIO11_MODE_LED_ACT_HIGH	0x00
722#define		DA9063_GPIO11_MODE_LED_ACT_LOW	0x08
723#define	DA9063_GPIO12_MODE			0x10
724#define	DA9063_GPIO13_MODE			0x20
725#define	DA9063_GPIO14_MODE			0x40
726#define		DA9063_GPIO14_MODE_LED_ACT_HIGH	0x00
727#define		DA9063_GPIO14_MODE_LED_ACT_LOW	0x40
728#define	DA9063_GPIO15_MODE			0x80
729#define		DA9063_GPIO15_MODE_LED_ACT_HIGH	0x00
730#define		DA9063_GPIO15_MODE_LED_ACT_LOW	0x80
731
732/* DA9063_REG_SWITCH_CONT (addr=0x1F) */
733#define	DA9063_CORE_SW_GPI_MASK			0x03
734#define		DA9063_CORE_SW_GPI_OFF		0x00
735#define		DA9063_CORE_SW_GPI_GPIO1	0x01
736#define		DA9063_CORE_SW_GPI_GPIO2	0x02
737#define		DA9063_CORE_SW_GPI_GPIO13	0x03
738#define	DA9063_PERI_SW_GPI_MASK			0x0C
739#define		DA9063_PERI_SW_GPI_OFF		0x00
740#define		DA9063_PERI_SW_GPI_GPIO1	0x04
741#define		DA9063_PERI_SW_GPI_GPIO2	0x08
742#define		DA9063_PERI_SW_GPI_GPIO13	0x0C
743#define	DA9063_SWITCH_SR_MASK			0x30
744#define		DA9063_SWITCH_SR_1MV		0x00
745#define		DA9063_SWITCH_SR_5MV		0x10
746#define		DA9063_SWITCH_SR_10MV		0x20
747#define		DA9063_SWITCH_SR_50MV		0x30
748#define	DA9063_CORE_SW_INTERNAL			0x40
749#define	DA9063_CP_EN_MODE			0x80
750
751/* DA9063_REGL_Bxxxx_CONT common bits (addr=0x20-0x25) */
752#define	DA9063_BUCK_EN				0x01
753#define	DA9063_BUCK_GPI_MASK			0x06
754#define		DA9063_BUCK_GPI_OFF		0x00
755#define		DA9063_BUCK_GPI_GPIO1		0x02
756#define		DA9063_BUCK_GPI_GPIO2		0x04
757#define		DA9063_BUCK_GPI_GPIO13		0x06
758#define	DA9063_BUCK_CONF			0x08
759#define	DA9063_VBUCK_GPI_MASK			0x60
760#define		DA9063_VBUCK_GPI_OFF		0x00
761#define		DA9063_VBUCK_GPI_GPIO1		0x20
762#define		DA9063_VBUCK_GPI_GPIO2		0x40
763#define		DA9063_VBUCK_GPI_GPIO13		0x60
764
765/* DA9063_REG_BCORE1_CONT specific bits (addr=0x21) */
766#define	DA9063_CORE_SW_EN			0x10
767#define	DA9063_CORE_SW_CONF			0x80
768
769/* DA9063_REG_BPERI_CONT specific bits (addr=0x25) */
770#define	DA9063_PERI_SW_EN			0x10
771#define	DA9063_PERI_SW_CONF			0x80
772
773/* DA9063_REG_LDOx_CONT common bits (addr=0x26-0x30) */
774#define	DA9063_LDO_EN				0x01
775#define DA9063_LDO_GPI_MASK			0x06
776#define		DA9063_LDO_GPI_OFF		0x00
777#define		DA9063_LDO_GPI_GPIO1		0x02
778#define		DA9063_LDO_GPI_GPIO2		0x04
779#define		DA9063_LDO_GPI_GPIO13		0x06
780#define	DA9063_LDO_PD_DIS			0x08
781#define	DA9063_VLDO_GPI_MASK			0x60
782#define		DA9063_VLDO_GPI_OFF		0x00
783#define		DA9063_VLDO_GPI_GPIO1		0x20
784#define		DA9063_VLDO_GPI_GPIO2		0x40
785#define		DA9063_VLDO_GPI_GPIO13		0x60
786#define	DA9063_LDO_CONF				0x80
787
788/* DA9063_REG_LDO5_CONT specific bits (addr=0x2A) */
789#define	DA9063_VLDO5_SEL			0x10
790
791/* DA9063_REG_LDO6_CONT specific bits (addr=0x2B) */
792#define	DA9063_VLDO6_SEL			0x10
793
794/* DA9063_REG_LDO7_CONT specific bits (addr=0x2C) */
795#define	DA9063_VLDO7_SEL			0x10
796
797/* DA9063_REG_LDO8_CONT specific bits (addr=0x2D) */
798#define	DA9063_VLDO8_SEL			0x10
799
800/* DA9063_REG_LDO9_CONT specific bits (addr=0x2E) */
801#define	DA9063_VLDO9_SEL			0x10
802
803/* DA9063_REG_LDO10_CONT specific bits (addr=0x2F) */
804#define	DA9063_VLDO10_SEL			0x10
805
806/* DA9063_REG_LDO11_CONT specific bits (addr=0x30) */
807#define	DA9063_VLDO11_SEL			0x10
808
809/* DA9063_REG_VIB (addr=0x31) */
810#define DA9063_VIB_SET_MASK			0x3F
811#define		DA9063_VIB_SET_OFF		0
812#define		DA9063_VIB_SET_MAX		0x3F
813
814/* DA9063_REG_DVC_1 (addr=0x32) */
815#define	DA9063_VBCORE1_SEL			0x01
816#define	DA9063_VBCORE2_SEL			0x02
817#define	DA9063_VBPRO_SEL			0x04
818#define	DA9063_VBMEM_SEL			0x08
819#define	DA9063_VBPERI_SEL			0x10
820#define	DA9063_VLDO1_SEL			0x20
821#define	DA9063_VLDO2_SEL			0x40
822#define	DA9063_VLDO3_SEL			0x80
823
824/* DA9063_REG_DVC_2 (addr=0x33) */
825#define	DA9063_VBIO_SEL				0x01
826#define	DA9063_VLDO4_SEL			0x80
827
828/* DA9063_REG_ADC_MAN (addr=0x34) */
829#define	DA9063_ADC_MUX_MASK			0x0F
830#define		DA9063_ADC_MUX_VSYS		0x00
831#define		DA9063_ADC_MUX_ADCIN1		0x01
832#define		DA9063_ADC_MUX_ADCIN2		0x02
833#define		DA9063_ADC_MUX_ADCIN3		0x03
834#define		DA9063_ADC_MUX_T_SENSE		0x04
835#define		DA9063_ADC_MUX_VBBAT		0x05
836#define		DA9063_ADC_MUX_LDO_G1		0x08
837#define		DA9063_ADC_MUX_LDO_G2		0x09
838#define		DA9063_ADC_MUX_LDO_G3		0x0A
839#define	DA9063_ADC_MAN				0x10
840#define	DA9063_ADC_MODE				0x20
841
842/* DA9063_REG_ADC_CONT (addr=0x35) */
843#define	DA9063_ADC_AUTO_VSYS_EN			0x01
844#define	DA9063_ADC_AUTO_AD1_EN			0x02
845#define	DA9063_ADC_AUTO_AD2_EN			0x04
846#define	DA9063_ADC_AUTO_AD3_EN			0x08
847#define	DA9063_ADC_AD1_ISRC_EN			0x10
848#define	DA9063_ADC_AD2_ISRC_EN			0x20
849#define	DA9063_ADC_AD3_ISRC_EN			0x40
850#define	DA9063_COMP1V2_EN			0x80
851
852/* DA9063_REG_VSYS_MON (addr=0x36) */
853#define	DA9063_VSYS_VAL_MASK			0xFF
854#define	DA9063_VSYS_VAL_BASE			0x00
855
856/* DA9063_REG_ADC_RES_L (addr=0x37) */
857#define	DA9063_ADC_RES_L_BITS			2
858#define	DA9063_ADC_RES_L_MASK			0xC0
859
860/* DA9063_REG_ADC_RES_H (addr=0x38) */
861#define	DA9063_ADC_RES_M_BITS			8
862#define	DA9063_ADC_RES_M_MASK			0xFF
863
864/* DA9063_REG_(xxx_RES/ADC_RES_H) (addr=0x39-0x3F) */
865#define	DA9063_ADC_VAL_MASK			0xFF
866
867/* DA9063_REG_COUNT_S (addr=0x40) */
868#define DA9063_RTC_READ				0x80
869#define DA9063_COUNT_SEC_MASK			0x3F
870
871/* DA9063_REG_COUNT_MI (addr=0x41) */
872#define DA9063_COUNT_MIN_MASK			0x3F
873
874/* DA9063_REG_COUNT_H (addr=0x42) */
875#define DA9063_COUNT_HOUR_MASK			0x1F
876
877/* DA9063_REG_COUNT_D (addr=0x43) */
878#define DA9063_COUNT_DAY_MASK			0x1F
879
880/* DA9063_REG_COUNT_MO (addr=0x44) */
881#define DA9063_COUNT_MONTH_MASK			0x0F
882
883/* DA9063_REG_COUNT_Y (addr=0x45) */
884#define DA9063_COUNT_YEAR_MASK			0x3F
885#define DA9063_MONITOR				0x40
886
887/* DA9063_REG_ALARM_S (addr=0x46) */
888#define DA9063_BB_ALARM_S_MASK			0x3F
889#define DA9063_ALARM_STATUS_ALARM		0x80
890#define DA9063_ALARM_STATUS_TICK		0x40
891/* DA9063_REG_ALARM_MI (addr=0x47) */
892#define DA9063_ALARM_MIN_MASK			0x3F
893
894/* DA9063_REG_ALARM_H (addr=0x48) */
895#define DA9063_ALARM_HOUR_MASK			0x1F
896
897/* DA9063_REG_ALARM_D (addr=0x49) */
898#define DA9063_ALARM_DAY_MASK			0x1F
899
900/* DA9063_REG_ALARM_MO (addr=0x4A) */
901#define DA9063_TICK_WAKE			0x20
902#define DA9063_TICK_TYPE			0x10
903#define		DA9063_TICK_TYPE_SEC		0x00
904#define		DA9063_TICK_TYPE_MIN		0x10
905#define DA9063_ALARM_MONTH_MASK			0x0F
906
907/* DA9063_REG_ALARM_Y (addr=0x4B) */
908#define DA9063_TICK_ON				0x80
909#define DA9063_ALARM_ON				0x40
910#define DA9063_ALARM_YEAR_MASK			0x3F
911
912/* DA9063_REG_WAIT (addr=0x97)*/
913#define	DA9063_REG_WAIT_TIME_MASK		0xF
914#define	DA9063_WAIT_TIME_0_US			0x0
915#define	DA9063_WAIT_TIME_512_US			0x1
916#define	DA9063_WAIT_TIME_1_MS			0x2
917#define	DA9063_WAIT_TIME_2_MS			0x3
918#define	DA9063_WAIT_TIME_4_1_MS			0x4
919#define	DA9063_WAIT_TIME_8_2_MS			0x5
920#define	DA9063_WAIT_TIME_16_4_MS		0x6
921#define	DA9063_WAIT_TIME_32_8_MS		0x7
922#define	DA9063_WAIT_TIME_65_5_MS		0x8
923#define	DA9063_WAIT_TIME_128_MS			0x9
924#define	DA9063_WAIT_TIME_256_MS			0xA
925#define	DA9063_WAIT_TIME_512_MS			0xB
926#define	DA9063_WAIT_TIME_1_S			0xC
927#define	DA9063_WAIT_TIME_2_1_S			0xD
928
929/* DA9063_REG_EN_32K  (addr=0x98)*/
930#define	DA9063_STABILIZ_TIME_MASK		0x7
931#define	DA9063_CRYSTAL				0x08
932#define	DA9063_DELAY_MODE			0x10
933#define	DA9063_OUT_CLOCK			0x20
934#define	DA9063_RTC_CLOCK			0x40
935#define	DA9063_OUT_32K_EN			0x80
936
937/* DA9063_REG_CHIP_VARIANT */
938#define	DA9063_CHIP_VARIANT_SHIFT		4
939
940/* DA9063_REG_BUCK_ILIM_A (addr=0x9A) */
941#define DA9063_BIO_ILIM_MASK			0x0F
942#define DA9063_BMEM_ILIM_MASK			0xF0
943
944/* DA9063_REG_BUCK_ILIM_B (addr=0x9B) */
945#define DA9063_BPRO_ILIM_MASK			0x0F
946#define DA9063_BPERI_ILIM_MASK			0xF0
947
948/* DA9063_REG_BUCK_ILIM_C (addr=0x9C) */
949#define DA9063_BCORE1_ILIM_MASK			0x0F
950#define DA9063_BCORE2_ILIM_MASK			0xF0
951
952/* DA9063_REG_Bxxxx_CFG common bits (addr=0x9D-0xA2) */
953#define DA9063_BUCK_FB_MASK			0x07
954#define DA9063_BUCK_PD_DIS_MASK		0x20
955#define DA9063_BUCK_MODE_MASK			0xC0
956#define		DA9063_BUCK_MODE_MANUAL		0x00
957#define		DA9063_BUCK_MODE_SLEEP		0x40
958#define		DA9063_BUCK_MODE_SYNC		0x80
959#define		DA9063_BUCK_MODE_AUTO		0xC0
960
961/* DA9063_REG_BPRO_CFG (addr=0x9F) */
962#define	DA9063_BPRO_VTTR_EN			0x08
963#define	DA9063_BPRO_VTT_EN			0x10
964
965/* DA9063_REG_VBxxxx_A/B (addr=0xA3-0xA8, 0xB4-0xB9) */
966#define DA9063_VBUCK_MASK			0x7F
967#define DA9063_VBUCK_BIAS			0
968#define DA9063_BUCK_SL				0x80
969
970/* DA9063_REG_VLDOx_A/B (addr=0xA9-0x3, 0xBA-0xC4) */
971#define DA9063_LDO_SL				0x80
972
973/* DA9063_REG_VLDO1_A/B (addr=0xA9, 0xBA) */
974#define DA9063_VLDO1_MASK			0x3F
975#define DA9063_VLDO1_BIAS			0
976
977/* DA9063_REG_VLDO2_A/B (addr=0xAA, 0xBB) */
978#define DA9063_VLDO2_MASK			0x3F
979#define DA9063_VLDO2_BIAS			0
980
981/* DA9063_REG_VLDO3_A/B (addr=0xAB, 0xBC) */
982#define DA9063_VLDO3_MASK			0x7F
983#define DA9063_VLDO3_BIAS			0
984
985/* DA9063_REG_VLDO4_A/B (addr=0xAC, 0xBD) */
986#define DA9063_VLDO4_MASK			0x7F
987#define DA9063_VLDO4_BIAS			0
988
989/* DA9063_REG_VLDO5_A/B (addr=0xAD, 0xBE) */
990#define DA9063_VLDO5_MASK			0x3F
991#define DA9063_VLDO5_BIAS			2
992
993/* DA9063_REG_VLDO6_A/B (addr=0xAE, 0xBF) */
994#define DA9063_VLDO6_MASK			0x3F
995#define DA9063_VLDO6_BIAS			2
996
997/* DA9063_REG_VLDO7_A/B (addr=0xAF, 0xC0) */
998#define DA9063_VLDO7_MASK			0x3F
999#define DA9063_VLDO7_BIAS			2
1000
1001/* DA9063_REG_VLDO8_A/B (addr=0xB0, 0xC1) */
1002#define DA9063_VLDO8_MASK			0x3F
1003#define DA9063_VLDO8_BIAS			2
1004
1005/* DA9063_REG_VLDO9_A/B (addr=0xB1, 0xC2) */
1006#define DA9063_VLDO9_MASK			0x3F
1007#define DA9063_VLDO9_BIAS			3
1008
1009/* DA9063_REG_VLDO10_A/B (addr=0xB2, 0xC3) */
1010#define DA9063_VLDO10_MASK			0x3F
1011#define DA9063_VLDO10_BIAS			2
1012
1013/* DA9063_REG_VLDO11_A/B (addr=0xB3, 0xC4) */
1014#define DA9063_VLDO11_MASK			0x3F
1015#define DA9063_VLDO11_BIAS			2
1016
1017/* DA9063_REG_GPO11_LED (addr=0xC6) */
1018/* DA9063_REG_GPO14_LED (addr=0xC7) */
1019/* DA9063_REG_GPO15_LED (addr=0xC8) */
1020#define DA9063_GPIO_DIM				0x80
1021#define DA9063_GPIO_PWM_MASK			0x7F
1022
1023/* DA9063_REG_CONFIG_H (addr=0x10D) */
1024#define DA9063_PWM_CLK_MASK			0x01
1025#define		DA9063_PWM_CLK_PWM2MHZ		0x00
1026#define		DA9063_PWM_CLK_PWM1MHZ		0x01
1027#define DA9063_LDO8_MODE_MASK			0x02
1028#define		DA9063_LDO8_MODE_LDO		0
1029#define		DA9063_LDO8_MODE_VIBR		0x02
1030#define DA9063_MERGE_SENSE_MASK			0x04
1031#define		DA9063_MERGE_SENSE_GP_FB2	0x00
1032#define		DA9063_MERGE_SENSE_GPIO4	0x04
1033#define DA9063_BCORE_MERGE			0x08
1034#define DA9063_BPRO_OD				0x10
1035#define DA9063_BCORE2_OD			0x20
1036#define DA9063_BCORE1_OD			0x40
1037#define DA9063_BUCK_MERGE			0x80
1038
1039/* DA9063_REG_CONFIG_I (addr=0x10E) */
1040#define DA9063_NONKEY_PIN_MASK			0x03
1041#define		DA9063_NONKEY_PIN_PORT		0x00
1042#define		DA9063_NONKEY_PIN_SWDOWN	0x01
1043#define		DA9063_NONKEY_PIN_AUTODOWN	0x02
1044#define		DA9063_NONKEY_PIN_AUTOFLPRT	0x03
1045
1046/* DA9063_REG_MON_REG_5 (addr=0x116) */
1047#define DA9063_MON_A8_IDX_MASK			0x07
1048#define		DA9063_MON_A8_IDX_NONE		0x00
1049#define		DA9063_MON_A8_IDX_BCORE1	0x01
1050#define		DA9063_MON_A8_IDX_BCORE2	0x02
1051#define		DA9063_MON_A8_IDX_BPRO		0x03
1052#define		DA9063_MON_A8_IDX_LDO3		0x04
1053#define		DA9063_MON_A8_IDX_LDO4		0x05
1054#define		DA9063_MON_A8_IDX_LDO11		0x06
1055#define DA9063_MON_A9_IDX_MASK			0x70
1056#define		DA9063_MON_A9_IDX_NONE		0x00
1057#define		DA9063_MON_A9_IDX_BIO		0x01
1058#define		DA9063_MON_A9_IDX_BMEM		0x02
1059#define		DA9063_MON_A9_IDX_BPERI		0x03
1060#define		DA9063_MON_A9_IDX_LDO1		0x04
1061#define		DA9063_MON_A9_IDX_LDO2		0x05
1062#define		DA9063_MON_A9_IDX_LDO5		0x06
1063
1064/* DA9063_REG_MON_REG_6 (addr=0x117) */
1065#define DA9063_MON_A10_IDX_MASK			0x07
1066#define		DA9063_MON_A10_IDX_NONE		0x00
1067#define		DA9063_MON_A10_IDX_LDO6		0x01
1068#define		DA9063_MON_A10_IDX_LDO7		0x02
1069#define		DA9063_MON_A10_IDX_LDO8		0x03
1070#define		DA9063_MON_A10_IDX_LDO9		0x04
1071#define		DA9063_MON_A10_IDX_LDO10	0x05
1072
1073#endif /* _DA9063_REG_H */
1074