diff options
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c')
-rw-r--r-- | firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c | 21 |
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 |
86 | void usb_charging_maxcurrent_change(int maxcurrent) | 90 | void 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 | ||