Skip to content

Commit 895cd26

Browse files
authored
Merge pull request #7422 from CDarius/m5stack_stick_c
Add M5Stack Stick C board
2 parents 0ed5c2d + a2668cd commit 895cd26

File tree

6 files changed

+678
-0
lines changed

6 files changed

+678
-0
lines changed
Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
/*
2+
*
3+
* The MIT License (MIT)
4+
*
5+
* Copyright (c) 2022 Stephen Oliver
6+
* Copyright (c) 2023 CDarius
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
28+
#ifndef MICROPY_AXP192_H
29+
#define MICROPY_AXP192_H
30+
31+
#define AXP192_I2C_ADDRESS 0x34
32+
33+
#define AXP192_EXTEN_DCDC2_CTRL 0x10
34+
#define AXP192_EXTEN_DCDC2_CTRL_EXTEN 0b00000100
35+
#define AXP192_EXTEN_DCDC2_CTRL_DCDC2 0b00000001
36+
37+
#define AXP192_DCDC13_LDO23_CTRL 0x12
38+
#define AXP192_DCDC13_LDO23_CTRL_EXTEN 0b01000000
39+
#define AXP192_DCDC13_LDO23_CTRL_LDO3 0b00001000
40+
#define AXP192_DCDC13_LDO23_CTRL_LDO2 0b00000100
41+
#define AXP192_DCDC13_LDO23_CTRL_DCDC3 0b00000010
42+
#define AXP192_DCDC13_LDO23_CTRL_DCDC1 0b00000001
43+
44+
#define AXP192_DCDC2_OUT_VOLTAGE 0x25
45+
46+
#define AXP192_DCDC1_OUT_VOLTAGE 0x26
47+
#define AXP192_DCDC1_OUT_VOLTAGE_3_350V 0b01101010
48+
49+
#define AXP192_DCDC3_OUT_VOLTAGE 0x27
50+
51+
52+
#define AXP192_LDO23_OUT_VOLTAGE 0x28
53+
#define AXP192_LDO23_OUT_VOLTAGE_LDO2_3_0V 0b11000000
54+
#define AXP192_LDO23_OUT_VOLTAGE_LDO2_2_8V 0b10100000
55+
#define AXP192_LDO23_OUT_VOLTAGE_LDO2_MASK 0b11110000
56+
#define AXP192_LDO23_OUT_VOLTAGE_LDO3_3_0V 0b00001100
57+
#define AXP192_LDO23_OUT_VOLTAGE_LDO3_2_8V 0b00001010
58+
#define AXP192_LDO23_OUT_VOLTAGE_LDO3_MASK 0b00001111
59+
60+
#define AXP192_VBUS_IPSOUT 0x30
61+
#define AXP192_VBUS_IPSOUT_IGNORE_VBUSEN 0b10000000
62+
#define AXP192_VBUS_IPSOUT_VHOLD_LIMIT 0b01000000
63+
#define AXP192_VBUS_IPSOUT_VHOLD_VOLTAGE_4_4V 0b00100000
64+
#define AXP192_VBUS_IPSOUT_VHOLD_VOLTAGE_MASK 0b00111000
65+
#define AXP192_VBUS_IPSOUT_VBUS_LIMIT_CURRENT 0b00000010
66+
#define AXP192_VBUS_IPSOUT_VBUS_LIMIT_CURRENT_500mA 0b00000001
67+
#define AXP192_VBUS_IPSOUT_VBUS_LIMIT_CURRENT_100mA 0b00000000
68+
69+
#define AXP192_POWER_OFF_VOLTAGE 0x31
70+
#define AXP192_POWER_OFF_VOLTAGE_2_6V 0b0000
71+
#define AXP192_POWER_OFF_VOLTAGE_2_7V 0b0001
72+
#define AXP192_POWER_OFF_VOLTAGE_2_8V 0b0010
73+
#define AXP192_POWER_OFF_VOLTAGE_2_9V 0b0011
74+
#define AXP192_POWER_OFF_VOLTAGE_3_0V 0b0100
75+
#define AXP192_POWER_OFF_VOLTAGE_3_1V 0b0101
76+
#define AXP192_POWER_OFF_VOLTAGE_3_2V 0b0110
77+
#define AXP192_POWER_OFF_VOLTAGE_3_3V 0b0111
78+
#define AXP192_POWER_OFF_VOLTAGE_MASK 0b0111
79+
80+
#define AXP192_POWER_OFF_BATT_CHGLED_CTRL 0x32
81+
#define AXP192_POWER_OFF_BATT_CHGLED_CTRL_OFF 0b10000000
82+
83+
#define AXP192_CHARGING_CTRL1 0x33
84+
#define AXP192_CHARGING_CTRL1_ENABLE 0b10000000
85+
#define AXP192_CHARGING_CTRL1_VOLTAGE_4_36V 0b01100000
86+
#define AXP192_CHARGING_CTRL1_VOLTAGE_4_20V 0b01000000
87+
#define AXP192_CHARGING_CTRL1_VOLTAGE_4_15V 0b00100000
88+
#define AXP192_CHARGING_CTRL1_VOLTAGE_4_10V 0b00000000
89+
#define AXP192_CHARGING_CTRL1_VOLTAGE_MASK 0b01100000
90+
#define AXP192_CHARGING_CTRL1_CHARGING_THRESH_15PERC 0b00010000
91+
#define AXP192_CHARGING_CTRL1_CHARGING_THRESH_10PERC 0b00000000
92+
#define AXP192_CHARGING_CTRL1_CHARGING_THRESH_MASK 0b00010000
93+
#define AXP192_CHARGING_CTRL1_CURRENT_100mA 0b00000000
94+
#define AXP192_CHARGING_CTRL1_CURRENT_190mA 0b00000001
95+
#define AXP192_CHARGING_CTRL1_CURRENT_280mA 0b00000010
96+
#define AXP192_CHARGING_CTRL1_CURRENT_360mA 0b00000011
97+
#define AXP192_CHARGING_CTRL1_CURRENT_450mA 0b00000100
98+
#define AXP192_CHARGING_CTRL1_CURRENT_550mA 0b00000101
99+
#define AXP192_CHARGING_CTRL1_CURRENT_630mA 0b00000110
100+
#define AXP192_CHARGING_CTRL1_CURRENT_700mA 0b00000111
101+
#define AXP192_CHARGING_CTRL1_CURRENT_780mA 0b00001000
102+
#define AXP192_CHARGING_CTRL1_CURRENT_880mA 0b00001001
103+
#define AXP192_CHARGING_CTRL1_CURRENT_960mA 0b00001010
104+
#define AXP192_CHARGING_CTRL1_CURRENT_1000mA 0b00001011
105+
106+
#define AXP192_CHARGING_CTRL1_CURRENT_MASK 0b00001111
107+
108+
#define AXP192_CHARGING_CTRL2 0x34
109+
110+
#define AXP192_BACKUP_BATT 0x35
111+
#define AXP192_BACKUP_BATT_CHARGING_ENABLE 0b10000000
112+
#define AXP192_BACKUP_BATT_CHARGING_VOLTAGE_2_5V 0b01100000
113+
#define AXP192_BACKUP_BATT_CHARGING_VOLTAGE_3_0V 0b00100000
114+
#define AXP192_BACKUP_BATT_CHARGING_VOLTAGE_3_1V 0b00000000
115+
#define AXP192_BACKUP_BATT_CHARGING_VOLTAGE_MASK 0b01100000
116+
#define AXP192_BACKUP_BATT_CHARGING_CURRENT_400uA 0b00000011
117+
#define AXP192_BACKUP_BATT_CHARGING_CURRENT_200uA 0b00000010
118+
#define AXP192_BACKUP_BATT_CHARGING_CURRENT_100uA 0b00000001
119+
#define AXP192_BACKUP_BATT_CHARGING_CURRENT_50uA 0b00000000
120+
#define AXP192_BACKUP_BATT_CHARGING_CURRENT_MASK 0b00000011
121+
122+
#define AXP192_PEK 0x36
123+
#define AXP192_PEK_SHORT_PRESS_1S 0b11000000
124+
#define AXP192_PEK_SHORT_PRESS_512mS 0b10000000
125+
#define AXP192_PEK_SHORT_PRESS_256mS 0b01000000
126+
#define AXP192_PEK_SHORT_PRESS_128mS 0b00000000
127+
#define AXP192_PEK_SHORT_PRESS_MASK 0b11000000
128+
#define AXP192_PEK_LONG_PRESS_2_5S 0b00110000
129+
#define AXP192_PEK_LONG_PRESS_2_0S 0b00100000
130+
#define AXP192_PEK_LONG_PRESS_1_5S 0b00010000
131+
#define AXP192_PEK_LONG_PRESS_1_0S 0b00000000
132+
#define AXP192_PEK_LONG_PRESS_MASK 0b00110000
133+
#define AXP192_PEK_LONG_PRESS_POWER_OFF 0b00001000
134+
#define AXP192_PEK_PWROK_DELAY_64mS 0b00000100
135+
#define AXP192_PEK_PWROK_DELAY_32mS 0b00000000
136+
#define AXP192_PEK_PWROK_DELAY_MASK 0b00000100
137+
#define AXP192_PEK_POWER_OFF_TIME_12S 0b00000011
138+
#define AXP192_PEK_POWER_OFF_TIME_8S 0b00000010
139+
#define AXP192_PEK_POWER_OFF_TIME_6S 0b00000001
140+
#define AXP192_PEK_POWER_OFF_TIME_4S 0b00000000
141+
#define AXP192_PEK_POWER_OFF_TIME_MASK 0b00000011
142+
143+
#define AXP192_BATT_TEMP_LOW_THRESH 0x38
144+
#define AXP192_BATT_TEMP_HIGH_THRESH 0x39
145+
#define AXP192_BATT_TEMP_HIGH_THRESH_DEFAULT 0b11111100
146+
147+
#define AXP192_IRQ_1_ENABLE 0x40
148+
#define AXP192_IRQ_2_ENABLE 0x41
149+
#define AXP192_IRQ_3_ENABLE 0x42
150+
#define AXP192_IRQ_4_ENABLE 0x43
151+
#define AXP192_IRQ_5_ENABLE 0x4a
152+
153+
#define AXP192_IRQ_1_STATUS 0x44
154+
#define AXP192_IRQ_2_STATUS 0x45
155+
#define AXP192_IRQ_3_STATUS 0x46
156+
#define AXP192_IRQ_4_STATUS 0x47
157+
#define AXP192_IRQ_5_STATUS 0x4d
158+
159+
#define AXP192_IRQ_3_PEK_SHORT_PRESS 0b00000010
160+
#define AXP192_IRQ_3_PEK_LONG_PRESS 0b00000001
161+
162+
#define AXP192_ADC_ACIN_VOLTAGE_H 0x56
163+
#define AXP192_ADC_ACIN_VOLTAGE_L 0x57
164+
#define AXP192_ADC_ACIN_CURRENT_H 0x58
165+
#define AXP192_ADC_ACIN_CURRENT_L 0x59
166+
#define AXP192_ADC_VBUS_VOLTAGE_H 0x5a
167+
#define AXP192_ADC_VBUS_VOLTAGE_L 0x5b
168+
#define AXP192_ADC_VBUS_CURRENT_H 0x5c
169+
#define AXP192_ADC_VBUS_CURRENT_L 0x5d
170+
#define AXP192_ADC_INTERNAL_TEMP_H 0x5e
171+
#define AXP192_ADC_INTERNAL_TEMP_L 0x5f
172+
173+
#define AXP192_ADC_BATT_VOLTAGE_H 0x78
174+
#define AXP192_ADC_BATT_VOLTAGE_L 0x79
175+
176+
#define AXP192_ADC_BATT_POWER_H 0x70
177+
#define AXP192_ADC_BATT_POWER_M 0x71
178+
#define AXP192_ADC_BATT_POWER_L 0x72
179+
180+
#define AXP192_ADC_BATT_CHARGE_CURRENT_H 0x7a
181+
#define AXP192_ADC_BATT_CHARGE_CURRENT_L 0x7b
182+
#define AXP192_ADC_BATT_DISCHARGE_CURRENT_H 0x7c
183+
#define AXP192_ADC_BATT_DISCHARGE_CURRENT_L 0x7d
184+
#define AXP192_ADC_APS_VOLTAGE_H 0x7e
185+
#define AXP192_ADC_APS_VOLTAGE_L 0x7f
186+
187+
#define AXP192_ADC_ENABLE_1 0x82
188+
#define AXP192_ADC_ENABLE_1_BATT_VOL 0b10000000
189+
#define AXP192_ADC_ENABLE_1_BATT_CUR 0b01000000
190+
#define AXP192_ADC_ENABLE_1_ACIN_VOL 0b00100000
191+
#define AXP192_ADC_ENABLE_1_ACIN_CUR 0b00010000
192+
#define AXP192_ADC_ENABLE_1_VBUS_VOL 0b00001000
193+
#define AXP192_ADC_ENABLE_1_VBUS_CUR 0b00000100
194+
#define AXP192_ADC_ENABLE_1_APS_VOL 0b00000010
195+
#define AXP192_ADC_ENABLE_1_TS_PIN 0b00000001
196+
197+
#define AXP192_ADC_ENABLE_2 0x83
198+
#define AXP192_ADC_ENABLE_2_TEMP_MON 0b10000000
199+
#define AXP192_ADC_ENABLE_2_GPIO0 0b00001000
200+
#define AXP192_ADC_ENABLE_2_GPIO1 0b00000100
201+
#define AXP192_ADC_ENABLE_2_GPIO2 0b00000010
202+
#define AXP192_ADC_ENABLE_2_GPIO3 0b00000001
203+
204+
#define AXP192_ADC_TS 0x84
205+
#define AXP192_ADC_TS_SAMPLE_200HZ 0b11000000
206+
#define AXP192_ADC_TS_SAMPLE_100HZ 0b10000000
207+
#define AXP192_ADC_TS_SAMPLE_50HZ 0b01000000
208+
#define AXP192_ADC_TS_SAMPLE_25HZ 0b00000000
209+
#define AXP192_ADC_TS_SAMPLE_MASK 0b11000000
210+
#define AXP192_ADC_TS_OUT_CUR_80uA 0b00110000
211+
#define AXP192_ADC_TS_OUT_CUR_60uA 0b00100000
212+
#define AXP192_ADC_TS_OUT_CUR_40uA 0b00010000
213+
#define AXP192_ADC_TS_OUT_CUR_20uA 0b00000000
214+
#define AXP192_ADC_TS_OUT_CUR_MASK 0b00110000
215+
#define AXP192_ADC_TS_PIN_TEMP_MON 0b00000000
216+
#define AXP192_ADC_TS_PIN_EXTERN_ADC 0b00000100
217+
#define AXP192_ADC_TS_PIN_OUT_ALWAYS 0b00000011
218+
#define AXP192_ADC_TS_PIN_OUT_SAVE_ENG 0b00000010
219+
#define AXP192_ADC_TS_PIN_OUT_CHG 0b00000001
220+
#define AXP192_ADC_TS_PIN_OUT_DIS 0b00000000
221+
#define AXP192_ADC_TS_PIN_OUT_MASK 0b00000011
222+
223+
#define AXP192_GPIO0_FUNCTION 0x90
224+
#define AXP192_GPIO0_FUNCTION_FLOATING 0b00000111
225+
#define AXP192_GPIO0_FUNCTION_LOW_OUTPUT 0b00000101
226+
#define AXP192_GPIO0_FUNCTION_ADC_INPUT 0b00000100
227+
#define AXP192_GPIO0_FUNCTION_LDO_OUTPUT 0b00000010
228+
#define AXP192_GPIO0_FUNCTION_GENERAL_INPUT 0b00000001
229+
#define AXP192_GPIO0_FUNCTION_OPEN_DRAIN_OUTPUT 0b00000000
230+
231+
#define AXP192_GPIO0_LDO_VOLTAGE 0x91
232+
#define AXP192_GPIO0_LDO_VOLTAGE_3_3V 0b11110000
233+
#define AXP192_GPIO0_LDO_VOLTAGE_2_8V 0b10100000
234+
#define AXP192_GPIO0_LDO_VOLTAGE_1_8V 0b00000000
235+
236+
237+
#define AXP192_GPIO1_FUNCTION 0x92
238+
#define AXP192_GPIO1_FUNCTION_FLOATING 0b00000111
239+
#define AXP192_GPIO1_FUNCTION_LOW_OUTPUT 0b00000101
240+
#define AXP192_GPIO1_FUNCTION_ADC_INPUT 0b00000100
241+
#define AXP192_GPIO1_FUNCTION_PWM1_OUTPUT 0b00000010
242+
#define AXP192_GPIO1_FUNCTION_GENERAL_INPUT 0b00000001
243+
#define AXP192_GPIO1_FUNCTION_OPEN_DRAIN_OUTPUT 0b00000000
244+
245+
246+
#define AXP192_GPIO2_FUNCTION 0x93
247+
#define AXP192_GPIO2_FUNCTION_FLOATING 0b00000111
248+
#define AXP192_GPIO2_FUNCTION_LOW_OUTPUT 0b00000101
249+
#define AXP192_GPIO2_FUNCTION_ADC_INPUT 0b00000100
250+
#define AXP192_GPIO1_FUNCTION_PWM2_OUTPUT 0b00000010
251+
#define AXP192_GPIO2_FUNCTION_GENERAL_INPUT 0b00000001
252+
#define AXP192_GPIO2_FUNCTION_OPEN_DRAIN_OUTPUT 0b00000000
253+
254+
#define AXP192_PWM1_DUTY_RATIO 0x9A
255+
256+
#endif

0 commit comments

Comments
 (0)