rk3x_i2c_clk_notifier_cb(9)
okay so bestie, welcome to the Kernel API Manual β this page is all about rk3x_i2c_clk_notifier_cb(9), and it's giving clock rate change callback realness π
β¨
π NAME π
rk3x_i2c_clk_notifier_cb β the Clock rate change callback. literally that's the name, no cap π
πΈ SYNOPSIS πΈ
int rk3x_i2c_clk_notifier_cb (struct notifier_block *nb , unsigned long
event , void *data );
π¦ ARGUMENTS π¦
nbβ pointer to notifier block π«Άeventβ notification reason πdataβ pointer to notification data object β¨
π DESCRIPTION π
so the callback does a vibe check on whether a valid bus frequency can be generated after the change. if it can, the change gets acknowledged β ; if not, the change is aborted π.
also highkey important: new dividers are written to the HW in the pre- or post change notification, depending on the scaling direction β yes, that's the clock math tea βπ
and for the receipts: code adapted from i2c-cadence.c π
β RETURN β
NOTIFY_STOPβ the rate change should be aborted πNOTIFY_OKβ acknowledge the change βNOTIFY_DONEβ the notification is considered irrelevant π«
π SEE ALSO π
Kernel file: ./drivers/i2c/busses/i2c-rk3x.c
struct i2c_spec_values(9)struct rk3x_i2c_calced_timings(9)struct rk3x_i2c_soc_data(9)struct rk3x_i2c(9)rk3x_i2c_start(9)rk3x_i2c_stop(9)rk3x_i2c_prepare_read(9)rk3x_i2c_fill_transmit_buf(9)rk3x_i2c_get_spec(9)rk3x_i2c_v0_calc_timings(9)rk3x_i2c_v1_calc_timings(9)rk3x_i2c_setup(9)
mwah π this page is signed off from ./drivers/i2c/busses, dated October 2026, and it's the rk3x_i2c_clk_notifier_cb(9) page β catch u later, bestie! π«Άπ
π¦ 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