@@ -72,15 +72,23 @@ static void enable_ldo(busio_i2c_obj_t *i2c, uint8_t ldo) {
72
72
set_bit_in_register (i2c , 0x90 , 1 << ldo );
73
73
}
74
74
75
+ static void enable_dldo (busio_i2c_obj_t * i2c , uint8_t ldo ) {
76
+ if (ldo == 1 ) {
77
+ write_register8 (i2c , 0x99 , 0x1C ); // 3300mV
78
+ set_bit_in_register (i2c , 0x90 , 0x80 );
79
+ }
80
+ }
81
+
75
82
// Init the AXP2101 by hand as to not include XPOWERS lib.
76
83
static void pmic_init (busio_i2c_obj_t * i2c ) {
77
- enable_ldo (i2c , 0 );
78
- enable_ldo (i2c , 1 );
79
- enable_ldo (i2c , 2 );
80
- enable_ldo (i2c , 3 );
81
- enable_ldo (i2c , 5 );
82
- write_register8 (i2c , 0x18 , 0x0F );
83
- write_register8 (i2c , 0x27 , 0x1F );
84
+ enable_ldo (i2c , 0 ); // _aldo1
85
+ enable_ldo (i2c , 1 ); // _aldo2
86
+ enable_ldo (i2c , 2 ); // _aldo3
87
+ enable_ldo (i2c , 3 ); // _aldo4
88
+ enable_ldo (i2c , 5 ); // _bldo2
89
+ enable_dldo (i2c , 1 ); // _dldo1
90
+ write_register8 (i2c , 0x18 , 0x0F ); // RTC coin cell + 300mAh main charge limit
91
+ write_register8 (i2c , 0x27 , 0x1F ); // 2s on time + 10s off time
84
92
}
85
93
86
94
0 commit comments