Lines Matching +full:performance +full:- +full:domain
1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 2018-2021 ARM Ltd.
21 * struct scmi_revision_info - version information structure
30 * @impl_ver: A vendor-specific implementation version.
32 * @sub_vendor_id: A sub-vendor identifier(Null terminated ASCII string)
76 * struct scmi_clk_proto_ops - represents the various operations provided
121 * struct scmi_perf_proto_ops - represents the various operations provided
122 * by SCMI Performance Protocol
124 * @num_domains_get: gets the number of supported performance domains
125 * @info_get: get the information of a performance domain
126 * @limits_set: sets limits on the performance level of a domain
127 * @limits_get: gets limits on the performance level of a domain
128 * @level_set: sets the performance level of a domain
129 * @level_get: gets the performance level of a domain
133 * to sustained performance level mapping
135 * to sustained performance level mapping
136 * @est_power_get: gets the estimated power cost for a given performance domain
146 (const struct scmi_protocol_handle *ph, u32 domain);
147 int (*limits_set)(const struct scmi_protocol_handle *ph, u32 domain,
149 int (*limits_get)(const struct scmi_protocol_handle *ph, u32 domain,
151 int (*level_set)(const struct scmi_protocol_handle *ph, u32 domain,
153 int (*level_get)(const struct scmi_protocol_handle *ph, u32 domain,
156 u32 domain);
158 struct device *dev, u32 domain);
159 int (*freq_set)(const struct scmi_protocol_handle *ph, u32 domain,
161 int (*freq_get)(const struct scmi_protocol_handle *ph, u32 domain,
163 int (*est_power_get)(const struct scmi_protocol_handle *ph, u32 domain,
166 u32 domain);
171 * struct scmi_power_proto_ops - represents the various operations provided
175 * @name_get: gets the name of a power domain
176 * @state_set: sets the power state of a power domain
177 * @state_get: gets the power state of a power domain
182 u32 domain);
184 #define SCMI_POWER_STATE_ID_MASK (BIT(28) - 1)
190 int (*state_set)(const struct scmi_protocol_handle *ph, u32 domain,
192 int (*state_get)(const struct scmi_protocol_handle *ph, u32 domain,
197 * struct scmi_sensor_reading - represent a timestamped read
211 * struct scmi_range_attrs - specifies a sensor or axis values' range
221 * struct scmi_sensor_axis_info - describes one sensor axes
224 * @scale: Power-of-10 multiplier applied to the axis unit.
225 * @name: NULL-terminated string representing axes name as advertised by
231 * @exponent: Extended attribute representing the power-of-10 multiplier that
249 * struct scmi_sensor_intervals_info - describes number and type of available
260 * lesser-than-64-bytes dynamic allocation for small @count
284 * struct scmi_sensor_info - represents information related to one of the
288 * @scale: Power-of-10 multiplier applied to the sensor unit.
293 * @tstamp_scale: Power-of-10 multiplier applied to the sensor timestamps to
301 * @name: NULL-terminated string representing sensor name as advertised by
312 * @exponent: Extended attribute representing the power-of-10 multiplier that is
475 * struct scmi_sensor_proto_ops - represents the various operations provided
480 * @trip_point_config: selects and configures a trip-point of interest
484 * Supports multi-axis sensors for sensors which
508 * struct scmi_reset_proto_ops - represents the various operations provided
512 * @name_get: gets the name of a reset domain
513 * @latency_get: gets the reset latency for the specified reset domain
514 * @reset: resets the specified reset domain
515 * @assert: explicitly assert reset signal of the specified reset domain
516 * @deassert: explicitly deassert reset signal of the specified reset domain
521 u32 domain);
522 int (*latency_get)(const struct scmi_protocol_handle *ph, u32 domain);
523 int (*reset)(const struct scmi_protocol_handle *ph, u32 domain);
524 int (*assert)(const struct scmi_protocol_handle *ph, u32 domain);
525 int (*deassert)(const struct scmi_protocol_handle *ph, u32 domain);
534 * struct scmi_voltage_info - describe one available SCMI Voltage Domain
536 * @id: the domain ID as advertised by the platform
538 * - when True the entries are to be interpreted as triplets,
541 * - when False the entries simply represent a single discrete
545 * @async_level_set: True when the voltage domain supports asynchronous level
547 * @name: name assigned to the Voltage Domain by platform
550 * this domain.
566 * struct scmi_voltage_proto_ops - represents the various operations provided
570 * @info_get: get the information of the specified domain
571 * @config_set: set the config for the specified domain
572 * @config_get: get the config of the specified domain
573 * @level_set: set the voltage level for the specified domain
574 * @level_get: get the voltage level of the specified domain
593 * struct scmi_powercap_info - Describe one available Powercap domain
595 * @id: Domain ID as advertised by the platform.
603 * @powercap_scale_mw: Domain reports power data in milliwatt units.
604 * @powercap_scale_uw: Domain reports power data in microwatt units.
606 * @powercap_scale_uw are set to false, the domain
608 * @name: name assigned to the Powercap Domain by platform.
615 * @sustainable_power: Maximum sustainable power consumption for this domain
619 * @parent_id: Identifier of the containing parent power capping domain, or the
620 * value 0xFFFFFFFF if this powercap domain is a root domain not
621 * contained in any other domain.
649 * struct scmi_powercap_proto_ops - represents the various operations provided
653 * @info_get: get the information for the specified domain.
654 * @cap_get: get the current CAP value for the specified domain.
657 * @cap_set: set the CAP value for the specified domain to the provided value;
658 * if the domain supports setting the CAP with an asynchronous command
666 * @cap_enable_set: enable or disable the powercapping on the specified domain,
673 * @cap_enable_get: get the current CAP enable status for the specified domain.
674 * @pai_get: get the current PAI value for the specified domain.
675 * @pai_set: set the PAI value for the specified domain to the provided value.
677 * specified domain and the related PAI upon which is
682 * powercap domain.
721 * struct scmi_notify_ops - represents notifications' operations provided by
780 * struct scmi_handle - Handle returned to ARM SCMI clients for usage.
873 return -EINVAL; in scmi_driver_register()
885 * module_scmi_driver() - Helper macro for registering a scmi driver
896 * module_scmi_protocol() - Helper macro for registering a scmi protocol
911 /* SCMI Notification API - Custom Event Reports */