Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
MSPI Driver APIs

MSPI Driver APIs . More...

Topics

 MSPI Configure API
 MSPI Configure API .
 
 MSPI Transfer API
 MSPI Transfer API .
 
 MSPI callback API
 MSPI callback API .
 

Data Structures

struct  mspi_driver_api
 

Typedefs

typedef int(* mspi_api_config) (const struct mspi_dt_spec *spec)
 MSPI driver API definition and system call entry points.
 
typedef int(* mspi_api_dev_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const enum mspi_dev_cfg_mask param_mask, const struct mspi_dev_cfg *cfg)
 
typedef int(* mspi_api_get_channel_status) (const struct device *controller, uint8_t ch)
 
typedef int(* mspi_api_transceive) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_xfer *req)
 
typedef int(* mspi_api_register_callback) (const struct device *controller, const struct mspi_dev_id *dev_id, const enum mspi_bus_event evt_type, mspi_callback_handler_t cb, struct mspi_callback_context *ctx)
 
typedef int(* mspi_api_xip_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_xip_cfg *xip_cfg)
 
typedef int(* mspi_api_scramble_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_scramble_cfg *scramble_cfg)
 
typedef int(* mspi_api_timing_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const uint32_t param_mask, void *timing_cfg)
 

Enumerations

enum  mspi_op_mode { MSPI_OP_MODE_CONTROLLER = 0 , MSPI_OP_MODE_PERIPHERAL = 1 }
 MSPI operational mode. More...
 
enum  mspi_duplex { MSPI_HALF_DUPLEX = 0 , MSPI_FULL_DUPLEX = 1 }
 MSPI duplex mode. More...
 
enum  mspi_io_mode {
  MSPI_IO_MODE_SINGLE = 0 , MSPI_IO_MODE_DUAL = 1 , MSPI_IO_MODE_DUAL_1_1_2 = 2 , MSPI_IO_MODE_DUAL_1_2_2 = 3 ,
  MSPI_IO_MODE_QUAD = 4 , MSPI_IO_MODE_QUAD_1_1_4 = 5 , MSPI_IO_MODE_QUAD_1_4_4 = 6 , MSPI_IO_MODE_OCTAL = 7 ,
  MSPI_IO_MODE_OCTAL_1_1_8 = 8 , MSPI_IO_MODE_OCTAL_1_8_8 = 9 , MSPI_IO_MODE_HEX = 10 , MSPI_IO_MODE_HEX_8_8_16 = 11 ,
  MSPI_IO_MODE_HEX_8_16_16 = 12 , MSPI_IO_MODE_MAX
}
 MSPI I/O mode capabilities Postfix like 1_4_4 stands for the number of lines used for command, address and data phases. More...
 
enum  mspi_data_rate {
  MSPI_DATA_RATE_SINGLE = 0 , MSPI_DATA_RATE_S_S_D = 1 , MSPI_DATA_RATE_S_D_D = 2 , MSPI_DATA_RATE_DUAL = 3 ,
  MSPI_DATA_RATE_MAX
}
 MSPI data rate capabilities SINGLE stands for single data rate for all phases. More...
 
enum  mspi_cpp_mode { MSPI_CPP_MODE_0 = 0 , MSPI_CPP_MODE_1 = 1 , MSPI_CPP_MODE_2 = 2 , MSPI_CPP_MODE_3 = 3 }
 MSPI Polarity & Phase Modes. More...
 
enum  mspi_endian { MSPI_XFER_LITTLE_ENDIAN = 0 , MSPI_XFER_BIG_ENDIAN = 1 }
 MSPI Endian. More...
 
enum  mspi_ce_polarity { MSPI_CE_ACTIVE_LOW = 0 , MSPI_CE_ACTIVE_HIGH = 1 }
 MSPI chip enable polarity. More...
 
enum  mspi_bus_event { MSPI_BUS_RESET = 0 , MSPI_BUS_ERROR = 1 , MSPI_BUS_XFER_COMPLETE = 2 , MSPI_BUS_EVENT_MAX }
 MSPI bus event. More...
 
enum  mspi_bus_event_cb_mask { MSPI_BUS_NO_CB = 0 , MSPI_BUS_RESET_CB = BIT(0) , MSPI_BUS_ERROR_CB = BIT(1) , MSPI_BUS_XFER_COMPLETE_CB = BIT(2) }
 MSPI bus event callback mask This is a preliminary list same as mspi_bus_event. More...
 
enum  mspi_xfer_mode { MSPI_PIO , MSPI_DMA }
 MSPI transfer modes. More...
 
enum  mspi_xfer_direction { MSPI_RX , MSPI_TX }
 MSPI transfer directions. More...
 
enum  mspi_dev_cfg_mask {
  MSPI_DEVICE_CONFIG_NONE = 0 , MSPI_DEVICE_CONFIG_CE_NUM = BIT(0) , MSPI_DEVICE_CONFIG_FREQUENCY = BIT(1) , MSPI_DEVICE_CONFIG_IO_MODE = BIT(2) ,
  MSPI_DEVICE_CONFIG_DATA_RATE = BIT(3) , MSPI_DEVICE_CONFIG_CPP = BIT(4) , MSPI_DEVICE_CONFIG_ENDIAN = BIT(5) , MSPI_DEVICE_CONFIG_CE_POL = BIT(6) ,
  MSPI_DEVICE_CONFIG_DQS = BIT(7) , MSPI_DEVICE_CONFIG_RX_DUMMY = BIT(8) , MSPI_DEVICE_CONFIG_TX_DUMMY = BIT(9) , MSPI_DEVICE_CONFIG_READ_CMD = BIT(10) ,
  MSPI_DEVICE_CONFIG_WRITE_CMD = BIT(11) , MSPI_DEVICE_CONFIG_CMD_LEN = BIT(12) , MSPI_DEVICE_CONFIG_ADDR_LEN = BIT(13) , MSPI_DEVICE_CONFIG_MEM_BOUND = BIT(14) ,
  MSPI_DEVICE_CONFIG_BREAK_TIME = BIT(15) , MSPI_DEVICE_CONFIG_ALL = BIT_MASK(16)
}
 MSPI controller device specific configuration mask. More...
 
enum  mspi_xip_permit { MSPI_XIP_READ_WRITE = 0 , MSPI_XIP_READ_ONLY = 1 }
 MSPI XIP access permissions. More...
 

Detailed Description

MSPI Driver APIs .

Typedef Documentation

◆ mspi_api_config

typedef int(* mspi_api_config) (const struct mspi_dt_spec *spec)

#include <zephyr/drivers/mspi.h>

MSPI driver API definition and system call entry points.

◆ mspi_api_dev_config

typedef int(* mspi_api_dev_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const enum mspi_dev_cfg_mask param_mask, const struct mspi_dev_cfg *cfg)

◆ mspi_api_get_channel_status

typedef int(* mspi_api_get_channel_status) (const struct device *controller, uint8_t ch)

◆ mspi_api_register_callback

typedef int(* mspi_api_register_callback) (const struct device *controller, const struct mspi_dev_id *dev_id, const enum mspi_bus_event evt_type, mspi_callback_handler_t cb, struct mspi_callback_context *ctx)

◆ mspi_api_scramble_config

typedef int(* mspi_api_scramble_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_scramble_cfg *scramble_cfg)

◆ mspi_api_timing_config

typedef int(* mspi_api_timing_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const uint32_t param_mask, void *timing_cfg)

◆ mspi_api_transceive

typedef int(* mspi_api_transceive) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_xfer *req)

◆ mspi_api_xip_config

typedef int(* mspi_api_xip_config) (const struct device *controller, const struct mspi_dev_id *dev_id, const struct mspi_xip_cfg *xip_cfg)

Enumeration Type Documentation

◆ mspi_bus_event

#include <zephyr/drivers/mspi.h>

MSPI bus event.

This is a preliminary list of events. I encourage the community to fill it up.

Enumerator
MSPI_BUS_RESET 
MSPI_BUS_ERROR 
MSPI_BUS_XFER_COMPLETE 
MSPI_BUS_EVENT_MAX 

◆ mspi_bus_event_cb_mask

#include <zephyr/drivers/mspi.h>

MSPI bus event callback mask This is a preliminary list same as mspi_bus_event.

I encourage the community to fill it up.

Enumerator
MSPI_BUS_NO_CB 
MSPI_BUS_RESET_CB 
MSPI_BUS_ERROR_CB 
MSPI_BUS_XFER_COMPLETE_CB 

◆ mspi_ce_polarity

#include <zephyr/drivers/mspi.h>

MSPI chip enable polarity.

Enumerator
MSPI_CE_ACTIVE_LOW 
MSPI_CE_ACTIVE_HIGH 

◆ mspi_cpp_mode

#include <zephyr/drivers/mspi.h>

MSPI Polarity & Phase Modes.

Enumerator
MSPI_CPP_MODE_0 
MSPI_CPP_MODE_1 
MSPI_CPP_MODE_2 
MSPI_CPP_MODE_3 

◆ mspi_data_rate

#include <zephyr/drivers/mspi.h>

MSPI data rate capabilities SINGLE stands for single data rate for all phases.

DUAL stands for dual data rate for all phases. S_S_D stands for single data rate for command and address phases but dual data rate for data phase. S_D_D stands for single data rate for command phase but dual data rate for address and data phases.

Enumerator
MSPI_DATA_RATE_SINGLE 
MSPI_DATA_RATE_S_S_D 
MSPI_DATA_RATE_S_D_D 
MSPI_DATA_RATE_DUAL 
MSPI_DATA_RATE_MAX 

◆ mspi_dev_cfg_mask

#include <zephyr/drivers/mspi.h>

MSPI controller device specific configuration mask.

Enumerator
MSPI_DEVICE_CONFIG_NONE 
MSPI_DEVICE_CONFIG_CE_NUM 
MSPI_DEVICE_CONFIG_FREQUENCY 
MSPI_DEVICE_CONFIG_IO_MODE 
MSPI_DEVICE_CONFIG_DATA_RATE 
MSPI_DEVICE_CONFIG_CPP 
MSPI_DEVICE_CONFIG_ENDIAN 
MSPI_DEVICE_CONFIG_CE_POL 
MSPI_DEVICE_CONFIG_DQS 
MSPI_DEVICE_CONFIG_RX_DUMMY 
MSPI_DEVICE_CONFIG_TX_DUMMY 
MSPI_DEVICE_CONFIG_READ_CMD 
MSPI_DEVICE_CONFIG_WRITE_CMD 
MSPI_DEVICE_CONFIG_CMD_LEN 
MSPI_DEVICE_CONFIG_ADDR_LEN 
MSPI_DEVICE_CONFIG_MEM_BOUND 
MSPI_DEVICE_CONFIG_BREAK_TIME 
MSPI_DEVICE_CONFIG_ALL 

◆ mspi_duplex

#include <zephyr/drivers/mspi.h>

MSPI duplex mode.

Enumerator
MSPI_HALF_DUPLEX 
MSPI_FULL_DUPLEX 

◆ mspi_endian

#include <zephyr/drivers/mspi.h>

MSPI Endian.

Enumerator
MSPI_XFER_LITTLE_ENDIAN 
MSPI_XFER_BIG_ENDIAN 

◆ mspi_io_mode

#include <zephyr/drivers/mspi.h>

MSPI I/O mode capabilities Postfix like 1_4_4 stands for the number of lines used for command, address and data phases.

Mode with no postfix has the same number of lines for all phases.

Enumerator
MSPI_IO_MODE_SINGLE 
MSPI_IO_MODE_DUAL 
MSPI_IO_MODE_DUAL_1_1_2 
MSPI_IO_MODE_DUAL_1_2_2 
MSPI_IO_MODE_QUAD 
MSPI_IO_MODE_QUAD_1_1_4 
MSPI_IO_MODE_QUAD_1_4_4 
MSPI_IO_MODE_OCTAL 
MSPI_IO_MODE_OCTAL_1_1_8 
MSPI_IO_MODE_OCTAL_1_8_8 
MSPI_IO_MODE_HEX 
MSPI_IO_MODE_HEX_8_8_16 
MSPI_IO_MODE_HEX_8_16_16 
MSPI_IO_MODE_MAX 

◆ mspi_op_mode

#include <zephyr/drivers/mspi.h>

MSPI operational mode.

Enumerator
MSPI_OP_MODE_CONTROLLER 
MSPI_OP_MODE_PERIPHERAL 

◆ mspi_xfer_direction

#include <zephyr/drivers/mspi.h>

MSPI transfer directions.

Enumerator
MSPI_RX 
MSPI_TX 

◆ mspi_xfer_mode

#include <zephyr/drivers/mspi.h>

MSPI transfer modes.

Enumerator
MSPI_PIO 
MSPI_DMA 

◆ mspi_xip_permit

#include <zephyr/drivers/mspi.h>

MSPI XIP access permissions.

Enumerator
MSPI_XIP_READ_WRITE 
MSPI_XIP_READ_ONLY