STRUCT SCMI_PINCTRL_PROTO_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

struct scmi_pinctrl_proto_ops β€” bestie, this is literally the struct that holds all the operations the SCMI Pinctrl Protocol gives you ✨


πŸ¦‹ SYNOPSIS

struct scmi_pinctrl_proto_ops {
    int (*count_get)(const struct scmi_protocol_handle *ph, enum scmi_pinctrl_selector_type type);
    int (*name_get)(const struct scmi_protocol_handle *ph, u32 selector, enum scmi_pinctrl_selector_type type, const char **name);
    int (*group_pins_get)(const struct scmi_protocol_handle *ph, u32 selector, const unsigned int **pins, unsigned int *nr_pins);
    int (*function_groups_get)(const struct scmi_protocol_handle *ph, u32 selector, unsigned int *nr_groups, const unsigned int **groups);
    int (*mux_set)(const struct scmi_protocol_handle *ph, u32 selector, u32 group);
    int (*settings_get_one)(const struct scmi_protocol_handle *ph, u32 selector, enum scmi_pinctrl_selector_type type, enum scmi_pinctrl_conf_type config_type, u32 *config_value);
    int (*settings_get_all)(const struct scmi_protocol_handle *ph, u32 selector, enum scmi_pinctrl_selector_type type, unsigned int *nr_configs, enum scmi_pinctrl_conf_type *config_types, u32 *config_values);
    int (*settings_conf)(const struct scmi_protocol_handle *ph, u32 selector, enum scmi_pinctrl_selector_type type, unsigned int nr_configs, enum scmi_pinctrl_conf_type *config_type, u32 *config_value);
    int (*pin_request)(const struct scmi_protocol_handle *ph, u32 pin);
    int (*pin_free)(const struct scmi_protocol_handle *ph, u32 pin);
 };

πŸŽ€ MEMBERS

okay so here's the whole friend group, one function pointer at a time 🫢

  • count_get β€” hands you back the count of the registered elements in the given type. very "how many of y'all are there" energy πŸ’–
  • name_get β€” returns the name by index of the given type. it's giving "who are you again" but make it polite ✨
  • group_pins_get β€” returns the set of pins assigned to the specified group. the whole squad, assembled 😭
  • function_groups_get β€” returns the set of groups assigned to the specified function. like, which groups are matching the vibes of this function? πŸ’…
  • mux_set β€” sets the muxing function for groups of pins. muxing = the main character switch-up πŸ”₯
  • settings_get_one β€” returns one configuration parameter for the pin or group specified by config_type. just the one, no extra πŸ“
  • settings_get_all β€” returns all the configuration parameters for the pin or group. the full drop, no cap πŸ‘‘
  • settings_conf β€” sets the configuration parameter for the pin or group. this is the "actually do the thing" one 🌸
  • pin_request β€” aquire the pin before selecting the mux setting. (yes, that's "aquire" β€” spelling stays exactly as the source says it, iykyk πŸ™ˆ)
  • pin_free β€” frees the pin, acquired by request_pin call. bye bestie, you're released πŸ’œ

🌈 SEE ALSO

go read these next, fr fr β€” the kernel file ./include/linux/scmi_protocol.h plus all of these: struct scmi_base_info(9), struct scmi_clk_proto_ops(9), struct scmi_perf_proto_ops(9), struct scmi_power_proto_ops(9), struct scmi_sensor_reading(9), struct scmi_range_attrs(9), struct scmi_sensor_axis_info(9), struct scmi_sensor_intervals_info(9), struct scmi_sensor_info(9), struct scmi_sensor_proto_ops(9), struct scmi_reset_proto_ops(9), struct scmi_voltage_info(9), struct scmi_voltage_proto_ops(9), struct scmi_powercap_info(9), struct scmi_powercap_proto_ops(9), struct scmi_notify_ops(9), struct scmi_handle(9), module_scmi_driver(9), module_scmi_protocol(9) ⭐


ngl this page lives in ./include/linux, it says October 2026 on the tin, and it's the struct scmi...rl_proto_ops(9) page you just read. okay that's the whole thing β€” ily, go forth and mux responsibly πŸ’€πŸ’–
πŸ“¦ where this page comes from