| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. |
| */ |
| |
| #ifndef __SOC_QCOM_TCS_H__ |
| #define __SOC_QCOM_TCS_H__ |
| |
| #define MAX_RPMH_PAYLOAD 16 |
| |
| /** |
| * rpmh_state: state for the request |
| * |
| * RPMH_SLEEP_STATE: State of the resource when the processor subsystem |
| * is powered down. There is no client using the |
| * resource actively. |
| * RPMH_WAKE_ONLY_STATE: Resume resource state to the value previously |
| * requested before the processor was powered down. |
| * RPMH_ACTIVE_ONLY_STATE: Active or AMC mode requests. Resource state |
| * is aggregated immediately. |
| */ |
| enum rpmh_state { |
| RPMH_SLEEP_STATE, |
| RPMH_WAKE_ONLY_STATE, |
| RPMH_ACTIVE_ONLY_STATE, |
| }; |
| |
| /** |
| * struct tcs_cmd: an individual request to RPMH. |
| * |
| * @addr: the address of the resource slv_id:18:16 | offset:0:15 |
| * @data: the resource state request |
| * @wait: wait for this request to be complete before sending the next |
| */ |
| struct tcs_cmd { |
| u32 addr; |
| u32 data; |
| u32 wait; |
| }; |
| |
| /** |
| * struct tcs_request: A set of tcs_cmds sent together in a TCS |
| * |
| * @state: state for the request. |
| * @wait_for_compl: wait until we get a response from the h/w accelerator |
| * @num_cmds: the number of @cmds in this request |
| * @cmds: an array of tcs_cmds |
| */ |
| struct tcs_request { |
| enum rpmh_state state; |
| u32 wait_for_compl; |
| u32 num_cmds; |
| struct tcs_cmd *cmds; |
| }; |
| |
| #endif /* __SOC_QCOM_TCS_H__ */ |