1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2/*
3 * This file is provided under a dual BSD/GPLv2 license.  When using or
4 * redistributing this file, you may do so under either license.
5 *
6 * Copyright(c) 2018 Intel Corporation. All rights reserved.
7 */
8
9#ifndef __INCLUDE_SOUND_SOF_PM_H__
10#define __INCLUDE_SOUND_SOF_PM_H__
11
12#include <sound/sof/header.h>
13
14/*
15 * PM
16 */
17
18/* PM context element */
19struct sof_ipc_pm_ctx_elem {
20	struct sof_ipc_hdr hdr;
21	uint32_t type;
22	uint32_t size;
23	uint64_t addr;
24}  __packed;
25
26/*
27 * PM context - SOF_IPC_PM_CTX_SAVE, SOF_IPC_PM_CTX_RESTORE,
28 * SOF_IPC_PM_CTX_SIZE
29 */
30struct sof_ipc_pm_ctx {
31	struct sof_ipc_cmd_hdr hdr;
32	struct sof_ipc_host_buffer buffer;
33	uint32_t num_elems;
34	uint32_t size;
35
36	/* reserved for future use */
37	uint32_t reserved[8];
38
39	struct sof_ipc_pm_ctx_elem elems[];
40} __packed;
41
42/* enable or disable cores - SOF_IPC_PM_CORE_ENABLE */
43struct sof_ipc_pm_core_config {
44	struct sof_ipc_cmd_hdr hdr;
45	uint32_t enable_mask;
46} __packed;
47
48struct sof_ipc_pm_gate {
49	struct sof_ipc_cmd_hdr hdr;
50	uint32_t flags;	/* platform specific */
51
52	/* reserved for future use */
53	uint32_t reserved[5];
54} __packed;
55
56#endif
57