summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c')
-rw-r--r--firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c b/firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c
index 53451ffa6c..c8498c4dbc 100644
--- a/firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c
+++ b/firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c
@@ -78,6 +78,10 @@ void power_init(void)
78 (1 << AXP_ADC_INTERNAL_TEMP) | 78 (1 << AXP_ADC_INTERNAL_TEMP) |
79 (1 << AXP_ADC_APS_VOLTAGE)); 79 (1 << AXP_ADC_APS_VOLTAGE));
80 80
81 /* Configure USB charging */
82 axp_set_vhold_level(4400);
83 usb_charging_maxcurrent_change(100);
84
81 /* Short delay to give power outputs time to stabilize */ 85 /* Short delay to give power outputs time to stabilize */
82 mdelay(200); 86 mdelay(200);
83} 87}
@@ -85,7 +89,22 @@ void power_init(void)
85#ifdef HAVE_USB_CHARGING_ENABLE 89#ifdef HAVE_USB_CHARGING_ENABLE
86void usb_charging_maxcurrent_change(int maxcurrent) 90void usb_charging_maxcurrent_change(int maxcurrent)
87{ 91{
88 axp_set_charge_current(maxcurrent); 92 int vbus_limit;
93 int charge_current;
94
95 /* Note that the charge current setting is a maximum: it will be
96 * reduced dynamically by the AXP192 so the combined load is less
97 * than the set VBUS current limit. */
98 if(maxcurrent <= 100) {
99 vbus_limit = AXP_VBUS_LIMIT_100mA;
100 charge_current = 550;
101 } else {
102 vbus_limit = AXP_VBUS_LIMIT_500mA;
103 charge_current = 550;
104 }
105
106 axp_set_vbus_limit(vbus_limit);
107 axp_set_charge_current(charge_current);
89} 108}
90#endif 109#endif
91 110