1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (C) 2019-2020 Linaro Limited. 4 */ 5#ifndef _SCMI_AGENT_UCLASS_H 6#define _SCMI_AGENT_UCLASS_H 7 8struct udevice; 9struct scmi_msg; 10struct scmi_channel; 11 12/** 13 * struct scmi_transport_ops - The functions that a SCMI transport layer must implement. 14 */ 15struct scmi_agent_ops { 16 /* 17 * of_get_channel - Get SCMI channel from SCMI agent device tree node 18 * 19 * @dev: SCMI protocol device using the transport 20 * @channel: Output reference to SCMI channel upon success 21 * Return 0 upon success and a negative errno on failure 22 */ 23 int (*of_get_channel)(struct udevice *dev, struct scmi_channel **channel); 24 25 /* 26 * process_msg - Request transport to get the SCMI message processed 27 * 28 * @dev: SCMI protocol device using the transport 29 * @msg: SCMI message to be transmitted 30 */ 31 int (*process_msg)(struct udevice *dev, struct scmi_channel *channel, 32 struct scmi_msg *msg); 33}; 34 35#endif /* _SCMI_TRANSPORT_UCLASS_H */ 36