xref: /rk3399_rockchip-uboot/include/scmi_agent-uclass.h (revision 1afcdfc6b83091af305af477f46c5828c42399d8)
1*1afcdfc6SEtienne Carriere /* SPDX-License-Identifier: GPL-2.0+ */
2*1afcdfc6SEtienne Carriere /*
3*1afcdfc6SEtienne Carriere  * Copyright (C) 2019-2020 Linaro Limited.
4*1afcdfc6SEtienne Carriere  */
5*1afcdfc6SEtienne Carriere #ifndef _SCMI_AGENT_UCLASS_H
6*1afcdfc6SEtienne Carriere #define _SCMI_AGENT_UCLASS_H
7*1afcdfc6SEtienne Carriere 
8*1afcdfc6SEtienne Carriere struct udevice;
9*1afcdfc6SEtienne Carriere struct scmi_msg;
10*1afcdfc6SEtienne Carriere 
11*1afcdfc6SEtienne Carriere /**
12*1afcdfc6SEtienne Carriere  * struct scmi_transport_ops - The functions that a SCMI transport layer must implement.
13*1afcdfc6SEtienne Carriere  */
14*1afcdfc6SEtienne Carriere struct scmi_agent_ops {
15*1afcdfc6SEtienne Carriere 	/*
16*1afcdfc6SEtienne Carriere 	 * process_msg - Request transport to get the SCMI message processed
17*1afcdfc6SEtienne Carriere 	 *
18*1afcdfc6SEtienne Carriere 	 * @agent:		Agent using the transport
19*1afcdfc6SEtienne Carriere 	 * @msg:		SCMI message to be transmitted
20*1afcdfc6SEtienne Carriere 	 */
21*1afcdfc6SEtienne Carriere 	int (*process_msg)(struct udevice *dev, struct scmi_msg *msg);
22*1afcdfc6SEtienne Carriere };
23*1afcdfc6SEtienne Carriere 
24*1afcdfc6SEtienne Carriere #endif /* _SCMI_TRANSPORT_UCLASS_H */
25