www.pudn.com > DMBDRV.rar > smsspicommon.h
#ifndef _SIANOSPICOMMON_H_
#define _SIANOSPICOMMON_H_
#define RX_PACKET_SIZE 0x1000
#define SPI_PACKET_SIZE 256
#define SPI_MAX_CTRL_MSG_SIZE 0x100
typedef enum _spi_rx_state{
RxsWait_a5=0,
RxsWait_5a,
RxsWait_e7,
RxsWait_7e,
RxsTypeH,
RxsTypeL,
RxsGetSrcId,
RxsGetDstId,
RxsGetLenL,
RxsGetLenH,
RxsData
}spi_rx_state;
typedef struct _rx_packet_request
{
char* pos;
int len;
int cnt;
}rx_packet_request;
typedef struct spi_dev{
void (*transfer_data_cb)(void*, unsigned char*, unsigned long, unsigned char*, unsigned long, int);
void (*msg_found_cb)(void*, void*, int);
void* logContext;
void* phyContext;
char* rxbuf;
spi_rx_state rxState;
rx_packet_request rxPacket;
char* internal_tx_buf;
unsigned char *transferRxBuf;
unsigned long rxBufPhyAddr;
}spi_dev_st;
typedef struct spi_msg{
char* buf;
unsigned long buf_phy_addr;
int len;
}spi_msg_st;
void smsspi_common_transfer_msg(struct spi_dev* dev, struct spi_msg* txmsg, int padding_allowed);
int smsspicommon_init( struct spi_dev* dev,
void* transferRxBuf,
unsigned long rxBufPhyAddr,
void* logContext,
void* phyContext,
void (*transfer_data_cb)(void*, unsigned char*, unsigned long, unsigned char*, unsigned long, int),
void (*msg_found_cb)(void*, void*, int));
#endif /*_SIANOSPICOMMON_H_*/