1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2015 Hans de Goede <hdegoede@redhat.com>
4  *
5  * X-Powers AX Power Management IC support header
6  */
7 #ifndef _AXP_PMIC_H_
8 #define _AXP_PMIC_H_
9 
10 #include <stdbool.h>
11 
12 #include <axp152.h>
13 #include <axp209.h>
14 #include <axp221.h>
15 #include <axp305.h>
16 #include <axp809.h>
17 #include <axp818.h>
18 
19 #define AXP_PMIC_MODE_REG		0x3e
20 #define AXP_PMIC_MODE_I2C		0x00
21 #define AXP_PMIC_MODE_P2WI		0x3e
22 #define AXP_PMIC_MODE_RSB		0x7c
23 
24 #define AXP_PMIC_PRI_DEVICE_ADDR	0x3a3
25 #define AXP_PMIC_PRI_RUNTIME_ADDR	0x2d
26 #define AXP_PMIC_SEC_DEVICE_ADDR	0x745
27 #define AXP_PMIC_SEC_RUNTIME_ADDR	0x3a
28 
29 enum {
30 	AXP152_ID,
31 	AXP202_ID,
32 	AXP209_ID,
33 	AXP221_ID,
34 	AXP223_ID,
35 	AXP803_ID,
36 	AXP806_ID,
37 	AXP809_ID,
38 	AXP813_ID,
39 };
40 
41 int axp_set_dcdc1(unsigned int mvolt);
42 int axp_set_dcdc2(unsigned int mvolt);
43 int axp_set_dcdc3(unsigned int mvolt);
44 int axp_set_dcdc4(unsigned int mvolt);
45 int axp_set_dcdc5(unsigned int mvolt);
46 int axp_set_aldo1(unsigned int mvolt);
47 int axp_set_aldo2(unsigned int mvolt);
48 int axp_set_aldo3(unsigned int mvolt);
49 int axp_set_aldo4(unsigned int mvolt);
50 int axp_set_dldo(int dldo_num, unsigned int mvolt);
51 int axp_set_eldo(int eldo_num, unsigned int mvolt);
52 int axp_set_fldo(int fldo_num, unsigned int mvolt);
53 int axp_set_sw(bool on);
54 int axp_init(void);
55 int axp_get_sid(unsigned int *sid);
56 
57 #endif
58