WE310F5  39.00.000
m2mb_spi.h File Reference

SPI library implementation. More...

Go to the source code of this file.

Data Structures

struct  M2MB_SPI_CFG_T
 

Macros

#define NULL   0
 

Typedefs

typedef void(* m2mb_spi_ind_callback) (INT32 fd, M2MB_SPI_IND_E spi_event, UINT16 resp_size, void *resp_struct, void *userdata)
 

Enumerations

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_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
}
 
enum  M2MB_SPI_IND_E {
  M2MB_SPI_EV_RECV,
  M2MB_SPI_EV_SENT,
  M2MB_SPI_EV
}
 

Functions

INT32 m2mb_spi_open (const CHAR *path, INT32 flags,...)
 
INT32 m2mb_spi_close (INT32 fd)
 
INT32 m2mb_spi_ioctl (INT32 fd, INT32 request,...)
 
SSIZE_T m2mb_spi_read (INT32 fd, void *buf, SIZE_T nbyte)
 
SSIZE_T m2mb_spi_write (INT32 fd, const void *buf, SIZE_T nbyte)
 
SSIZE_T m2mb_spi_write_read (INT32 fd, const void *bufWr, void *bufRd, SIZE_T nbyte)
 

Detailed Description

SPI library implementation.

m2m/m2m_generic/common/m2mb_inc/m2mb_spi.h

The following functions are implemented: m2mb_spi_ioctl m2mb_spi_open m2mb_spi_read m2mb_spi_write m2mb_spi_close

Dependencies: m2m/m2m_generic/common/m2mb_inc/m2mb_types.h

Author
Morgan Deidda
Date
16/10/2017

Definition in file m2mb_spi.h.

Macro Definition Documentation

◆ NULL

#define NULL   0

Definition at line 33 of file m2mb_spi.h.

Typedef Documentation

◆ m2mb_spi_ind_callback

typedef void( * m2mb_spi_ind_callback) (INT32 fd, M2MB_SPI_IND_E spi_event, UINT16 resp_size, void *resp_struct, void *userdata)

Definition at line 127 of file m2mb_spi.h.

Enumeration Type Documentation

◆ M2MB_SPI_BYTE_ORDER_T

Enumerator
M2MB_SPI_NATIVE 
M2MB_SPI_LITTLE_ENDIAN 
M2MB_SPI_BIG_ENDIAN 
M2MB_SPI_NATIVE 

Native

M2MB_SPI_LITTLE_ENDIAN 

Little Endian

M2MB_SPI_BIG_ENDIAN 

Big Endian (network)

M2MB_SPI_BYTE_ORDER_INVALID 
M2MB_SPI_NATIVE 
M2MB_SPI_LITTLE_ENDIAN 
M2MB_SPI_BIG_ENDIAN 

Definition at line 114 of file m2mb_spi.h.

◆ M2MB_SPI_CS_MODE_T

Enumerator
M2MB_SPI_CS_DEASSERT 
M2MB_SPI_CS_KEEP_ASSERTED 
M2MB_SPI_CS_MODE_INVALID 
M2MB_SPI_CS_DEASSERT 

CS is deasserted after transferring data for N clock cycles

M2MB_SPI_CS_KEEP_ASSERTED 

CS is asserted as long as the core is in the Run state

M2MB_SPI_CS_MODE_INVALID 
M2MB_SPI_CS_DEASSERT 
M2MB_SPI_CS_KEEP_ASSERTED 
M2MB_SPI_CS_MODE_INVALID 

Definition at line 105 of file m2mb_spi.h.

◆ M2MB_SPI_CS_POLARITY_T

Enumerator
M2MB_SPI_CS_ACTIVE_LOW 
M2MB_SPI_CS_ACTIVE_HIGH 
M2MB_SPI_CS_ACTIVE_INVALID 
M2MB_SPI_CS_ACTIVE_LOW 

During Idle state, the CS line is held low

M2MB_SPI_CS_ACTIVE_HIGH 

During Idle state, the CS line is held high

M2MB_SPI_CS_ACTIVE_INVALID 
M2MB_SPI_CS_ACTIVE_LOW 
M2MB_SPI_CS_ACTIVE_HIGH 
M2MB_SPI_CS_ACTIVE_INVALID 

Definition at line 95 of file m2mb_spi.h.

◆ M2MB_SPI_IND_E

Enumerator
M2MB_SPI_EV_RECV 
M2MB_SPI_EV_SENT 
M2MB_SPI_EV 

Definition at line 121 of file m2mb_spi.h.

◆ M2MB_SPI_IOCTL_REQUEST

Enumerator
M2MB_SPI_IOCTL_SET_CFG 
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 

set whole spi device configuration

M2MB_SPI_IOCTL_GET_CFG 

get whole spi device configuration

M2MB_SPI_IOCTL_SET_SHIFT_MODE 

set spi device shift mode

M2MB_SPI_IOCTL_GET_SHIFT_MODE 

get spi device shift mode

M2MB_SPI_IOCTL_SET_CS_POLARITY 

set spi device CS polarity

M2MB_SPI_IOCTL_GET_CS_POLARITY 

get spi device CS polarity

M2MB_SPI_IOCTL_SET_CS_MODE 

set spi device CS mode

M2MB_SPI_IOCTL_GET_CS_MODE 

get spi device CS mode

M2MB_SPI_IOCTL_SET_BYTE_ORDER 

set spi device endianness

M2MB_SPI_IOCTL_GET_BYTE_ORDER 

get spi device endianness

M2MB_SPI_IOCTL_SET_CALLBACK_FN 

set spi device callback function

M2MB_SPI_IOCTL_GET_CALLBACK_FN 

get spi device callback function

M2MB_SPI_IOCTL_SET_CALLBACK_CTXT 

set spi device callback context

M2MB_SPI_IOCTL_GET_CALLBACK_CTXT 

get spi device callback context

M2MB_SPI_IOCTL_SET_CLK_FREQ_HZ 

set spi device clock frequency in Hz

M2MB_SPI_IOCTL_GET_CLK_FREQ_HZ 

get spi device clock frequency in Hz

M2MB_SPI_IOCTL_SET_BITS_PER_WORD 

set spi device bits per word

M2MB_SPI_IOCTL_GET_BITS_PER_WORD 

get spi device bits per word

M2MB_SPI_IOCTL_SET_CS_CLK_DELAY_CYCLES 

set spi device cs_clk_delay_cycles

M2MB_SPI_IOCTL_GET_CS_CLK_DELAY_CYCLES 

get spi device cs_clk_delay_cycles

M2MB_SPI_IOCTL_SET_INTER_WORD_DELAY_CYCLES 

set spi device inter_word_delay_cycles

M2MB_SPI_IOCTL_GET_INTER_WORD_DELAY_CYCLES 

get spi device inter_word_delay_cycles

M2MB_SPI_IOCTL_SET_LOOPBACK_MODE 

set spi device loopback mode

M2MB_SPI_IOCTL_GET_LOOPBACK_MODE 

get spi device loopback mode

M2MB_SPI_IOCTL_NOF_REQ 

number of m2mb ioctl requests

M2MB_SPI_IOCTL_SET_CFG 
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 

Definition at line 48 of file m2mb_spi.h.

◆ M2MB_SPI_SHIFT_MODE_T

Enumerator
M2MB_SPI_MODE_0 
M2MB_SPI_MODE_1 
M2MB_SPI_MODE_2 
M2MB_SPI_MODE_3 
M2MB_SPI_MODE_INVALID 
M2MB_SPI_MODE_0 

CPOL = 0, CPHA = 0

M2MB_SPI_MODE_1 

CPOL = 0, CPHA = 1

M2MB_SPI_MODE_2 

CPOL = 1, CPHA = 0

M2MB_SPI_MODE_3 

CPOL = 1, CPHA = 1

M2MB_SPI_MODE_INVALID 
M2MB_SPI_MODE_0 
M2MB_SPI_MODE_1 
M2MB_SPI_MODE_2 
M2MB_SPI_MODE_3 
M2MB_SPI_MODE_INVALID 

Definition at line 84 of file m2mb_spi.h.

Function Documentation

◆ m2mb_spi_close()

INT32 m2mb_spi_close ( INT32  fd)

◆ m2mb_spi_ioctl()

INT32 m2mb_spi_ioctl ( INT32  fd,
INT32  request,
  ... 
)

◆ m2mb_spi_open()

INT32 m2mb_spi_open ( const CHAR path,
INT32  flags,
  ... 
)

◆ m2mb_spi_read()

SSIZE_T m2mb_spi_read ( INT32  fd,
void *  buf,
SIZE_T  nbyte 
)

◆ m2mb_spi_write()

SSIZE_T m2mb_spi_write ( INT32  fd,
const void *  buf,
SIZE_T  nbyte 
)

◆ m2mb_spi_write_read()

SSIZE_T m2mb_spi_write_read ( INT32  fd,
const void *  bufWr,
void *  bufRd,
SIZE_T  nbyte 
)