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_*/