File Index
Files and directories
Sign in
FILE

psp-platform-access.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/psp-platform-access.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2
 3#ifndef __PSP_PLATFORM_ACCESS_H
 4#define __PSP_PLATFORM_ACCESS_H
 5
 6#include <linux/psp.h>
 7
 8enum psp_platform_access_msg {
 9	PSP_CMD_NONE			= 0x0,
10	PSP_SFS_GET_FW_VERSIONS,
11	PSP_SFS_UPDATE,
12	PSP_CMD_HSTI_QUERY		= 0x14,
13	PSP_I2C_REQ_BUS_CMD		= 0x64,
14	PSP_DYNAMIC_BOOST_GET_NONCE,
15	PSP_DYNAMIC_BOOST_SET_UID,
16	PSP_DYNAMIC_BOOST_GET_PARAMETER,
17	PSP_DYNAMIC_BOOST_SET_PARAMETER,
18};
19
20struct psp_req_buffer_hdr {
21	u32 payload_size;
22	u32 status;
23} __packed;
24
25struct psp_request {
26	struct psp_req_buffer_hdr header;
27	void *buf;
28} __packed;
29
30/**
31 * psp_send_platform_access_msg() - Send a message to control platform features
32 *
33 * This function is intended to be used by drivers outside of ccp to communicate
34 * with the platform.
35 *
36 * Returns:
37 *  0:           success
38 *  -%EBUSY:     mailbox in recovery or in use
39 *  -%ENODEV:    driver not bound with PSP device
40 *  -%ETIMEDOUT: request timed out
41 *  -%EIO:       unknown error (see kernel log)
42 */
43int psp_send_platform_access_msg(enum psp_platform_access_msg, struct psp_request *req);
44
45/**
46 * psp_ring_platform_doorbell() - Ring platform doorbell
47 *
48 * This function is intended to be used by drivers outside of ccp to ring the
49 * platform doorbell with a message.
50 *
51 * Returns:
52 *  0:           success
53 *  -%EBUSY:     mailbox in recovery or in use
54 *  -%ENODEV:    driver not bound with PSP device
55 *  -%ETIMEDOUT: request timed out
56 *  -%EIO:       error will be stored in result argument
57 */
58int psp_ring_platform_doorbell(int msg, u32 *result);
59
60/**
61 * psp_check_platform_access_status() - Checks whether platform features is ready
62 *
63 * This function is intended to be used by drivers outside of ccp to determine
64 * if platform features has initialized.
65 *
66 * Returns:
67 * 0          platform features is ready
68 * -%ENODEV   platform features is not ready or present
69 */
70int psp_check_platform_access_status(void);
71
72#endif /* __PSP_PLATFORM_ACCESS_H */
~/ Read-only file preview.