diff options
author | Sudeep Holla <sudeep.holla@arm.com> | 2017-04-27 15:08:51 +0100 |
---|---|---|
committer | Sudeep Holla <sudeep.holla@arm.com> | 2017-06-05 11:14:35 +0100 |
commit | 45ca7df7c345465dbd2426a33012c9c33d27de62 (patch) | |
tree | 0cc3f9ef1cbf4f5a942d03198f6044dc36beebc0 /include/linux/scpi_protocol.h | |
parent | 2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff) | |
download | linux-45ca7df7c345465dbd2426a33012c9c33d27de62.tar.gz linux-45ca7df7c345465dbd2426a33012c9c33d27de62.tar.bz2 linux-45ca7df7c345465dbd2426a33012c9c33d27de62.zip |
firmware: arm_scpi: add support to populate OPPs and get transition latency
Currently only CPU devices use the transition latency and the OPPs
populated in the SCPI driver. scpi-cpufreq has logic to handle these.
However, even GPU and other users of SCPI DVFS will need the same logic.
In order to avoid duplication, this patch adds support to get DVFS
transition latency and add all the OPPs to the device using OPP library
helper functions. The helper functions added here can be used for any
device whose DVFS are managed by SCPI.
Also, we also have incorrect dependency on the cluster identifier for
the CPUs. It's fundamentally wrong as the domain id need not match the
cluster id. This patch gets rid of that dependency by making use of the
clock bindings which are already in place.
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'include/linux/scpi_protocol.h')
-rw-r--r-- | include/linux/scpi_protocol.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/scpi_protocol.h b/include/linux/scpi_protocol.h index dc5f989be226..327d65663dbf 100644 --- a/include/linux/scpi_protocol.h +++ b/include/linux/scpi_protocol.h @@ -67,6 +67,9 @@ struct scpi_ops { int (*dvfs_get_idx)(u8); int (*dvfs_set_idx)(u8, u8); struct scpi_dvfs_info *(*dvfs_get_info)(u8); + int (*device_domain_id)(struct device *); + int (*get_transition_latency)(struct device *); + int (*add_opps_to_device)(struct device *); int (*sensor_get_capability)(u16 *sensors); int (*sensor_get_info)(u16 sensor_id, struct scpi_sensor_info *); int (*sensor_get_value)(u16, u64 *); |