Dear all,
As I'm still collecting more posts to reach this silly 10-posts-until-you-can-write-in-the-development-boards-limit I thought about providing useful information
So as I always wanted it I implemented a patched intel_mdf_battery that supports forcing charger currents higher than the environment suggests.
Facts:
When you connect any "real" or "smart" device to a regular USB port, it can only draw 100 mA or up to 500 mA if the host allows. This limits charging speed to about 350 mA at our Razr I (because you have to substract some amount for running the smartphone, in addition there is a ~350 mA cap in the charging chip).
Mostly all current USB ports are able to deliver much more power. In addition, sometimes you want to use a wall charger that does not correctly express its capability to deliver more than 500 mA (by shorting D+/D-).
There comes this handy patch:
By writing to an existing sysfs node for charger control (previously that featured only _limiting_ the total input current to 500 mA), you can now override the input current limit a) to 950 mA b) to 1500 mA (limit given by Razr I hardware).
How to:
Patch your custom compiled kernel with attached patch and install it
write 5 (950 mA) or 6 (no limit) to
/sys/devices/ipc/msic_battery/charge_enable
Charging current will be updated on next status update, usually every 30 seconds. Watch that update in dmesg or just see the actual charging current in
/sys/devices/pci0000:00/0000:00:00.4/i2c-1/1-0036/power_supply/max170xx_battery/current_now (or current_avg for a few seconds average)
In addition I am looking forward to implementing a charge threshold as the battery identifies itself as a 4,35V model. Being charged to 4,35 volts for prolonged time periods has a drastic negative effect on battery life! I wanna have an override because mostly I charge the device every day. Would be a lot better to use the battery from 85 to 35 percent (so max. 4,1V or so) than from 100 to 50 percent.
Is there any interest in those patches published, made nice (maybe a gui control program) or integrated in existing custom mods?
WARNING: I TAKE NO RESPONSIBILITY FOR ANY HARM DONE TO YOUR DEVICES BY USING THIS CHARGE CURRENT OVERRIDE.
YOU REALLY CAN FRY YOUR USB PORT!
(but it is very unlikely. Know about those handy charge-only usb cables that charge at up to 1A? I use them on different kinds of devices all the time and never hat any problem)
Oh, btw, attached patch also patches an ARRAY OUT OF BOUNDS write in original code! I did not look into details but i think that it did not have any effect because there are very unimportand arrays declared directly after the affected one.
As I'm still collecting more posts to reach this silly 10-posts-until-you-can-write-in-the-development-boards-limit I thought about providing useful information
So as I always wanted it I implemented a patched intel_mdf_battery that supports forcing charger currents higher than the environment suggests.
Facts:
When you connect any "real" or "smart" device to a regular USB port, it can only draw 100 mA or up to 500 mA if the host allows. This limits charging speed to about 350 mA at our Razr I (because you have to substract some amount for running the smartphone, in addition there is a ~350 mA cap in the charging chip).
Mostly all current USB ports are able to deliver much more power. In addition, sometimes you want to use a wall charger that does not correctly express its capability to deliver more than 500 mA (by shorting D+/D-).
There comes this handy patch:
By writing to an existing sysfs node for charger control (previously that featured only _limiting_ the total input current to 500 mA), you can now override the input current limit a) to 950 mA b) to 1500 mA (limit given by Razr I hardware).
How to:
Patch your custom compiled kernel with attached patch and install it
write 5 (950 mA) or 6 (no limit) to
/sys/devices/ipc/msic_battery/charge_enable
Charging current will be updated on next status update, usually every 30 seconds. Watch that update in dmesg or just see the actual charging current in
/sys/devices/pci0000:00/0000:00:00.4/i2c-1/1-0036/power_supply/max170xx_battery/current_now (or current_avg for a few seconds average)
In addition I am looking forward to implementing a charge threshold as the battery identifies itself as a 4,35V model. Being charged to 4,35 volts for prolonged time periods has a drastic negative effect on battery life! I wanna have an override because mostly I charge the device every day. Would be a lot better to use the battery from 85 to 35 percent (so max. 4,1V or so) than from 100 to 50 percent.
Is there any interest in those patches published, made nice (maybe a gui control program) or integrated in existing custom mods?
WARNING: I TAKE NO RESPONSIBILITY FOR ANY HARM DONE TO YOUR DEVICES BY USING THIS CHARGE CURRENT OVERRIDE.
YOU REALLY CAN FRY YOUR USB PORT!
(but it is very unlikely. Know about those handy charge-only usb cables that charge at up to 1A? I use them on different kinds of devices all the time and never hat any problem)
Oh, btw, attached patch also patches an ARRAY OUT OF BOUNDS write in original code! I did not look into details but i think that it did not have any effect because there are very unimportand arrays declared directly after the affected one.