STRUCT PMIC_MPP_PAD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct pmic_mpp_pad(9) β€” like, the whole kernel API manual vibe

okay bestie, welcome to the Kernel API Manual, section 9, and today's main character is literally a struct called pmic_mpp_pad ✨ no cap, this is the glow-up page for it.


✨ NAME ✨

struct pmic_mpp_pad β€” keep current MPP settings πŸŽ€

That's it. That's the job. It holds onto the MPP settings so they don't wander off. Iconic, honestly.


🌸 SYNOPSIS 🌸

struct pmic_mpp_pad {
    u16 base;
    bool is_enabled;
    bool out_value;
    bool output_enabled;
    bool input_enabled;
    bool paired;
    bool has_pullup;
    unsigned int    num_sources;
    unsigned int    power_source;
    unsigned int    amux_input;
    unsigned int    aout_level;
    unsigned int    pullup;
    unsigned int    function;
    unsigned int    drive_strength;
    unsigned int    dtest;
 };

look at her. fifteen fields. all accounted for. not one of them skipped, because we do not do that here πŸ’–


πŸ¦‹ Members πŸ¦‹

okay so let's meet the squad, one by one, because each of them matters:

  • base β€” address base in SPMI device. like, where she lives 🏠
  • is_enabled β€” set to false when the MPP should be put in high Z state. that's the off-switch energy, bestie.
  • out_value β€” cached pin output value. her little memory of what she was outputting 🫢
  • output_enabled β€” set to true if MPP output logic is enabled. yes queen, output πŸ’…
  • input_enabled β€” set to true if MPP input buffer logic is enabled. she's listening 🎧
  • paired β€” pin operates in paired mode. it takes two, fr fr πŸ‘―
  • has_pullup β€” pin has support to configure pullup. not everyone can, she can πŸ’ͺ
  • num_sources β€” number of power-sources supported by this MPP. count 'em πŸ”’
  • power_source β€” current power-source used. the one actively powering the vibe ⚑
  • amux_input β€” set the source for analog input. analog girlies rise 🌈
  • aout_level β€” analog output level πŸ“Ά
  • pullup β€” pullup resistor value. valid in Bidirectional mode only β€” like, do not try her in other modes, it will not go well πŸ™ˆ
  • function β€” see pmic_mpp_functions[]. iykyk πŸ”₯
  • drive_strength β€” amount of current in sink mode πŸŒ€
  • dtest β€” DTEST route selector. choose your route, main character πŸš—

πŸ‘‘ SEE ALSO πŸ‘‘

  • Kernel file ./drivers/pinctrl/qcom/pinctrl-spmi-mpp.c β€” go read the source, bestie, it's giving lore ⭐

lowkey reminder: pullup is only valid in Bidirectional mode, so don't be out here setting it in other modes and then acting surprised 😭

and that's the page, babe 🌷 this little number lives under ./drivers/pinctrl/qcom, dated October 2026, and it's filed as struct pmic_mpp_pad(9) β€” periodt πŸ’œπŸ§š

πŸ“¦ where this page comes from