STRUCT SCMI_VOLTAGE_INFO(9)
๐ 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 thelevels_uvarray 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 โจ
- when True, the entries are interpreted as triplets, and each triplet defines a segment representing a range of equally space voltages:
negative_volts_allowedโ True if any of the entries oflevels_uvrepresent 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 inlevels_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
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms