STRUCT MVEBU_MPP_CTRL_SETTING(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 allowed
  • subname β€” (optional) an extra ctrl setting name, e.g. rts, cts β€” cute little bonus label πŸŽ€
  • variant β€” (optional) variant identifier mask, lowkey a filter
  • flags β€” (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