STRUCT RK3X_I2C_CALCED_TIMINGS(9)
π NAME π
struct rk3x_i2c_calced_timings β the calculated V1 timings, bestie β¨
Ok so real talk, this is a page straight out of the Kernel API Manual, and it's all about one lil struct that holds the timing numbers the driver crunched for you. Slay.
πΈ SYNOPSIS πΈ
struct rk3x_i2c_calced_timings {
unsigned long div_low;
unsigned long div_high;
unsigned int tuning;
};
Like, that's the whole vibe. Three fields, no drama. π«Ά
π Members π
div_lowβ the divider output for low, periodt. Lowkey does exactly what it says on the tin πdiv_highβ the divider output for high. Twin of the one above, just living its high life β¨tuningβ okay this one's the main character π it's used to adjust the setup/hold data time, the setup/hold start time, and the setup stop time for v1'scalc_timings. And listen β for old hardware, like anyone using v0'scalc_timings, this tuning should all be 0. No cap. Don't be out here putting non-zero values in there on v0 hardware, that's not the move π
π¦ SEE ALSO π¦
Kernel file ./drivers/i2c/busses/i2c-rk3x.c and its whole friend group:
struct i2c_spec_values(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_clk_notifier_cb(9)rk3x_i2c_setup(9)
π That's the whole page, bestie β go read the source, it's giving iconic.
Fr fr, this one lives in ./drivers/i2c/busses and the version stamp says October 2026. Mwah, catch you on the next manpage ππ
π¦ 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