xref: /aosp_15_r20/external/coreboot/src/soc/amd/common/block/include/amdblocks/smu.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef AMD_BLOCK_SMU_H
4 #define AMD_BLOCK_SMU_H
5 
6 #include <types.h>
7 #include <soc/smu.h> /* SoC-dependent definitions for SMU access */
8 
9 /* Arguments indexed locations are contiguous; the number is SoC-dependent */
10 #define SMN_SMU_MESG_ARG(x)	(SMN_SMU_MESG_ARGS_BASE + ((x) * sizeof(uint32_t)))
11 
12 struct smu_payload {
13 	uint32_t msg[SMU_NUM_ARGS];
14 };
15 
16 /*
17  * Send a message and bi-directional payload to the SMU. The SMU's response, if any, is
18  * returned via *arg. Returns CB_SUCCESS if success or CB_ERR on failure.
19  */
20 enum cb_err send_smu_message(enum smu_message_id message_id, struct smu_payload *arg);
21 
22 #endif /* AMD_BLOCK_SMU_H */
23