/*
 * da9053 register declarations.
 *
 * Copyright(c) 2009 Dialog Semiconductor Ltd.
 *
 * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#ifndef __DIALOG_PMIC_H__
#define __DIALOG_PMIC_H__

enum {
	DA9053_PAGECON0_REG = 0,
	DA9053_STATUSA_REG,
	DA9053_STATUSB_REG,
	DA9053_STATUSC_REG,
	DA9053_STATUSD_REG,
	DA9053_EVENTA_REG,
	DA9053_EVENTB_REG,
	DA9053_EVENTC_REG,
	DA9053_EVENTD_REG,
	DA9053_FAULTLOG_REG,
	DA9053_IRQMASKA_REG,
	DA9053_IRQMASKB_REG,
	DA9053_IRQMASKC_REG,
	DA9053_IRQMASKD_REG,
	DA9053_CONTROLA_REG,
	DA9053_CONTROLB_REG,
	DA9053_CONTROLC_REG,
	DA9053_CONTROLD_REG,
	DA9053_PDDIS_REG,
	DA9053_INTERFACE_REG,
	DA9053_RESET_REG,
	DA9053_GPIO0001_REG,
	DA9053_GPIO0203_REG,
	DA9053_GPIO0405_REG,
	DA9053_GPIO0607_REG,
	DA9053_GPIO0809_REG,
	DA9053_GPIO1011_REG,
	DA9053_GPIO1213_REG,
	DA9053_GPIO1415_REG,
	DA9053_ID01_REG,
	DA9053_ID23_REG,
	DA9053_ID45_REG,
	DA9053_ID67_REG,
	DA9053_ID89_REG,
	DA9053_ID1011_REG,
	DA9053_ID1213_REG,
	DA9053_ID1415_REG,
	DA9053_ID1617_REG,
	DA9053_ID1819_REG,
	DA9053_ID2021_REG,
	DA9053_SEQSTATUS_REG,
	DA9053_SEQA_REG,
	DA9053_SEQB_REG,
	DA9053_SEQTIMER_REG,
	DA9053_BUCKA_REG,
	DA9053_BUCKB_REG,
	DA9053_BUCKCORE_REG,
	DA9053_BUCKPRO_REG,
	DA9053_BUCKMEM_REG,
	DA9053_BUCKPERI_REG,
	DA9053_LDO1_REG,
	DA9053_LDO2_REG,
	DA9053_LDO3_REG,
	DA9053_LDO4_REG,
	DA9053_LDO5_REG,
	DA9053_LDO6_REG,
	DA9053_LDO7_REG,
	DA9053_LDO8_REG,
	DA9053_LDO9_REG,
	DA9053_LDO10_REG,
	DA9053_SUPPLY_REG,
	DA9053_PULLDOWN_REG,
	DA9053_CHGBUCK_REG,
	DA9053_WAITCONT_REG,
	DA9053_ISET_REG,
	DA9053_BATCHG_REG,
	DA9053_CHGCONT_REG,
	DA9053_INPUTCONT_REG,
	DA9053_CHGTIME_REG,
	DA9053_BBATCONT_REG,
	DA9053_BOOST_REG,
	DA9053_LEDCONT_REG,
	DA9053_LEDMIN123_REG,
	DA9053_LED1CONF_REG,
	DA9053_LED2CONF_REG,
	DA9053_LED3CONF_REG,
	DA9053_LED1CONT_REG,
	DA9053_LED2CONT_REG,
	DA9053_LED3CONT_REG,
	DA9053_LED4CONT_REG,
	DA9053_LED5CONT_REG,
	DA9053_ADCMAN_REG,
	DA9053_ADCCONT_REG,
	DA9053_ADCRESL_REG,
	DA9053_ADCRESH_REG,
	DA9053_VDDRES_REG,
	DA9053_VDDMON_REG,
	DA9053_ICHGAV_REG,
	DA9053_ICHGTHD_REG,
	DA9053_ICHGEND_REG,
	DA9053_TBATRES_REG,
	DA9053_TBATHIGHP_REG,
	DA9053_TBATHIGHIN_REG,
	DA9053_TBATLOW_REG,
	DA9053_TOFFSET_REG,
	DA9053_ADCIN4RES_REG,
	DA9053_AUTO4HIGH_REG,
	DA9053_AUTO4LOW_REG,
	DA9053_ADCIN5RES_REG,
	DA9053_AUTO5HIGH_REG,
	DA9053_AUTO5LOW_REG,
	DA9053_ADCIN6RES_REG,
	DA9053_AUTO6HIGH_REG,
	DA9053_AUTO6LOW_REG,
	DA9053_TJUNCRES_REG,
	DA9053_TSICONTA_REG,
	DA9053_TSICONTB_REG,
	DA9053_TSIXMSB_REG,
	DA9053_TSIYMSB_REG,
	DA9053_TSILSB_REG,
	DA9053_TSIZMSB_REG,
	DA9053_COUNTS_REG,
	DA9053_COUNTMI_REG,
	DA9053_COUNTH_REG,
	DA9053_COUNTD_REG,
	DA9053_COUNTMO_REG,
	DA9053_COUNTY_REG,
	DA9053_ALARMMI_REG,
	DA9053_ALARMH_REG,
	DA9053_ALARMD_REG,
	DA9053_ALARMMO_REG,
	DA9053_ALARMY_REG,
	DA9053_SECONDA_REG,
	DA9053_SECONDB_REG,
	DA9053_SECONDC_REG,
	DA9053_SECONDD_REG,
	DA9053_PAGECON128_REG,
	DA9053_CHIPID_REG,
	DA9053_CONFIGID_REG,
	DA9053_OTPCONT_REG,
	DA9053_OSCTRIM_REG,
	DA9053_GPID0_REG,
	DA9053_GPID1_REG,
	DA9053_GPID2_REG,
	DA9053_GPID3_REG,
	DA9053_GPID4_REG,
	DA9053_GPID5_REG,
	DA9053_GPID6_REG,
	DA9053_GPID7_REG,
	DA9053_GPID8_REG,
	DA9053_GPID9_REG,
	DIALOG_NUM_OF_REGS,
};

#define DA_BUCKCORE_VBCORE_1_250V		0x1E

/* BUCKCORE REGISTER */
#define DA9052_BUCKCORE_BCORECONF               (1 << 7)
#define DA9052_BUCKCORE_BCOREEN                 (1 << 6)
#define DA9052_BUCKCORE_VBCORE                  63

/* SUPPLY REGISTER */
#define DA9052_SUPPLY_VLOCK                     (1 << 7)
#define DA9052_SUPPLY_VMEMSWEN                  (1 << 6)
#define DA9052_SUPPLY_VPERISWEN                 (1 << 5)
#define DA9052_SUPPLY_VLDO3GO                   (1 << 4)
#define DA9052_SUPPLY_VLDO2GO                   (1 << 3)
#define DA9052_SUPPLY_VBMEMGO                   (1 << 2)
#define DA9052_SUPPLY_VBPROGO                   (1 << 1)
#define DA9052_SUPPLY_VBCOREGO                  (1 << 0)

#endif /* __DIALOG_PMIC_H__ */
