summaryrefslogtreecommitdiff
path: root/include/axp809.h
blob: 81b3607d066529ffe32eeddb31841a4fb2591f48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * (C) Copyright 2016 Theobroma Systems Design und Consulting GmbH
 *                    Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
 *
 * X-Powers AXP809 Power Management IC driver
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

/* Page 0 addresses */
#define AXP809_INPUT_POWER_STATUS       0x00
#define AXP809_POWERMODE                0x01
#define AXP809_VERSION                  0x03
#define AXP809_VERSION_CHIPID_MASK              0xcf
#define AXP809_VERSION_CHIPID                   0x42
#define AXP809_DATACACHE	        0x04
#define AXP809_OUTPUT_CTRL1	        0x10
#define AXP809_OUTPUT_CTRL1_DC5LDO_EN		(1 << 0)
#define AXP809_OUTPUT_CTRL1_DCDC1_EN		(1 << 1)
#define AXP809_OUTPUT_CTRL1_DCDC2_EN		(1 << 2)
#define AXP809_OUTPUT_CTRL1_DCDC3_EN		(1 << 3)
#define AXP809_OUTPUT_CTRL1_DCDC4_EN		(1 << 4)
#define AXP809_OUTPUT_CTRL1_DCDC5_EN		(1 << 5)
#define AXP809_OUTPUT_CTRL1_ALDO1_EN		(1 << 6)
#define AXP809_OUTPUT_CTRL1_ALDO2_EN		(1 << 7)
#define AXP809_OUTPUT_CTRL2	        0x12
#define AXP809_OUTPUT_CTRL2_ELDO1_EN		(1 << 0)
#define AXP809_OUTPUT_CTRL2_ELDO2_EN		(1 << 1)
#define AXP809_OUTPUT_CTRL2_ELDO3_EN		(1 << 2)
#define AXP809_OUTPUT_CTRL2_DLDO1_EN		(1 << 3)
#define AXP809_OUTPUT_CTRL2_DLDO2_EN		(1 << 4)
#define AXP809_OUTPUT_CTRL2_ALDO3_EN		(1 << 5)
#define AXP809_OUTPUT_CTRL2_SWOUT_EN		(1 << 6)
#define AXP809_OUTPUT_CTRL2_DC1SW_EN		(1 << 7)
#define AXP809_DLDO1_CTRL	        0x15
#define AXP809_DLDO2_CTRL	        0x16
#define AXP809_ELDO1_CTRL	        0x19
#define AXP809_ELDO2_CTRL	        0x1a
#define AXP809_ELDO3_CTRL	        0x1b
#define AXP809_DC5LDO_CTRL	        0x1c
#define AXP809_DCDC1_CTRL	        0x21
#define AXP809_DCDC2_CTRL	        0x22
#define AXP809_DCDC3_CTRL	        0x23
#define AXP809_DCDC4_CTRL	        0x24
#define AXP809_DCDC5_CTRL	        0x25
#define AXP809_DCDC23_DVS_CTRL	        0x27
#define AXP809_ALDO1_CTRL	        0x28
#define AXP809_ALDO2_CTRL	        0x29
#define AXP809_ALDO3_CTRL	        0x2a
#define AXP809_VBUS_IPSOUT	        0x30
#define AXP809_VBUS_IPSOUT_DRIVEBUS		(1 << 2)
#define AXP809_WAKEUP	        	0x31
#define AXP809_SHUTDOWN	        	0x32
#define AXP809_SHUTDOWN_POWEROFF		(1 << 7)
#define AXP809_DCDC_FREQUENCY	        0x3b
#define AXP809_DCDC_MODE	        0x80
#define AXP809_ADC_ENABLE	        0x82
#define AXP809_ADC_CTRL	        	0x84
#define AXP809_ADC_RAT	        	0x85
#define AXP809_TIMER_CTRL	        0x8a
#define AXP809_PWREN_CTRL1	        0x8c
#define AXP809_PWREN_CTRL2	        0x8d
#define AXP809_MISC_CTRL	        0x8f
#define AXP809_MISC_CTRL_N_VBUSEN_FUNC		(1 << 4)

/* For axp_gpio.c */
#define AXP_POWER_STATUS		0x00
#define AXP_POWER_STATUS_VBUS_PRESENT		(1 << 5)
#define AXP_GPIO0_CTRL			0x90
#define AXP_GPIO1_CTRL			0x92
#define AXP_GPIO_CTRL_OUTPUT_LOW		0x00 /* Drive pin low */
#define AXP_GPIO_CTRL_OUTPUT_HIGH		0x01 /* Drive pin high */
#define AXP_GPIO_CTRL_INPUT			0x02 /* Input */
#define AXP_GPIO_STATE			0x94
#define AXP_GPIO_STATE_OFFSET			0