/* Copyright (c) 2022 Intel Corporation * SPDX-License-Identifier: Apache-2.0 */ #ifndef COMM_WIDGET_PMC_IPC_H #define COMM_WIDGET_PMC_IPC_H #define CW_PMC_MAILBOX3_DATA0_ADDRESS 0x68 #define CW_PMC_MAILBOX3_DATA1_ADDRESS 0x6c #define CW_PMC_MAILBOX3_DATA2_ADDRESS 0x70 #define CW_PMC_MAILBOX3_DATA3_ADDRESS 0x74 #define CW_PMC_MAILBOX3_INTERFACE_ADDRESS 0x78 #define CW_PMC_DESTID_VALUE 0xc8 /* * The requesting agent will write the PMC command op-code into this field. */ #define CW_PMC_IPC_OP_CODE GENMASK(7, 0) /* * When the PMC has completed the API command, the PMC will write a completion code (CC) back into * this field. */ #define CW_PMC_IPC_CC GENMASK(7, 0) /* * Some commands require additional information which is passed into this 8 bit field. */ #define CW_PMC_IPC_PARAM1 GENMASK(15, 8) /* * Some commands require additional information which is passed into this 8 bit field. */ #define CW_PMC_IPC_PARAM2 GENMASK(23, 16) /* * Some commands require additional information which is passed into this 4 bit field. */ #define CW_PMC_IPC_PARAM3 GENMASK(27, 24) /* * Reserved */ #define CW_PMC_IPC_RSVD GENMASK(30, 28) /* * busy - The run/busy bit can only be set by the requesting agent and can only be cleared by the * responding agent. When this bit is set it will prompt the PMC to execute the command placed in * the mailbox. The PMC will clear this flag after the command has been processed and a completion * code has been written back into the COMMAND field and any data requested has been written into * the DATA field. */ #define CW_PMC_IPC_BUSY BIT(31) /* PMC operation codes */ /* * No operation - PMC FW will clear the run / busy bit and return a success response */ #define CW_PMC_OPC_NOP 0x0 /* * Version - The IPC command to obtain information about current HAL version. * param_1 - Pass back the PMC ACE protocol version - the initial version is 0. */ #define CW_PMC_OPC_VERSION 0x1 /* * SRAM config - Any FW allocating HP-SRAM is expected to report allocated number of banks. * HP-SRAM reporting is defined as 10-bit field span across Parameter 1 and 2, unit is 32 KB. */ #define CW_PMC_OPC_SRAM_CONFIG 0x2 /* * Number of allocated HP-SRAM of banks, unit is 32 KB. */ #define CW_PMC_IPC_SRAM_USED_BANKS GENMASK(17, 8) /* * Some commands require additional information which is passed into this 8 bit field. */ #define CW_PMC_IPC_SRAM_RESERVED GENMASK(30, 18) #endif