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)
74 * struct scmi_clk_proto_ops - represents the various operations provided
101 * struct scmi_perf_proto_ops - represents the various operations provided
102 * by SCMI Performance Protocol
104 * @limits_set: sets limits on the performance level of a domain
105 * @limits_get: gets limits on the performance level of a domain
106 * @level_set: sets the performance level of a domain
107 * @level_get: gets the performance level of a domain
108 * @device_domain_id: gets the scmi domain id for a given device
112 * to sustained performance level mapping
114 * to sustained performance level mapping
115 * @est_power_get: gets the estimated power cost for a given performance domain
123 int (*limits_set)(const struct scmi_protocol_handle *ph, u32 domain,
125 int (*limits_get)(const struct scmi_protocol_handle *ph, u32 domain,
127 int (*level_set)(const struct scmi_protocol_handle *ph, u32 domain,
129 int (*level_get)(const struct scmi_protocol_handle *ph, u32 domain,
136 int (*freq_set)(const struct scmi_protocol_handle *ph, u32 domain,
138 int (*freq_get)(const struct scmi_protocol_handle *ph, u32 domain,
140 int (*est_power_get)(const struct scmi_protocol_handle *ph, u32 domain,
148 * struct scmi_power_proto_ops - represents the various operations provided
152 * @name_get: gets the name of a power domain
153 * @state_set: sets the power state of a power domain
154 * @state_get: gets the power state of a power domain
159 u32 domain);
161 #define SCMI_POWER_STATE_ID_MASK (BIT(28) - 1)
167 int (*state_set)(const struct scmi_protocol_handle *ph, u32 domain,
169 int (*state_get)(const struct scmi_protocol_handle *ph, u32 domain,
174 * struct scmi_sensor_reading - represent a timestamped read
188 * struct scmi_range_attrs - specifies a sensor or axis values' range
198 * struct scmi_sensor_axis_info - describes one sensor axes
201 * @scale: Power-of-10 multiplier applied to the axis unit.
202 * @name: NULL-terminated string representing axes name as advertised by
208 * @exponent: Extended attribute representing the power-of-10 multiplier that
226 * struct scmi_sensor_intervals_info - describes number and type of available
237 * lesser-than-64-bytes dynamic allocation for small @count
261 * struct scmi_sensor_info - represents information related to one of the
265 * @scale: Power-of-10 multiplier applied to the sensor unit.
270 * @tstamp_scale: Power-of-10 multiplier applied to the sensor timestamps to
278 * @name: NULL-terminated string representing sensor name as advertised by
289 * @exponent: Extended attribute representing the power-of-10 multiplier that is
452 * struct scmi_sensor_proto_ops - represents the various operations provided
457 * @trip_point_config: selects and configures a trip-point of interest
461 * Supports multi-axis sensors for sensors which
485 * struct scmi_reset_proto_ops - represents the various operations provided
489 * @name_get: gets the name of a reset domain
490 * @latency_get: gets the reset latency for the specified reset domain
491 * @reset: resets the specified reset domain
492 * @assert: explicitly assert reset signal of the specified reset domain
493 * @deassert: explicitly deassert reset signal of the specified reset domain
498 u32 domain);
499 int (*latency_get)(const struct scmi_protocol_handle *ph, u32 domain);
500 int (*reset)(const struct scmi_protocol_handle *ph, u32 domain);
501 int (*assert)(const struct scmi_protocol_handle *ph, u32 domain);
502 int (*deassert)(const struct scmi_protocol_handle *ph, u32 domain);
511 * struct scmi_voltage_info - describe one available SCMI Voltage Domain
513 * @id: the domain ID as advertised by the platform
515 * - when True the entries are to be interpreted as triplets,
518 * - when False the entries simply represent a single discrete
522 * @async_level_set: True when the voltage domain supports asynchronous level
524 * @name: name assigned to the Voltage Domain by platform
527 * this domain.
543 * struct scmi_voltage_proto_ops - represents the various operations provided
547 * @info_get: get the information of the specified domain
548 * @config_set: set the config for the specified domain
549 * @config_get: get the config of the specified domain
550 * @level_set: set the voltage level for the specified domain
551 * @level_get: get the voltage level of the specified domain
570 * struct scmi_powercap_info - Describe one available Powercap domain
572 * @id: Domain ID as advertised by the platform.
580 * @powercap_scale_mw: Domain reports power data in milliwatt units.
581 * @powercap_scale_uw: Domain reports power data in microwatt units.
583 * @powercap_scale_uw are set to false, the domain
585 * @name: name assigned to the Powercap Domain by platform.
592 * @sustainable_power: Maximum sustainable power consumption for this domain
596 * @parent_id: Identifier of the containing parent power capping domain, or the
597 * value 0xFFFFFFFF if this powercap domain is a root domain not
598 * contained in any other domain.
626 * struct scmi_powercap_proto_ops - represents the various operations provided
630 * @info_get: get the information for the specified domain.
631 * @cap_get: get the current CAP value for the specified domain.
634 * @cap_set: set the CAP value for the specified domain to the provided value;
635 * if the domain supports setting the CAP with an asynchronous command
643 * @cap_enable_set: enable or disable the powercapping on the specified domain,
650 * @cap_enable_get: get the current CAP enable status for the specified domain.
651 * @pai_get: get the current PAI value for the specified domain.
652 * @pai_set: set the PAI value for the specified domain to the provided value.
654 * specified domain and the related PAI upon which is
659 * powercap domain.
698 * struct scmi_notify_ops - represents notifications' operations provided by
757 * struct scmi_handle - Handle returned to ARM SCMI clients for usage.
850 return -EINVAL; in scmi_driver_register()
862 * module_scmi_driver() - Helper macro for registering a scmi driver
873 * module_scmi_protocol() - Helper macro for registering a scmi protocol
888 /* SCMI Notification API - Custom Event Reports */