xref: /openbmc/u-boot/include/power/tps65218.h (revision 5c2dd4cd7a41ec971a23eec9e993717e5aed8744)
1  /*
2   * (C) Copyright 2014
3   * Texas Instruments, <www.ti.com>
4   *
5   * SPDX-License-Identifier:	GPL-2.0+
6   */
7  
8  #ifndef __POWER_TPS65218_H__
9  #define __POWER_TPS65218_H__
10  
11  #include <linux/bitops.h>
12  
13  /* I2C chip address */
14  #define TPS65218_CHIP_PM			0x24
15  
16  /* Registers */
17  enum {
18  	TPS65218_CHIPID				= 0x00,
19  	TPS65218_INT1,
20  	TPS65218_INT2,
21  	TPS65218_INT_MASK1,
22  	TPS65218_INT_MASK2,
23  	TPS65218_STATUS,
24  	TPS65218_CONTROL,
25  	TPS65218_FLAG,
26  	TPS65218_PASSWORD			= 0x10,
27  	TPS65218_ENABLE1,
28  	TPS65218_ENABLE2,
29  	TPS65218_CONFIG1,
30  	TPS65218_CONFIG2,
31  	TPS65218_CONFIG3,
32  	TPS65218_DCDC1,
33  	TPS65218_DCDC2,
34  	TPS65218_DCDC3,
35  	TPS65218_DCDC4,
36  	TPS65218_SLEW,
37  	TPS65218_LDO1,
38  	TPS65218_SEQ1				= 0x20,
39  	TPS65218_SEQ2,
40  	TPS65218_SEQ3,
41  	TPS65218_SEQ4,
42  	TPS65218_SEQ5,
43  	TPS65218_SEQ6,
44  	TPS65218_SEQ7,
45  	TPS65218_PMIC_NUM_OF_REGS,
46  };
47  
48  #define TPS65218_PROT_LEVEL_NONE		0x00
49  #define TPS65218_PROT_LEVEL_1			0x01
50  #define TPS65218_PROT_LEVEL_2			0x02
51  
52  #define TPS65218_PASSWORD_LOCK_FOR_WRITE	0x00
53  #define TPS65218_PASSWORD_UNLOCK		0x7D
54  
55  #define TPS65218_DCDC_GO			0x80
56  
57  #define TPS65218_MASK_ALL_BITS			0xFF
58  
59  #define TPS65218_DCDC_VOLT_SEL_0950MV		0x0a
60  #define TPS65218_DCDC_VOLT_SEL_1100MV		0x19
61  #define TPS65218_DCDC_VOLT_SEL_1200MV		0x23
62  #define TPS65218_DCDC_VOLT_SEL_1260MV		0x29
63  #define TPS65218_DCDC_VOLT_SEL_1330MV		0x30
64  
65  #define TPS65218_CC_STAT	(BIT(0) | BIT(1))
66  #define TPS65218_STATE		(BIT(2) | BIT(3))
67  #define TPS65218_PB_STATE	BIT(4)
68  #define TPS65218_AC_STATE	BIT(5)
69  #define TPS65218_EE		BIT(6)
70  #define TPS65218_FSEAL		BIT(7)
71  
72  int tps65218_reg_read(uchar dest_reg, uchar *dest_val);
73  int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val,
74  		       uchar mask);
75  int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel);
76  int tps65218_toggle_fseal(void);
77  int tps65218_lock_fseal(void);
78  int power_tps65218_init(unsigned char bus);
79  #endif	/* __POWER_TPS65218_H__ */
80