13#ifndef _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_TRANSPORT_H_
14#define _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_TRANSPORT_H_
156 return api->
init(transport);
void(* scmi_channel_cb)(struct scmi_channel *chan)
Callback function for message replies.
Definition transport.h:43
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:258
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:178
static int scmi_transport_init(const struct device *transport)
Perform initialization for the transport layer driver.
Definition transport.h:150
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:207
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:118
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:233
#define ENOSYS
Function not implemented.
Definition errno.h:82
#define NULL
Definition iar_missing_defs.h:20
#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:513
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:519
Mutex Structure.
Definition kernel.h:3336
Semaphore structure.
Definition kernel.h:3541
SCMI channel structure.
Definition transport.h:53
void * data
channel private data
Definition transport.h:68
bool ready
is the channel ready to be used by a protocol?
Definition transport.h:77
struct k_sem sem
binary semaphore.
Definition transport.h:66
struct k_mutex lock
channel lock.
Definition transport.h:60
scmi_channel_cb cb
callback function.
Definition transport.h:75
SCMI message structure.
Definition protocol.h:110
Definition transport.h:80
int(* init)(const struct device *transport)
Definition transport.h:81
int(* setup_chan)(const struct device *transport, struct scmi_channel *chan, bool tx)
Definition transport.h:85
struct scmi_channel *(* request_channel)(const struct device *transport, uint32_t proto, bool tx)
Definition transport.h:93
bool(* channel_is_free)(const struct device *transport, struct scmi_channel *chan)
Definition transport.h:91
int(* send_message)(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Definition transport.h:82
int(* read_message)(const struct device *transport, struct scmi_channel *chan, struct scmi_message *msg)
Definition transport.h:88