WE310F5  39.00.000
m2mb_spi_master.h File Reference

SPI library implementation. More...

Go to the source code of this file.

Data Structures

struct  M2MB_SPI_CFG_T
 
#define M2MB_SPI_CLKPOL_IDLE_LOW   0
 
#define M2MB_SPI_CLKPOL_IDLE_HIGH   1
 
#define M2MB_SPI_CLKPHASE_RISING_EDGE   0
 
#define M2MB_SPI_CLKPHASE_FALLING_EDGE   1
 
#define M2MB_SPI_BITS_PER_WORD_8   8
 
#define M2MB_SPI_BAUD_RATE_10MHZ   10000000
 
enum  M2MB_SPI_IOCTL_REQUEST {
  M2MB_SPI_IOCTL_SET_CFG = 0,
  M2MB_SPI_IOCTL_GET_CFG,
  M2MB_SPI_IOCTL_SET_SHIFT_MODE,
  M2MB_SPI_IOCTL_GET_SHIFT_MODE,
  M2MB_SPI_IOCTL_SET_CS_POLARITY,
  M2MB_SPI_IOCTL_GET_CS_POLARITY,
  M2MB_SPI_IOCTL_SET_CS_MODE,
  M2MB_SPI_IOCTL_GET_CS_MODE,
  M2MB_SPI_IOCTL_SET_BYTE_ORDER,
  M2MB_SPI_IOCTL_GET_BYTE_ORDER,
  M2MB_SPI_IOCTL_SET_CALLBACK_FN,
  M2MB_SPI_IOCTL_GET_CALLBACK_FN,
  M2MB_SPI_IOCTL_SET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_GET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_SET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_GET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_SET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_GET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_SET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_GET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_GET_WEITE_COMPLETE,
  M2MB_SPI_IOCTL_NOF_REQ,
  M2MB_SPI_IOCTL_SET_CFG = 0,
  M2MB_SPI_IOCTL_GET_CFG,
  M2MB_SPI_IOCTL_SET_SHIFT_MODE,
  M2MB_SPI_IOCTL_GET_SHIFT_MODE,
  M2MB_SPI_IOCTL_SET_CS_POLARITY,
  M2MB_SPI_IOCTL_GET_CS_POLARITY,
  M2MB_SPI_IOCTL_SET_CS_MODE,
  M2MB_SPI_IOCTL_GET_CS_MODE,
  M2MB_SPI_IOCTL_SET_BYTE_ORDER,
  M2MB_SPI_IOCTL_GET_BYTE_ORDER,
  M2MB_SPI_IOCTL_SET_CALLBACK_FN,
  M2MB_SPI_IOCTL_GET_CALLBACK_FN,
  M2MB_SPI_IOCTL_SET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_GET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_SET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_GET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_SET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_GET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_SET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_GET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_NOF_REQ,
  M2MB_SPI_IOCTL_SET_CFG = 0,
  M2MB_SPI_IOCTL_GET_CFG,
  M2MB_SPI_IOCTL_SET_SHIFT_MODE,
  M2MB_SPI_IOCTL_GET_SHIFT_MODE,
  M2MB_SPI_IOCTL_SET_CS_POLARITY,
  M2MB_SPI_IOCTL_GET_CS_POLARITY,
  M2MB_SPI_IOCTL_SET_CS_MODE,
  M2MB_SPI_IOCTL_GET_CS_MODE,
  M2MB_SPI_IOCTL_SET_BYTE_ORDER,
  M2MB_SPI_IOCTL_GET_BYTE_ORDER,
  M2MB_SPI_IOCTL_SET_CALLBACK_FN,
  M2MB_SPI_IOCTL_GET_CALLBACK_FN,
  M2MB_SPI_IOCTL_SET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_GET_CALLBACK_CTXT,
  M2MB_SPI_IOCTL_SET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_GET_CLK_FREQ_HZ,
  M2MB_SPI_IOCTL_SET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_GET_BITS_PER_WORD,
  M2MB_SPI_IOCTL_SET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_CS_CLK_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_GET_INTER_WORD_DELAY_CYCLES,
  M2MB_SPI_IOCTL_SET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_GET_LOOPBACK_MODE,
  M2MB_SPI_IOCTL_NOF_REQ
}
 
enum  M2MB_SPI_SHIFT_MODE_T {
  M2MB_SPI_MODE_0,
  M2MB_SPI_MODE_1,
  M2MB_SPI_MODE_2,
  M2MB_SPI_MODE_3,
  M2MB_SPI_MODE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_MODE_0,
  M2MB_SPI_MODE_1,
  M2MB_SPI_MODE_2,
  M2MB_SPI_MODE_3,
  M2MB_SPI_MODE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_MODE_0,
  M2MB_SPI_MODE_1,
  M2MB_SPI_MODE_2,
  M2MB_SPI_MODE_3,
  M2MB_SPI_MODE_INVALID = 0x7FFFFFFF
}
 
enum  M2MB_SPI_CS_POLARITY_T {
  M2MB_SPI_CS_ACTIVE_LOW,
  M2MB_SPI_CS_ACTIVE_HIGH,
  M2MB_SPI_CS_ACTIVE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_CS_ACTIVE_LOW,
  M2MB_SPI_CS_ACTIVE_HIGH,
  M2MB_SPI_CS_ACTIVE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_CS_ACTIVE_LOW,
  M2MB_SPI_CS_ACTIVE_HIGH,
  M2MB_SPI_CS_ACTIVE_INVALID = 0x7FFFFFFF
}
 
enum  M2MB_SPI_CLK_MODE_T {
  M2MB_SPI_CLK_NORMAL,
  M2MB_SPI_CLK_ALLWAYS_ON,
  M2MB_SPI_CLK_INVALID = 0x7FFFFFFF
}
 
enum  M2MB_SPI_CS_MODE_T {
  M2MB_SPI_CS_DEASSERT,
  M2MB_SPI_CS_KEEP_ASSERTED,
  M2MB_SPI_CS_MODE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_CS_DEASSERT,
  M2MB_SPI_CS_KEEP_ASSERTED,
  M2MB_SPI_CS_MODE_INVALID = 0x7FFFFFFF,
  M2MB_SPI_CS_DEASSERT,
  M2MB_SPI_CS_KEEP_ASSERTED,
  M2MB_SPI_CS_MODE_INVALID = 0x7FFFFFFF
}
 
enum  M2MB_SPI_BYTE_ORDER_T {
  M2MB_SPI_NATIVE = 0,
  M2MB_SPI_LITTLE_ENDIAN = 0,
  M2MB_SPI_BIG_ENDIAN,
  M2MB_SPI_NATIVE = 0,
  M2MB_SPI_LITTLE_ENDIAN = 0,
  M2MB_SPI_BIG_ENDIAN,
  M2MB_SPI_BYTE_ORDER_INVALID = 0x7FFFFFFF,
  M2MB_SPI_NATIVE = 0,
  M2MB_SPI_LITTLE_ENDIAN = 0,
  M2MB_SPI_BIG_ENDIAN
}
 
typedef enum M2MB_SPI_IOCTL_REQUEST M2MB_SPI_IOCTL_REQUEST_T
 
typedef void(* M2MB_SPI_CALLBACK_FN_T) (UINT32 status, void *callback_ctxt)
 
typedef void * M2MB_SPI_ID_t
 
INT32 m2mb_spi_open (const CHAR *path, INT32 flags,...)
 open a SPI device More...
 
INT32 m2mb_spi_close (INT32 fd)
 close a SPI device More...
 
INT32 m2mb_spi_ioctl (INT32 fd, M2MB_SPI_IOCTL_REQUEST_T request,...)
 configure a SPI device More...
 
SSIZE_T m2mb_spi_read (INT32 fd, void *buf, SIZE_T nbyte)
 read nbyte Bytes from a SPI device into the array pointed by buf More...
 
SSIZE_T m2mb_spi_write (INT32 fd, const void *buf, SIZE_T nbyte)
 write nbyte Bytes from the array pointed by buf to a SPI device More...
 
SSIZE_T m2mb_spi_write_read (INT32 fd, const void *bufwr, void *bufWr, SIZE_T nbyte)
 perform a bi-directional (full duplex) transfer. More...
 

Detailed Description

SPI library implementation.

we866e4/epl/inc/driver/m2mb_spi_master.h

The following functions are implemented: m2mb_spi_ioctl m2mb_spi_open m2mb_spi_read m2mb_spi_write m2mb_spi_close

Note
Dependencies: m2m/m2m_generic/common/m2mb_inc/m2mb_types.h
Author
Morgan Deidda
Date
16/10/2017

Definition in file m2mb_spi_master.h.