i2c_parse_fw_timings(9)
π i2c_parse_fw_timings(9) β like, the Kernel API Manual one, bestie β¨
okay so this is a page from the Kernel API Manual, and it's literally all about pulling I2C timing params out of firmware. no cap, it's a whole vibe. π¦
β¨ NAME β¨
i2c_parse_fw_timings β get your I2C-related timing parameters straight out of firmware, periodt π
πΈ SYNOPSIS πΈ
void i2c_parse_fw_timings (struct device *dev , struct i2c_timings *t ,
bool use_defaults );
like, that's the whole signature. slay. π
π ARGUMENTS π
devβ the device we're scanning for those I2C timing properties πtβ thei2c_timingsstruct that's gonna get filled up with values, bestie π«use_defaultsβ aboolthat says "yes please use the sane defaults derived from the I2C specification when properties aren't found" β otherwise it just doesn't update anything, kthx π
π DESCRIPTION π
So the whole thing is: scan the device for the generic I2C properties that describe timing parameters for the signal, then fill the given struct with the results. Easy. Iconic. β¨
If a property wasn't found and use_defaults was true, then maximum timings are assumed β and those come straight from the I2C specification, ngl that's the whole point π«Ά
If use_defaults isn't used, the results will be as before, so drivers can apply their own defaults before calling this helper. The way that works is: that latter bit is mainly intended for avoiding regressions of existing drivers that want to switch over to this function. New drivers almost always should use the defaults, fr fr. π―
lowkey important: the "don't update" path is a compatibility thing for older drivers, not a cool new-driver flex π
π¦ SEE ALSO π¦
Kernel file ./drivers/i2c/i2c-core-base.c and honestly the whole friend group:
i2c_verify_client(9)i2c_adapter_lock_bus(9)i2c_adapter_trylock_bus(9)i2c_adapter_unlock_bus(9)i2c_new_client_device(9)i2c_unregister_device(9)i2c_find_device_by_fwnode(9)i2c_new_dummy_device(9)devm_i2c_new_dummy_device(9)i2c_new_ancillary_device(9)i2c_verify_adapter(9)i2c_handle_smbus_host_notify(9)i2c_add_adapter(9)i2c_add_numbered_adapter(9)i2c_del_adapter(9)devm_i2c_add_adapter(9)i2c_find_adapter_by_fwnode(9)i2c_get_adapter_by_fwnode(9)i2c_del_driver(9)__i2c_transfer(9)i2c_transfer(9)i2c_transfer_buffer_flags(9)i2c_get_device_id(9)i2c_client_get_device_id(9)i2c_get_dma_safe_msg_buf(9)i2c_put_dma_safe_msg_buf(9)
okay that's the whole page, mwah π this lil cutie lives down in ./drivers/i2c, it's dated October 2026, and the man page itself is i2c_parse_fw_timings(9) β go off, bestie, you ate that ππβ¨
π¦ 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