STRUCT SPMI_CONTROLLER(9)
π NAME π
struct spmi_controller β literally the interface to the SPMI master controller, and yes bestie this is the whole ~vibe~ of the page π
So welcome to the Kernel API Manual entry for this little icon β think of it as the group chat between the kernel and your SPMI master controller. It's giving "main character energy" for the whole bus ngl π
β¨ SYNOPSIS β¨
struct spmi_controller {
struct device dev;
unsigned int nr;
int (*cmd)(struct spmi_controller *ctrl, u8 opcode, u8 sid);
int (*read_cmd)(struct spmi_controller *ctrl, u8 opcode, u8 sid, u16
addr, u8 *buf, size_t len);
int (*write_cmd)(struct spmi_controller *ctrl, u8 opcode, u8 sid,
u16 addr, const u8 *buf, size_t len);
u8 priv[];
};
Like, that's the whole struct, no cap. Every field matters, so let's go through them one by one π
π Members π
devβ the driver model representation of the device π«Ά that's its whole job and it atenrβ the board-specific number identifier for this controller/bus. Yes it's a number, yes it's board-specific, yes it's iconic πcmdβ sends a non-data command sequence on the SPMI bus. No data, just vibes β¨read_cmdβ sends a register read command sequence on the SPMI bus, iykyk πwrite_cmdβ sends a register write command sequence on the SPMI bus, the pen-to-paper moment ποΈprivβ array of private data. It's private, mind your business π (we stan an array of private data tho)
πΈ SEE ALSO πΈ
Kernel file ./include/linux/spmi.h β go read it, bestie, it's right there:
struct spmi_device(9)spmi_controller_put(9)struct spmi_driver(9)spmi_driver_unregister(9)
All four, no skips, no shortcuts π
ok that's the whole page!! every field, every member, every reference, all present and accounted for π
later babes β this one's from ./include/linux, dated October 2026, and it's literally just struct spmi_controller(9) in all its glory βπ¦π
π¦ 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