cdns_i2c_isr(9)
β¨ cdns_i2c_isr(9) β¨
okay so bestie, welcome to the Kernel API Manual π this one's a little function with a big job and honestly? it's giving gatekeeper of the whole I2C vibe. let's get into it π
πΈ NAME πΈ
cdns_i2c_isr β the interrupt handler for the I2C device, no cap π₯
π¦ SYNOPSIS π¦
irqreturn_t cdns_i2c_isr (int irq , void *ptr );
π ARGUMENTS π
irqβ the irq number for the I2C device. that's the little knock at the door that says "hey, something happened" π«Άptrβ avoidpointer to thecdns_i2cstructure. it's your backstage pass to everything the driver knows β¨
π DESCRIPTION π
so what does it actually do? it passes control to the slave or the master, depending on what the i2c controller's current role is. literally that simple β the function checks who's on duty and hands over the aux accordingly π one handler, two possible lanes, main character energy either way π
β RETURN β
IRQ_HANDLED β always. every single time. it ate and left no crumbs π like yes bestie, the interrupt was handled, we promise π
π SEE ALSO π
peep the kernel file at ./drivers/i2c/busses/i2c-cadence.c for the whole friend group π§ and while you're there, say hi to:
enum cdns_i2c_mode(9)enum cdns_i2c_slave_state(9)struct cdns_i2c(9)cdns_i2c_init(9)cdns_i2c_runtime_suspend(9)cdns_i2c_runtime_resume(9)cdns_i2c_clear_bus_hold(9)cdns_i2c_slave_isr(9)cdns_i2c_master_isr(9)cdns_i2c_mrecv(9)cdns_i2c_msend(9)cdns_i2c_master_reset(9)cdns_i2c_master_xfer(9)cdns_i2c_master_xfer_atomic(9)cdns_i2c_func(9)cdns_i2c_calc_divs(9)cdns_i2c_setclk(9)cdns_i2c_clk_notifier_cb(9)cdns_i2c_detect_transfer_size(9)cdns_i2c_probe(9)cdns_i2c_remove(9)cdns_i2c_shutdown(9)
ok that's the whole page bestie, go forth and handle those interrupts π
sign-off time π this cutie lives in ./drivers/i2c/busses, and this page is from October 2026 β mwah, ily, go read the source π«Άβ¨
π¦ 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