cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tps6507x.h (5055B)


      1/* linux/mfd/tps6507x.h
      2 *
      3 * Functions to access TPS65070 power management chip.
      4 *
      5 * Copyright (c) 2009 RidgeRun (todd.fischer@ridgerun.com)
      6 *
      7 *
      8 *  For licencing details see kernel-base/COPYING
      9 */
     10
     11#ifndef __LINUX_MFD_TPS6507X_H
     12#define __LINUX_MFD_TPS6507X_H
     13
     14/*
     15 * ----------------------------------------------------------------------------
     16 * Registers, all 8 bits
     17 * ----------------------------------------------------------------------------
     18 */
     19
     20
     21/* Register definitions */
     22#define	TPS6507X_REG_PPATH1			0X01
     23#define	TPS6507X_CHG_USB			BIT(7)
     24#define	TPS6507X_CHG_AC				BIT(6)
     25#define	TPS6507X_CHG_USB_PW_ENABLE		BIT(5)
     26#define	TPS6507X_CHG_AC_PW_ENABLE		BIT(4)
     27#define	TPS6507X_CHG_AC_CURRENT			BIT(2)
     28#define	TPS6507X_CHG_USB_CURRENT		BIT(0)
     29
     30#define	TPS6507X_REG_INT			0X02
     31#define	TPS6507X_REG_MASK_AC_USB		BIT(7)
     32#define	TPS6507X_REG_MASK_TSC			BIT(6)
     33#define	TPS6507X_REG_MASK_PB_IN			BIT(5)
     34#define	TPS6507X_REG_TSC_INT			BIT(3)
     35#define	TPS6507X_REG_PB_IN_INT			BIT(2)
     36#define	TPS6507X_REG_AC_USB_APPLIED		BIT(1)
     37#define	TPS6507X_REG_AC_USB_REMOVED		BIT(0)
     38
     39#define	TPS6507X_REG_CHGCONFIG0			0X03
     40
     41#define	TPS6507X_REG_CHGCONFIG1			0X04
     42#define	TPS6507X_CON_CTRL1_DCDC1_ENABLE		BIT(4)
     43#define	TPS6507X_CON_CTRL1_DCDC2_ENABLE		BIT(3)
     44#define	TPS6507X_CON_CTRL1_DCDC3_ENABLE		BIT(2)
     45#define	TPS6507X_CON_CTRL1_LDO1_ENABLE		BIT(1)
     46#define	TPS6507X_CON_CTRL1_LDO2_ENABLE		BIT(0)
     47
     48#define	TPS6507X_REG_CHGCONFIG2			0X05
     49
     50#define	TPS6507X_REG_CHGCONFIG3			0X06
     51
     52#define	TPS6507X_REG_ADCONFIG			0X07
     53#define	TPS6507X_ADCONFIG_AD_ENABLE		BIT(7)
     54#define	TPS6507X_ADCONFIG_START_CONVERSION	BIT(6)
     55#define	TPS6507X_ADCONFIG_CONVERSION_DONE	BIT(5)
     56#define	TPS6507X_ADCONFIG_VREF_ENABLE		BIT(4)
     57#define	TPS6507X_ADCONFIG_INPUT_AD_IN1		0
     58#define	TPS6507X_ADCONFIG_INPUT_AD_IN2		1
     59#define	TPS6507X_ADCONFIG_INPUT_AD_IN3		2
     60#define	TPS6507X_ADCONFIG_INPUT_AD_IN4		3
     61#define	TPS6507X_ADCONFIG_INPUT_TS_PIN		4
     62#define	TPS6507X_ADCONFIG_INPUT_BAT_CURRENT	5
     63#define	TPS6507X_ADCONFIG_INPUT_AC_VOLTAGE	6
     64#define	TPS6507X_ADCONFIG_INPUT_SYS_VOLTAGE	7
     65#define	TPS6507X_ADCONFIG_INPUT_CHARGER_VOLTAGE 8
     66#define	TPS6507X_ADCONFIG_INPUT_BAT_VOLTAGE	9
     67#define	TPS6507X_ADCONFIG_INPUT_THRESHOLD_VOLTAGE 10
     68#define	TPS6507X_ADCONFIG_INPUT_ISET1_VOLTAGE	11
     69#define	TPS6507X_ADCONFIG_INPUT_ISET2_VOLTAGE	12
     70#define	TPS6507X_ADCONFIG_INPUT_REAL_TSC	14
     71#define	TPS6507X_ADCONFIG_INPUT_TSC		15
     72
     73#define	TPS6507X_REG_TSCMODE			0X08
     74#define	TPS6507X_TSCMODE_X_POSITION		0
     75#define	TPS6507X_TSCMODE_Y_POSITION		1
     76#define	TPS6507X_TSCMODE_PRESSURE		2
     77#define	TPS6507X_TSCMODE_X_PLATE		3
     78#define	TPS6507X_TSCMODE_Y_PLATE		4
     79#define	TPS6507X_TSCMODE_STANDBY		5
     80#define	TPS6507X_TSCMODE_ADC_INPUT		6
     81#define	TPS6507X_TSCMODE_DISABLE		7
     82
     83#define	TPS6507X_REG_ADRESULT_1			0X09
     84
     85#define	TPS6507X_REG_ADRESULT_2			0X0A
     86#define	TPS6507X_REG_ADRESULT_2_MASK		(BIT(1) | BIT(0))
     87
     88#define	TPS6507X_REG_PGOOD			0X0B
     89
     90#define	TPS6507X_REG_PGOODMASK			0X0C
     91
     92#define	TPS6507X_REG_CON_CTRL1			0X0D
     93#define	TPS6507X_CON_CTRL1_DCDC1_ENABLE		BIT(4)
     94#define	TPS6507X_CON_CTRL1_DCDC2_ENABLE		BIT(3)
     95#define	TPS6507X_CON_CTRL1_DCDC3_ENABLE		BIT(2)
     96#define	TPS6507X_CON_CTRL1_LDO1_ENABLE		BIT(1)
     97#define	TPS6507X_CON_CTRL1_LDO2_ENABLE		BIT(0)
     98
     99#define	TPS6507X_REG_CON_CTRL2			0X0E
    100
    101#define	TPS6507X_REG_CON_CTRL3			0X0F
    102
    103#define	TPS6507X_REG_DEFDCDC1			0X10
    104#define TPS6507X_DEFDCDC1_DCDC1_EXT_ADJ_EN	BIT(7)
    105#define TPS6507X_DEFDCDC1_DCDC1_MASK		0X3F
    106
    107#define	TPS6507X_REG_DEFDCDC2_LOW		0X11
    108#define TPS6507X_DEFDCDC2_LOW_DCDC2_MASK	0X3F
    109
    110#define	TPS6507X_REG_DEFDCDC2_HIGH		0X12
    111#define TPS6507X_DEFDCDC2_HIGH_DCDC2_MASK	0X3F
    112
    113#define	TPS6507X_REG_DEFDCDC3_LOW		0X13
    114#define TPS6507X_DEFDCDC3_LOW_DCDC3_MASK	0X3F
    115
    116#define	TPS6507X_REG_DEFDCDC3_HIGH		0X14
    117#define TPS6507X_DEFDCDC3_HIGH_DCDC3_MASK	0X3F
    118
    119#define	TPS6507X_REG_DEFSLEW			0X15
    120
    121#define	TPS6507X_REG_LDO_CTRL1			0X16
    122#define TPS6507X_REG_LDO_CTRL1_LDO1_MASK	0X0F
    123
    124#define	TPS6507X_REG_DEFLDO2			0X17
    125#define TPS6507X_REG_DEFLDO2_LDO2_MASK		0X3F
    126
    127#define	TPS6507X_REG_WLED_CTRL1			0X18
    128
    129#define	TPS6507X_REG_WLED_CTRL2			0X19
    130
    131/* VDCDC MASK */
    132#define TPS6507X_DEFDCDCX_DCDC_MASK		0X3F
    133
    134#define TPS6507X_MAX_REGISTER			0X19
    135
    136/**
    137 * struct tps6507x_board - packages regulator and touchscreen init data
    138 * @tps6507x_regulator_data: regulator initialization values
    139 *
    140 * Board data may be used to initialize regulator and touchscreen.
    141 */
    142
    143struct tps6507x_board {
    144	struct regulator_init_data *tps6507x_pmic_init_data;
    145	struct touchscreen_init_data *tps6507x_ts_init_data;
    146};
    147
    148/**
    149 * struct tps6507x_dev - tps6507x sub-driver chip access routines
    150 * @read_dev() - I2C register read function
    151 * @write_dev() - I2C register write function
    152 *
    153 * Device data may be used to access the TPS6507x chip
    154 */
    155
    156struct tps6507x_dev {
    157	struct device *dev;
    158	struct i2c_client *i2c_client;
    159	int (*read_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
    160			void *dest);
    161	int (*write_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
    162			 void *src);
    163
    164	/* Client devices */
    165	struct tps6507x_pmic *pmic;
    166};
    167
    168#endif /*  __LINUX_MFD_TPS6507X_H */