Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
espi_emul.h File Reference

Public APIs for the eSPI emulation drivers. More...

#include <zephyr/device.h>
#include <zephyr/drivers/emul.h>
#include <zephyr/drivers/espi.h>
#include <zephyr/sys/slist.h>
#include <zephyr/types.h>

Go to the source code of this file.

Data Structures

struct  emul_espi_device_api
 Definition of the eSPI device emulator API. More...
 
struct  espi_emul
 Node in a linked list of emulators for eSPI devices. More...
 
struct  emul_espi_driver_api
 Definition of the eSPI controller emulator API. More...
 

Macros

#define EMUL_ESPI_HOST_CHIPSEL   0
 

Typedefs

typedef int(* emul_espi_api_set_vw) (const struct emul *target, enum espi_vwire_signal vw, uint8_t level)
 Passes eSPI virtual wires set request (virtual wire packet) to the emulator.
 
typedef int(* emul_espi_api_get_vw) (const struct emul *target, enum espi_vwire_signal vw, uint8_t *level)
 Passes eSPI virtual wires get request (virtual wire packet) to the emulator.
 
typedef struct espi_emul *(* emul_find_emul) (const struct device *dev, unsigned int chipsel)
 Find an emulator present on a eSPI bus.
 
typedef int(* emul_trigger_event) (const struct device *dev, struct espi_event *evt)
 Triggers an event on the emulator of eSPI controller side which causes calling specific callbacks.
 

Functions

int espi_emul_register (const struct device *dev, struct espi_emul *emul)
 Register an emulated device on the controller.
 
int emul_espi_host_send_vw (const struct device *espi_dev, enum espi_vwire_signal vw, uint8_t level)
 Sets the eSPI virtual wire on the host side, which will trigger a proper event(and callbacks) on the emulated eSPI controller.
 
int emul_espi_host_port80_write (const struct device *espi_dev, uint32_t data)
 Perform port80 write on the emulated host side, which will trigger a proper event(and callbacks) on the emulated eSPI controller.
 

Detailed Description

Public APIs for the eSPI emulation drivers.