STRUCT SCMI_VOLTAGE_INFO(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– NAME ๐Ÿ’–

struct scmi_voltage_info โ€” the lil struct whose whole job is describing one available SCMI Voltage Domain, and honestly? it ate ๐Ÿ’…

(this one lives in the Kernel API Manual, if you were wondering ๐Ÿซถ)


โœจ SYNOPSIS โœจ

       struct scmi_voltage_info {
           unsigned int id;
           bool segmented;
           bool negative_volts_allowed;
           bool async_level_set;
           char name[SCMI_MAX_STR_SIZE];
           unsigned int num_levels;
         #define SCMI_VOLTAGE_SEGMENT_LOW        0;
         #define SCMI_VOLTAGE_SEGMENT_HIGH       1;
         #define SCMI_VOLTAGE_SEGMENT_STEP       2;
           int *levels_uv;
        };

okay bestie, look at her. literally every field is a main character ๐ŸŒŸ


๐ŸŽ€ MEMBERS ๐ŸŽ€

  • id โ€” the domain ID, exactly as the platform advertised it. no cap, it's just the ID ๐Ÿชช
  • segmented โ€” this one decides how the entries of the levels_uv array are laid out. lowkey the vibe check of the whole struct:
    • when True, the entries are interpreted as triplets, and each triplet defines a segment representing a range of equally space voltages: <lowest_volts>, <highest_volt>, <step_uV> ๐Ÿ”ฅ
    • when False, the entries just represent a single discrete supported voltage level. simple. iconic. periodt โœจ
  • negative_volts_allowed โ€” True if any of the entries of levels_uv represent a negative voltage ๐Ÿ™ˆ (yes, voltages can go negative, she's flexible like that)
  • async_level_set โ€” True when the voltage domain supports asynchronous level set commands. go off, non-blocking queen ๐Ÿ‘‘
  • name โ€” the name the platform assigned to the Voltage Domain ๐Ÿท๏ธ
  • num_levels โ€” the number of total entries in levels_uv. literally just the count, bestie ๐Ÿงฎ
  • levels_uv โ€” the array of entries describing the available voltage levels for this domain. the moment, the lore, the data ๐ŸŒˆ

๐Ÿ” SEE ALSO ๐Ÿ”

kernel file ./include/linux/scmi_protocol.h โ€” and bestie, she comes with an entire friend group ๐Ÿซถ ngl it's giving family reunion:

  • 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_proto_ops(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)

okay that's the whole page, you're officially educated ๐Ÿ’œ this came from ./include/linux and it's dated October 2026 โ€” so yeah, timestamped, slay, go read the source bestie ๐Ÿฆ‹๐Ÿ’…

๐Ÿ“ฆ where this page comes from