12#ifndef _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_TRANSPORT_H_
13#define _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_TRANSPORT_H_
148 return api->
init(transport);
#define ENOSYS
Function not implemented.
Definition errno.h:82
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition device.h:411
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:417
Mutex Structure.
Definition kernel.h:3024
SCMI channel structure.
Definition transport.h:45
void * data
channel private data
Definition transport.h:60
bool ready
is the channel ready to be used by a protocol?
Definition transport.h:69
struct k_sem sem
binary semaphore.
Definition transport.h:58
struct k_mutex lock
channel lock.
Definition transport.h:52
scmi_channel_cb cb
callback function.
Definition transport.h:67
SCMI message structure.
Definition protocol.h:90
Definition transport.h:72
int(* init)(const struct device *transport)
Definition transport.h:73
int(* setup_chan)(const struct device *transport, struct scmi_channel *chan, bool tx)
Definition transport.h:77
struct scmi_channel *(* request_channel)(const struct device *transport, uint32_t proto, bool tx)
Definition transport.h:85
bool(* channel_is_free)(const struct device *transport, struct scmi_channel *chan)
Definition transport.h:83
int(* send_message)(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Definition transport.h:74
int(* read_message)(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Definition transport.h:80
void(* scmi_channel_cb)(struct scmi_channel *chan)
Callback function for message replies.
Definition transport.h:35
static bool scmi_transport_channel_is_free(const struct device *transport, struct scmi_channel *chan)
Check if an SCMI channel is free.
Definition transport.h:250
int scmi_core_transport_init(const struct device *transport)
Perfrom SCMI core initialization.
static int scmi_transport_setup_chan(const struct device *transport, struct scmi_channel *chan, bool tx)
Setup an SCMI channel.
Definition transport.h:170
static int scmi_transport_init(const struct device *transport)
Perform initialization for the transport layer driver.
Definition transport.h:142
static int scmi_transport_send_message(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Send an SCMI channel.
Definition transport.h:199
static struct scmi_channel * scmi_transport_request_channel(const struct device *transport, uint32_t proto, bool tx)
Request an SCMI channel dynamically.
Definition transport.h:110
static int scmi_transport_read_message(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Read an SCMI message.
Definition transport.h:225