1 /*
2  * (C) Copyright 2006 DENX Software Engineering
3  *
4  * See file CREDITS for list of people who contributed to this
5  * project.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 2 of
10  * the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20  * MA 02111-1307 USA
21  */
22 
23 /* DA9030 register definitions */
24 #define CID			0x00
25 #define EVENT_A			0x01
26 #define EVENT_B			0x02
27 #define EVENT_C			0x03
28 #define STATUS			0x04
29 #define IRQ_MASK_A		0x05
30 #define IRQ_MASK_B		0x06
31 #define IRQ_MASK_C		0x07
32 #define SYS_CONTROL_A		0x08
33 #define SYS_CONTROL_B		0x09
34 #define FAULT_LOG		0x0A
35 #define LDO_10_11		0x10
36 #define LDO_15			0x11
37 #define LDO_14_16		0x12
38 #define LDO_18_19		0x13
39 #define LDO_17_SIMCP0		0x14
40 #define BUCK2_DVC1		0x15
41 #define BUCK2_DVC2		0x16
42 #define REG_CONTROL_1_17	0x17
43 #define REG_CONTROL_2_18	0x18
44 #define USBPUMP			0x19
45 #define SLEEP_CONTROL		0x1A
46 #define STARTUP_CONTROL		0x1B
47 #define LED1_CONTROL		0x20
48 #define LED2_CONTROL		0x21
49 #define LED3_CONTROL		0x22
50 #define LED4_CONTROL		0x23
51 #define LEDPC_CONTROL		0x24
52 #define WLED_CONTROL		0x25
53 #define MISC_CONTROLA		0x26
54 #define MISC_CONTROLB		0x27
55 #define CHARGE_CONTROL		0x28
56 #define CCTR_CONTROL		0x29
57 #define TCTR_CONTROL		0x2A
58 #define CHARGE_PULSE		0x2B
59 
60 /* ... some missing ...*/
61 
62 #define LDO1			0x90
63 #define LDO2_3			0x91
64 #define LDO4_5			0x92
65 #define LDO6_SIMCP		0x93
66 #define LDO7_8			0x94
67 #define LDO9_12			0x95
68 #define BUCK			0x96
69 #define REG_CONTROL_1_97	0x97
70 #define REG_CONTROL_2_98	0x98
71 #define REG_SLEEP_CONTROL1	0x99
72 #define REG_SLEEP_CONTROL2	0x9A
73 #define REG_SLEEP_CONTROL3	0x9B
74 #define ADC_MAN_CONTROL		0xA0
75 #define ADC_AUTO_CONTROL	0xA1
76 #define VBATMON			0xA2
77 #define VBATMONTXMON		0xA3
78 #define TBATHIGHP		0xA4
79 #define TBATHIGHN		0xA5
80 #define TBATLOW			0xA6
81 #define MAN_RES			0xB0
82 #define VBAT_RES		0xB1
83 #define VBATMIN_RES		0xB2
84 #define VBATMINTXON_RES		0xB3
85 #define ICHMAX_RES		0xB4
86 #define ICHMIN_RES		0xB5
87 #define ICHAVERAGE_RES		0xB6
88 #define VCHMAX_RES		0xB7
89 #define VCHMIN_RES		0xB8
90 #define TBAT_RES		0xB9
91 #define ADC_IN4_RES		0xBA
92 
93 #define STATUS_ONKEY_N		0x1	/* current ONKEY_N value */
94 #define STATUS_PWREN1		(1<<1)	/* PWREN1 value */
95 #define STATUS_EXTON		(1<<2)	/* EXTON value */
96 #define STATUS_CHDET		(1<<3)	/* Charger detection status */
97 #define STATUS_TBAT		(1<<4)	/* Battery over/under temperature status */
98 #define STATUS_VBATMON		(1<<5)	/* VBATMON comparison status */
99 #define STATUS_VBATMONTXON	(1<<6)	/* VBATMONTXON comparison status */
100 #define STATUS_CHIOVER		(1<<7)	/* Charge overcurrent */
101 
102 #define SYS_CONTROL_A_SLEEP_N_PIN_ENABLE	0x1
103 #define SYS_CONTROL_A_SHUT_DOWN			(1<<1)
104 #define SYS_CONTROL_A_HWRES_ENABLE		(1<<2)
105 #define SYS_CONTROL_A_WDOG_ACTION		(1<<3)
106 #define SYS_CONTROL_A_WATCHDOG			(1<<7)
107 
108 #define MISC_CONTROLB_USB_INT_RISING		(1<<2)
109 #define MISC_CONTROLB_SESSION_VALID_EN		(1<<3)
110 
111 #define USB_PUMP_USBVE				(1<<0)
112 #define USB_PUMP_USBVEP				(1<<1)
113 #define USB_PUMP_SRP_DETECT			(1<<2)
114 #define USB_PUMP_SESSION_VALID			(1<<3)
115 #define USB_PUMP_VBUS_VALID_4_0			(1<<4)
116 #define USB_PUMP_VBUS_VALID_4_4			(1<<5)
117 #define USB_PUMP_EN_USBVE			(1<<6)
118 #define USB_PUMP_EN_USBVEP			(1<<7)
119