xref: /linux/include/linux/mfd/88pm886.h (revision 0e287d31b62bb53ad81d5e59778384a40f8b6f56)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef __MFD_88PM886_H
3 #define __MFD_88PM886_H
4 
5 #include <linux/i2c.h>
6 #include <linux/regmap.h>
7 
8 #define PM886_A1_CHIP_ID		0xa1
9 
10 #define PM886_IRQ_ONKEY			0
11 
12 #define PM886_PAGE_OFFSET_REGULATORS	1
13 
14 #define PM886_REG_ID			0x00
15 
16 #define PM886_REG_STATUS1		0x01
17 #define PM886_ONKEY_STS1		BIT(0)
18 
19 #define PM886_REG_INT_STATUS1		0x05
20 
21 #define PM886_REG_INT_ENA_1		0x0a
22 #define PM886_INT_ENA1_ONKEY		BIT(0)
23 
24 #define PM886_REG_MISC_CONFIG1		0x14
25 #define PM886_SW_PDOWN			BIT(5)
26 
27 #define PM886_REG_MISC_CONFIG2		0x15
28 #define PM886_INT_INV			BIT(0)
29 #define PM886_INT_CLEAR			BIT(1)
30 #define PM886_INT_RC			0x00
31 #define PM886_INT_WC			BIT(1)
32 #define PM886_INT_MASK_MODE		BIT(2)
33 
34 #define PM886_REG_RTC_CNT1		0xd1
35 #define PM886_REG_RTC_CNT2		0xd2
36 #define PM886_REG_RTC_CNT3		0xd3
37 #define PM886_REG_RTC_CNT4		0xd4
38 #define PM886_REG_RTC_SPARE1		0xea
39 #define PM886_REG_RTC_SPARE2		0xeb
40 #define PM886_REG_RTC_SPARE3		0xec
41 #define PM886_REG_RTC_SPARE4		0xed
42 #define PM886_REG_RTC_SPARE5		0xee
43 #define PM886_REG_RTC_SPARE6		0xef
44 
45 #define PM886_REG_BUCK_EN		0x08
46 #define PM886_REG_LDO_EN1		0x09
47 #define PM886_REG_LDO_EN2		0x0a
48 #define PM886_REG_LDO1_VOUT		0x20
49 #define PM886_REG_LDO2_VOUT		0x26
50 #define PM886_REG_LDO3_VOUT		0x2c
51 #define PM886_REG_LDO4_VOUT		0x32
52 #define PM886_REG_LDO5_VOUT		0x38
53 #define PM886_REG_LDO6_VOUT		0x3e
54 #define PM886_REG_LDO7_VOUT		0x44
55 #define PM886_REG_LDO8_VOUT		0x4a
56 #define PM886_REG_LDO9_VOUT		0x50
57 #define PM886_REG_LDO10_VOUT		0x56
58 #define PM886_REG_LDO11_VOUT		0x5c
59 #define PM886_REG_LDO12_VOUT		0x62
60 #define PM886_REG_LDO13_VOUT		0x68
61 #define PM886_REG_LDO14_VOUT		0x6e
62 #define PM886_REG_LDO15_VOUT		0x74
63 #define PM886_REG_LDO16_VOUT		0x7a
64 #define PM886_REG_BUCK1_VOUT		0xa5
65 #define PM886_REG_BUCK2_VOUT		0xb3
66 #define PM886_REG_BUCK3_VOUT		0xc1
67 #define PM886_REG_BUCK4_VOUT		0xcf
68 #define PM886_REG_BUCK5_VOUT		0xdd
69 
70 #define PM886_LDO_VSEL_MASK		0x0f
71 #define PM886_BUCK_VSEL_MASK		0x7f
72 
73 struct pm886_chip {
74 	struct i2c_client *client;
75 	unsigned int chip_id;
76 	struct regmap *regmap;
77 };
78 #endif /* __MFD_88PM886_H */
79