ab8500_charger_set_current(9)
π ab8500_charger_set_current(9) β like, the charger-current setter, bestie
okay so this one lives in the Kernel API Manual, and it's literally called ab8500_charger_set_current β yes, it does what it says on the tin π
β¨ NAME β¨
ab8500_charger_set_current β set charger current, periodt π
πΈ SYNOPSIS πΈ
int ab8500_charger_set_current (struct ab8500_charger *di , int ich_ua ,
int reg );
π¦ ARGUMENTS π¦
diβ pointer to theab8500_chargerstructure π«Ά like, the handle to the whole charger vibeich_uaβ charger current, in uA β‘ the actual number we're settingregβ select what charger register to set π― pick your fighter
π DESCRIPTION π
So we're setting the charger current. Iconic. But here's the tea π β there is no state machine in the AB to step the charger current up/down, and the whole reason for that is to avoid dips and spikes on MAIN, VBUS and VBAT when charging is started. So instead, we need to implement this charger current step-up/down right here in this function. Not me doing the AB's homework for it π
Returns an error code in case of failure, else 0 (on success) β¨ slay.
ngl bestie, the stepping is the whole point here β the AB isn't gonna do it for you, so don't skip it π
π§ SEE ALSO π§
Like, the entire extended universe of this driver, fr fr π Starting with the Kernel file ./drivers/power/supply/ab8500_charger.c:
struct ab8500_charger_interrupts(9)struct ab8500_charger(9)ab8500_power_supply_changed(9)ab8500_charger_get_ac_voltage(9)ab8500_charger_ac_cv(9)ab8500_charger_get_vbus_voltage(9)ab8500_charger_get_usb_current(9)ab8500_charger_get_ac_current(9)ab8500_charger_usb_cv(9)ab8500_charger_detect_chargers(9)ab8500_charger_max_usb_curr(9)ab8500_charger_read_usb_type(9)ab8500_charger_detect_usb_type(9)ab8500_charger_get_usb_cur(9)ab8500_charger_check_continue_stepping(9)ab8500_charger_set_vbus_in_curr(9)ab8500_charger_set_main_in_curr(9)ab8500_charger_set_output_curr(9)ab8500_charger_led_en(9)ab8500_charger_ac_en(9)ab8500_charger_usb_en(9)ab8500_charger_usb_check_enable(9)ab8500_charger_ac_check_enable(9)ab8500_charger_watchdog_kick(9)ab8500_charger_update_charger_current(9)ab8500_charger_check_vbat_work(9)ab8500_charger_check_hw_failure_work(9)ab8500_charger_kick_watchdog_work(9)ab8500_charger_ac_work(9)ab8500_charger_detect_usb_type_work(9)ab8500_charger_usb_link_attach_work(9)ab8500_charger_usb_link_status_work(9)ab8500_charger_check_usbchargernotok_work(9)ab8500_charger_check_main_thermal_prot_work(9)ab8500_charger_check_usb_thermal_prot_work(9)ab8500_charger_mainchunplugdet_handler(9)ab8500_charger_mainchplugdet_handler(9)ab8500_charger_mainextchnotok_handler(9)ab8500_charger_mainchthprotr_handler(9)ab8500_charger_mainchthprotf_handler(9)ab8500_charger_vbusdetf_handler(9)ab8500_charger_vbusdetr_handler(9)ab8500_charger_usblinkstatus_handler(9)ab8500_charger_usbchthprotr_handler(9)ab8500_charger_usbchthprotf_handler(9)ab8500_charger_usbchargernotokr_handler(9)ab8500_charger_chwdexp_handler(9)ab8500_charger_vbuschdropend_handler(9)ab8500_charger_vbusovv_handler(9)ab8500_charger_ac_get_property(9)ab8500_charger_usb_get_property(9)ab8500_charger_init_hw_registers(9)
and that's the whole page, bestie π it ships from ./drivers/power/supply, dated October 2026, and it's still out here being ab8500_charger_set_current(9) π mwah π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms