STRUCT MVEBU_MPP_CTRL_SETTING(9)
π struct mvebu_mpp_ctrl_setting(9) β Kernel API Manual, but make it make sense
okay bestie, welcome to the Kernel API Manual page for struct mvebu_mpp_ctrl_setting, no cap this is the whole thing and we are gonna get through it together π«Ά
β¨ NAME β¨
struct mvebu_mpp_ctrl_setting β the little struct whose whole job is to describe a mpp ctrl setting π«
π SYNOPSIS π
struct mvebu_mpp_ctrl_setting {
u8 val;
const char *name;
const char *subname;
u8 variant;
u8 flags;
#define MVEBU_SETTING_GPO (1 << 0);
#define MVEBU_SETTING_GPI (1 << 1);
};
like, that's the whole vibe right there β¬οΈ iconic honestly
π§© Members π§©
valβ the ctrl setting value, that's it, that's the number πnameβ the ctrl setting name, e.g.uart2,spi0β it's unique per mpp_mode fr fr, no dupes allowedsubnameβ (optional) an extra ctrl setting name, e.g.rts,ctsβ cute little bonus label πvariantβ (optional) variant identifier mask, lowkey a filterflagsβ (private) the flags that store gpi/gpo/gpio capabilities π
π Description π
so a ctrl_setting describes one specific internal mux function that a mpp pin can be switched to. the value (val) gets written into the corresponding register for the common mpp pin configuration registers on MVEBU. and the SoC specific mpp_get/_set function may use val to distinguish between different settings π
the name is what gets used to switch to this setting in the DT description, e.g. marvell,function = "uart2". and subname? that one is only for debugging purposes, it's just there for the vibes π
if name is one of "gpi", "gpo", "gpio", then gpio capabilities get parsed during initialization and stored in flags β¨
the variant can be used to combine different revisions of one SoC into a common pinctrl driver. it gets matched (AND) with variant of soc_info to determine if a setting is available on the current SoC revision β so yeah, it's doing a vibe check on your silicon π
π SEE ALSO π
Kernel file ./drivers/pinctrl/mvebu/pinctrl-mvebu.h struct mvebu_mpp_ctrl_data(9), struct mvebu_mpp_ctrl(9), struct mvebu_mpp_mode(9), struct mvebu_pinctrl_soc_info(9)
go read those next bestie, they're all in the same friend group π¦
this page is literally from ./drivers/pinctrl/mvebu and it's dated October 2026 β so yeah, future-coded but still valid π periodt, that's the whole manpage, love u bye ππ
π¦ 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