1*e149ca29SPierre-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