You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef __SOC_QCOM_TCS_H__
|
|
#define __SOC_QCOM_TCS_H__
|
|
|
|
#define MAX_RPMH_PAYLOAD 16
|
|
|
|
struct tcs_cmd {
|
|
u32 addr; /* slv_id:18:16 | offset:0:15 */
|
|
u32 data; /* data for resource (or read response) */
|
|
bool complete; /* wait for completion before sending next */
|
|
};
|
|
|
|
enum rpmh_state {
|
|
RPMH_SLEEP_STATE, /* Sleep */
|
|
RPMH_WAKE_ONLY_STATE, /* Wake only */
|
|
RPMH_ACTIVE_ONLY_STATE, /* Active only (= AMC) */
|
|
RPMH_AWAKE_STATE, /* Use Wake TCS for Wake & Active (AMC = 0) */
|
|
};
|
|
|
|
struct tcs_mbox_msg {
|
|
enum rpmh_state state; /* request state */
|
|
bool is_complete; /* wait for resp from accelerator */
|
|
bool is_read; /* expecting a response from RPMH */
|
|
bool is_control; /* private control messages */
|
|
bool invalidate; /* invalidate sleep/wake commands */
|
|
u32 num_payload; /* Limited to MAX_RPMH_PAYLOAD in one msg */
|
|
struct tcs_cmd *payload;/* array of tcs_cmds */
|
|
};
|
|
|
|
#endif /* __SOC_QCOM_TCS_H__ */
|
|
|