STRUCT SCMI_VOLTAGE_PROTO_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so bestie, welcome to struct scmi_voltage_proto_ops β€” this is the Kernel API Manual, section 9, and it's literally the struct that holds all the various operations that the SCMI Voltage Protocol hands you. like, every move this protocol can make lives in here. periodt.


✨ SYNOPSIS ✨

no cap, here's the whole thing, character for character:

struct scmi_voltage_proto_ops {
    int (*num_domains_get)(const struct scmi_protocol_handle *ph);
    const struct scmi_voltage_info __must_check *(*info_get) (const struct scmi_protocol_handle *ph, u32 domain_id);
    int (*config_set)(const struct scmi_protocol_handle *ph, u32 domain_id, u32 config);
  #define SCMI_VOLTAGE_ARCH_STATE_OFF             0x0;
  #define SCMI_VOLTAGE_ARCH_STATE_ON              0x7;
    int (*config_get)(const struct scmi_protocol_handle *ph, u32 domain_id, u32 *config);
    int (*level_set)(const struct scmi_protocol_handle *ph, u32 domain_id, enum scmi_voltage_level_mode mode, s32 volt_uV);
    int (*level_get)(const struct scmi_protocol_handle *ph, u32 domain_id, s32 *volt_uV);
 };

it's giving function-pointer buffet and honestly? we ate. πŸ“


πŸŽ€ MEMBERS πŸŽ€

one bullet per icon, let's go:

  • num_domains_get β€” gets you the count of voltage domains provided by SCMI. like a headcount but for voltage domains πŸ’–
  • info_get β€” gets the information of the specified domain. you want the tea on a domain? this is the tea.
  • config_set β€” sets the config for the specified domain. you're the main character, you decide.
  • config_get β€” gets the config of the specified domain. reading the room, essentially.
  • level_set β€” sets the voltage level for the specified domain. yes bestie, we're adjusting.
  • level_get β€” gets the voltage level of the specified domain. what's the vibe? this tells you. ✨

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, fr fr β€” all of these live in the kernel file ./include/linux/scmi_protocol.h:

  • 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_powercap_info(9)
  • struct scmi_powercap_proto_ops(9)
  • struct scmi_pinctrl_proto_ops(9)
  • struct scmi_notify_ops(9)
  • struct scmi_handle(9)
  • module_scmi_driver(9)
  • module_scmi_protocol(9)

like, the entire scmi cinematic universe. iykyk πŸ‘‘


anyway that's the whole page bestie, hope it slayed 🌈 β€” this one's from ./include/linux, dated October 2026, filed under struct scmi...ge_proto_ops(9) in the Kernel API Manual. mwah, go touch some hardware πŸ’œπŸ«Ά

πŸ“¦ where this page comes from