xref: /linux-6.15/include/linux/mfd/tps6586x.h (revision db4e8395)
1 #ifndef __LINUX_MFD_TPS6586X_H
2 #define __LINUX_MFD_TPS6586X_H
3 
4 enum {
5 	TPS6586X_ID_SM_0,
6 	TPS6586X_ID_SM_1,
7 	TPS6586X_ID_SM_2,
8 	TPS6586X_ID_LDO_0,
9 	TPS6586X_ID_LDO_1,
10 	TPS6586X_ID_LDO_2,
11 	TPS6586X_ID_LDO_3,
12 	TPS6586X_ID_LDO_4,
13 	TPS6586X_ID_LDO_5,
14 	TPS6586X_ID_LDO_6,
15 	TPS6586X_ID_LDO_7,
16 	TPS6586X_ID_LDO_8,
17 	TPS6586X_ID_LDO_9,
18 	TPS6586X_ID_LDO_RTC,
19 };
20 
21 enum {
22 	TPS6586X_INT_PLDO_0,
23 	TPS6586X_INT_PLDO_1,
24 	TPS6586X_INT_PLDO_2,
25 	TPS6586X_INT_PLDO_3,
26 	TPS6586X_INT_PLDO_4,
27 	TPS6586X_INT_PLDO_5,
28 	TPS6586X_INT_PLDO_6,
29 	TPS6586X_INT_PLDO_7,
30 	TPS6586X_INT_COMP_DET,
31 	TPS6586X_INT_ADC,
32 	TPS6586X_INT_PLDO_8,
33 	TPS6586X_INT_PLDO_9,
34 	TPS6586X_INT_PSM_0,
35 	TPS6586X_INT_PSM_1,
36 	TPS6586X_INT_PSM_2,
37 	TPS6586X_INT_PSM_3,
38 	TPS6586X_INT_RTC_ALM1,
39 	TPS6586X_INT_ACUSB_OVP,
40 	TPS6586X_INT_USB_DET,
41 	TPS6586X_INT_AC_DET,
42 	TPS6586X_INT_BAT_DET,
43 	TPS6586X_INT_CHG_STAT,
44 	TPS6586X_INT_CHG_TEMP,
45 	TPS6586X_INT_PP,
46 	TPS6586X_INT_RESUME,
47 	TPS6586X_INT_LOW_SYS,
48 	TPS6586X_INT_RTC_ALM2,
49 };
50 
51 struct tps6586x_subdev_info {
52 	int		id;
53 	const char	*name;
54 	void		*platform_data;
55 };
56 
57 struct tps6586x_platform_data {
58 	int num_subdevs;
59 	struct tps6586x_subdev_info *subdevs;
60 
61 	int gpio_base;
62 	int irq_base;
63 };
64 
65 /*
66  * NOTE: the functions below are not intended for use outside
67  * of the TPS6586X sub-device drivers
68  */
69 extern int tps6586x_write(struct device *dev, int reg, uint8_t val);
70 extern int tps6586x_writes(struct device *dev, int reg, int len, uint8_t *val);
71 extern int tps6586x_read(struct device *dev, int reg, uint8_t *val);
72 extern int tps6586x_reads(struct device *dev, int reg, int len, uint8_t *val);
73 extern int tps6586x_set_bits(struct device *dev, int reg, uint8_t bit_mask);
74 extern int tps6586x_clr_bits(struct device *dev, int reg, uint8_t bit_mask);
75 extern int tps6586x_update(struct device *dev, int reg, uint8_t val,
76 			   uint8_t mask);
77 
78 #endif /*__LINUX_MFD_TPS6586X_H */
79