scu.h 900 B

12345678910111213141516171819202122232425262728293031
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (c) 2017 Intel Corporation
  4. */
  5. #ifndef _X86_ASM_SCU_IPC_H_
  6. #define _X86_ASM_SCU_IPC_H_
  7. /* IPC defines the following message types */
  8. #define IPCMSG_INDIRECT_READ 0x02
  9. #define IPCMSG_INDIRECT_WRITE 0x05
  10. #define IPCMSG_WARM_RESET 0xf0
  11. #define IPCMSG_COLD_RESET 0xf1
  12. #define IPCMSG_SOFT_RESET 0xf2
  13. #define IPCMSG_COLD_BOOT 0xf3
  14. #define IPCMSG_GET_FW_REVISION 0xf4
  15. #define IPCMSG_WATCHDOG_TIMER 0xf8 /* Set Kernel Watchdog Threshold */
  16. struct ipc_ifwi_version {
  17. u16 minor;
  18. u8 major;
  19. u8 hardware_id;
  20. u32 reserved[3];
  21. };
  22. /* Issue commands to the SCU with or without data */
  23. int scu_ipc_simple_command(u32 cmd, u32 sub);
  24. int scu_ipc_command(u32 cmd, u32 sub, u32 *in, int inlen, u32 *out, int outlen);
  25. int scu_ipc_raw_command(u32 cmd, u32 sub, u32 *in, int inlen, u32 *out,
  26. int outlen, u32 dptr, u32 sptr);
  27. #endif /* _X86_ASM_SCU_IPC_H_ */