xref: /openbmc/linux/include/sound/sof/pm.h (revision e149ca29)
1e149ca29SPierre-Louis Bossart /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
253e0c72dSLiam Girdwood /*
353e0c72dSLiam Girdwood  * This file is provided under a dual BSD/GPLv2 license.  When using or
453e0c72dSLiam Girdwood  * redistributing this file, you may do so under either license.
553e0c72dSLiam Girdwood  *
653e0c72dSLiam Girdwood  * Copyright(c) 2018 Intel Corporation. All rights reserved.
753e0c72dSLiam Girdwood  */
853e0c72dSLiam Girdwood 
953e0c72dSLiam Girdwood #ifndef __INCLUDE_SOUND_SOF_PM_H__
1053e0c72dSLiam Girdwood #define __INCLUDE_SOUND_SOF_PM_H__
1153e0c72dSLiam Girdwood 
1253e0c72dSLiam Girdwood #include <sound/sof/header.h>
1353e0c72dSLiam Girdwood 
1453e0c72dSLiam Girdwood /*
1553e0c72dSLiam Girdwood  * PM
1653e0c72dSLiam Girdwood  */
1753e0c72dSLiam Girdwood 
1853e0c72dSLiam Girdwood /* PM context element */
1953e0c72dSLiam Girdwood struct sof_ipc_pm_ctx_elem {
2053e0c72dSLiam Girdwood 	struct sof_ipc_hdr hdr;
2153e0c72dSLiam Girdwood 	uint32_t type;
2253e0c72dSLiam Girdwood 	uint32_t size;
2353e0c72dSLiam Girdwood 	uint64_t addr;
2453e0c72dSLiam Girdwood }  __packed;
2553e0c72dSLiam Girdwood 
2653e0c72dSLiam Girdwood /*
2753e0c72dSLiam Girdwood  * PM context - SOF_IPC_PM_CTX_SAVE, SOF_IPC_PM_CTX_RESTORE,
2853e0c72dSLiam Girdwood  * SOF_IPC_PM_CTX_SIZE
2953e0c72dSLiam Girdwood  */
3053e0c72dSLiam Girdwood struct sof_ipc_pm_ctx {
3153e0c72dSLiam Girdwood 	struct sof_ipc_cmd_hdr hdr;
3253e0c72dSLiam Girdwood 	struct sof_ipc_host_buffer buffer;
3353e0c72dSLiam Girdwood 	uint32_t num_elems;
3453e0c72dSLiam Girdwood 	uint32_t size;
3553e0c72dSLiam Girdwood 
3653e0c72dSLiam Girdwood 	/* reserved for future use */
3753e0c72dSLiam Girdwood 	uint32_t reserved[8];
3853e0c72dSLiam Girdwood 
3953e0c72dSLiam Girdwood 	struct sof_ipc_pm_ctx_elem elems[];
4053e0c72dSLiam Girdwood } __packed;
4153e0c72dSLiam Girdwood 
4253e0c72dSLiam Girdwood /* enable or disable cores - SOF_IPC_PM_CORE_ENABLE */
4353e0c72dSLiam Girdwood struct sof_ipc_pm_core_config {
4453e0c72dSLiam Girdwood 	struct sof_ipc_cmd_hdr hdr;
4553e0c72dSLiam Girdwood 	uint32_t enable_mask;
4653e0c72dSLiam Girdwood } __packed;
4753e0c72dSLiam Girdwood 
4810992004SKeyon Jie struct sof_ipc_pm_gate {
4910992004SKeyon Jie 	struct sof_ipc_cmd_hdr hdr;
5010992004SKeyon Jie 	uint32_t flags;	/* platform specific */
5110992004SKeyon Jie 
5210992004SKeyon Jie 	/* reserved for future use */
5310992004SKeyon Jie 	uint32_t reserved[5];
5410992004SKeyon Jie } __packed;
5510992004SKeyon Jie 
5653e0c72dSLiam Girdwood #endif
57