/*
 * (C) Copyright 2006 DENX Software Engineering
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

/* DA9030 register definitions */
#define CID			0x00
#define EVENT_A			0x01
#define EVENT_B			0x02
#define EVENT_C			0x03
#define STATUS			0x04
#define IRQ_MASK_A		0x05
#define IRQ_MASK_B		0x06
#define IRQ_MASK_C		0x07
#define SYS_CONTROL_A		0x08
#define SYS_CONTROL_B		0x09
#define FAULT_LOG		0x0A
#define LDO_10_11		0x10
#define LDO_15			0x11
#define LDO_14_16		0x12
#define LDO_18_19		0x13
#define LDO_17_SIMCP0		0x14
#define BUCK2_DVC1		0x15
#define BUCK2_DVC2		0x16
#define REG_CONTROL_1_17	0x17
#define REG_CONTROL_2_18	0x18
#define USBPUMP			0x19
#define SLEEP_CONTROL		0x1A
#define STARTUP_CONTROL		0x1B
#define LED1_CONTROL		0x20
#define LED2_CONTROL		0x21
#define LED3_CONTROL		0x22
#define LED4_CONTROL		0x23
#define LEDPC_CONTROL		0x24
#define WLED_CONTROL		0x25
#define MISC_CONTROLA		0x26
#define MISC_CONTROLB		0x27
#define CHARGE_CONTROL		0x28
#define CCTR_CONTROL		0x29
#define TCTR_CONTROL		0x2A
#define CHARGE_PULSE		0x2B

/* ... some missing ...*/

#define LDO1			0x90
#define LDO2_3			0x91
#define LDO4_5			0x92
#define LDO6_SIMCP		0x93
#define LDO7_8			0x94
#define LDO9_12			0x95
#define BUCK			0x96
#define REG_CONTROL_1_97	0x97
#define REG_CONTROL_2_98	0x98
#define REG_SLEEP_CONTROL1	0x99
#define REG_SLEEP_CONTROL2	0x9A
#define REG_SLEEP_CONTROL3	0x9B
#define ADC_MAN_CONTROL		0xA0
#define ADC_AUTO_CONTROL	0xA1
#define VBATMON			0xA2
#define VBATMONTXMON		0xA3
#define TBATHIGHP		0xA4
#define TBATHIGHN		0xA5
#define TBATLOW			0xA6
#define MAN_RES			0xB0
#define VBAT_RES		0xB1
#define VBATMIN_RES		0xB2
#define VBATMINTXON_RES		0xB3
#define ICHMAX_RES		0xB4
#define ICHMIN_RES		0xB5
#define ICHAVERAGE_RES		0xB6
#define VCHMAX_RES		0xB7
#define VCHMIN_RES		0xB8
#define TBAT_RES		0xB9
#define ADC_IN4_RES		0xBA

#define STATUS_ONKEY_N		0x1	/* current ONKEY_N value */
#define STATUS_PWREN1		(1<<1)	/* PWREN1 value */
#define STATUS_EXTON		(1<<2)	/* EXTON value */
#define STATUS_CHDET		(1<<3)	/* Charger detection status */
#define STATUS_TBAT		(1<<4)	/* Battery over/under temperature status */
#define STATUS_VBATMON		(1<<5)	/* VBATMON comparison status */
#define STATUS_VBATMONTXON	(1<<6)	/* VBATMONTXON comparison status */
#define STATUS_CHIOVER		(1<<7)	/* Charge overcurrent */

#define SYS_CONTROL_A_SLEEP_N_PIN_ENABLE	0x1
#define SYS_CONTROL_A_SHUT_DOWN			(1<<1)
#define SYS_CONTROL_A_HWRES_ENABLE		(1<<2)
#define SYS_CONTROL_A_WDOG_ACTION		(1<<3)
#define SYS_CONTROL_A_WATCHDOG			(1<<7)

#define MISC_CONTROLB_USB_INT_RISING		(1<<2)
#define MISC_CONTROLB_SESSION_VALID_EN		(1<<3)

#define USB_PUMP_USBVE				(1<<0)
#define USB_PUMP_USBVEP				(1<<1)
#define USB_PUMP_SRP_DETECT			(1<<2)
#define USB_PUMP_SESSION_VALID			(1<<3)
#define USB_PUMP_VBUS_VALID_4_0			(1<<4)
#define USB_PUMP_VBUS_VALID_4_4			(1<<5)
#define USB_PUMP_EN_USBVE			(1<<6)
#define USB_PUMP_EN_USBVEP			(1<<7)