Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
eSPI Driver Backend API

Data Structures

struct  espi_driver_api
  Driver Operations eSPI driver operations More...

Typedefs

typedef int(* espi_api_config) (const struct device *dev, struct espi_cfg *cfg)
 Configure operation of an eSPI device.
typedef bool(* espi_api_get_channel_status) (const struct device *dev, enum espi_channel ch)
 Query whether a logical channel is ready.
typedef int(* espi_api_read_request) (const struct device *dev, struct espi_request_packet *req)
 Send a memory, I/O or message read request over eSPI.
typedef int(* espi_api_write_request) (const struct device *dev, struct espi_request_packet *req)
 Send a memory, I/O or message write request over eSPI.
typedef int(* espi_api_lpc_read_request) (const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)
 Read from an LPC peripheral register.
typedef int(* espi_api_lpc_write_request) (const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)
 Write to an LPC peripheral register.
typedef int(* espi_api_send_vwire) (const struct device *dev, enum espi_vwire_signal vw, uint8_t level)
 Send a virtual wire packet over eSPI.
typedef int(* espi_api_receive_vwire) (const struct device *dev, enum espi_vwire_signal vw, uint8_t *level)
 Retrieve the level of a virtual wire signal.
typedef int(* espi_api_send_oob) (const struct device *dev, struct espi_oob_packet *pckt)
 Send an SMBus transaction (out-of-band) packet over eSPI.
typedef int(* espi_api_receive_oob) (const struct device *dev, struct espi_oob_packet *pckt)
 Receive an SMBus transaction (out-of-band) packet from eSPI.
typedef int(* espi_api_flash_read) (const struct device *dev, struct espi_flash_packet *pckt)
 Send a read request for a flash region shared over eSPI.
typedef int(* espi_api_flash_write) (const struct device *dev, struct espi_flash_packet *pckt)
 Send a write request for a flash region shared over eSPI.
typedef int(* espi_api_flash_erase) (const struct device *dev, struct espi_flash_packet *pckt)
 Send an erase request for a flash region shared over eSPI.
typedef int(* espi_api_manage_callback) (const struct device *dev, struct espi_callback *callback, bool set)
 Add or remove an application callback.
typedef int(* espi_api_interrupt_configure) (const struct device *dev, uint32_t espi_interrupt_flags, uint32_t espi_interrupt_vendor)
 Control eSPI interrupts.

Detailed Description

This group contains the API type definitions, callback signatures, and other helpers required to implement a eSPI driver.

Typedef Documentation

◆ espi_api_config

typedef int(* espi_api_config) (const struct device *dev, struct espi_cfg *cfg)

#include <zephyr/drivers/espi.h>

Configure operation of an eSPI device.

See espi_config() for argument description.

◆ espi_api_flash_erase

typedef int(* espi_api_flash_erase) (const struct device *dev, struct espi_flash_packet *pckt)

#include <zephyr/drivers/espi.h>

Send an erase request for a flash region shared over eSPI.

See espi_flash_erase() for argument description.

◆ espi_api_flash_read

typedef int(* espi_api_flash_read) (const struct device *dev, struct espi_flash_packet *pckt)

#include <zephyr/drivers/espi.h>

Send a read request for a flash region shared over eSPI.

See espi_read_flash() for argument description.

◆ espi_api_flash_write

typedef int(* espi_api_flash_write) (const struct device *dev, struct espi_flash_packet *pckt)

#include <zephyr/drivers/espi.h>

Send a write request for a flash region shared over eSPI.

See espi_write_flash() for argument description.

◆ espi_api_get_channel_status

typedef bool(* espi_api_get_channel_status) (const struct device *dev, enum espi_channel ch)

#include <zephyr/drivers/espi.h>

Query whether a logical channel is ready.

See espi_get_channel_status() for argument description.

◆ espi_api_interrupt_configure

typedef int(* espi_api_interrupt_configure) (const struct device *dev, uint32_t espi_interrupt_flags, uint32_t espi_interrupt_vendor)

#include <zephyr/drivers/espi.h>

Control eSPI interrupts.

See espi_interrupt_config() for argument description.

◆ espi_api_lpc_read_request

typedef int(* espi_api_lpc_read_request) (const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)

#include <zephyr/drivers/espi.h>

Read from an LPC peripheral register.

See espi_read_lpc_request() for argument description.

◆ espi_api_lpc_write_request

typedef int(* espi_api_lpc_write_request) (const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)

#include <zephyr/drivers/espi.h>

Write to an LPC peripheral register.

See espi_write_lpc_request() for argument description.

◆ espi_api_manage_callback

typedef int(* espi_api_manage_callback) (const struct device *dev, struct espi_callback *callback, bool set)

#include <zephyr/drivers/espi.h>

Add or remove an application callback.

See espi_add_callback() and espi_remove_callback() for argument description.

◆ espi_api_read_request

typedef int(* espi_api_read_request) (const struct device *dev, struct espi_request_packet *req)

#include <zephyr/drivers/espi.h>

Send a memory, I/O or message read request over eSPI.

See espi_read_request() for argument description.

◆ espi_api_receive_oob

typedef int(* espi_api_receive_oob) (const struct device *dev, struct espi_oob_packet *pckt)

#include <zephyr/drivers/espi.h>

Receive an SMBus transaction (out-of-band) packet from eSPI.

See espi_receive_oob() for argument description.

◆ espi_api_receive_vwire

typedef int(* espi_api_receive_vwire) (const struct device *dev, enum espi_vwire_signal vw, uint8_t *level)

#include <zephyr/drivers/espi.h>

Retrieve the level of a virtual wire signal.

See espi_receive_vwire() for argument description.

◆ espi_api_send_oob

typedef int(* espi_api_send_oob) (const struct device *dev, struct espi_oob_packet *pckt)

#include <zephyr/drivers/espi.h>

Send an SMBus transaction (out-of-band) packet over eSPI.

See espi_send_oob() for argument description.

◆ espi_api_send_vwire

typedef int(* espi_api_send_vwire) (const struct device *dev, enum espi_vwire_signal vw, uint8_t level)

#include <zephyr/drivers/espi.h>

Send a virtual wire packet over eSPI.

See espi_send_vwire() for argument description.

◆ espi_api_write_request

typedef int(* espi_api_write_request) (const struct device *dev, struct espi_request_packet *req)

#include <zephyr/drivers/espi.h>

Send a memory, I/O or message write request over eSPI.

See espi_write_request() for argument description.