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