ab8500_charg...ck_vbat_work(9)
π ab8500_charger_check_vbat_work(9) β kernel API vibes π
okay so bestie, gather round, because we're looking at a kernel API manual page β yes, the real kind, from the Kernel API Manual, and it's about a little work function called ab8500_charger_check_vbat_work. lowkey iconic name, highkey a mouthful. let's get into it β¨
πΈ NAME πΈ
ab8500_charger_check_vbat_work β literally its whole job is to keep vbus current within spec, and it takes @work, which is a pointer to the work_struct structure π«Ά
β SYNOPSIS β
void ab8500_charger_check_vbat_work (struct work_struct *work );
that's it. that's the whole signature. no cap π
π¦ ARGUMENTS π¦
workβ okay so here's the thingβ¦ the original page literally says-- undescribed --π like the docs just gave up on this one. so yeah, it's theworkargument, and the manpage does not describe it. not me exposing the kernel docs like this π
π DESCRIPTION π
okay so the tea β: there's an asic bug (yes, a hardware bug, and it's giving main character energy for all the wrong reasons), and because of it, you have to lower the input current going to the vbus charger when charging at some specific levels. like, it's not optional, it's not a vibe, it's a requirement π
and here's the fine print, bestie β this issue is only valid for below a certain battery voltage. so it's a very specific little situation. above that voltage? not our problem. below it? buckle up π
so what does this function do? it makes sure that the allowed current limit isn't exceeded. that's it. that's the whole job. it's the friend who holds your bag and keeps you from overspending. a real one fr fr π«Άβ¨
π SEE ALSO π
the kernel file we're living in: ./drivers/power/supply/ab8500_charger.c
and here's the whole group chat of related functions and structs β every single one, no skips, because we don't do that here π
- 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_current(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_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)
likeβ¦ that's a lot of friends. but every single one of them showed up and we're respecting it π
and that's the page!! π¦ this lil manual lives over in ./drivers/power/supply, and it's dated October 2026 β so yeah, bookmark it, screenshot it, send it to the group chat. 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