/****************************************************************************/
/* Copyright 2010 MBARI.                                                    */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
#ifndef SPI_H
#define SPI_H

/* Note: this is stolen from env_board/spi.h, it should 
be from common/spi.h or soemthing like that */
#define INFO_CMD     1
#define READ_CMD     2
#define WRITE_CMD    3
#define SPARE_1_CMD  4
#define SPARE_2_CMD  5
#define BUFF_RET_CMD 6
#define BUFF_CMD     7

#define ARG_MASK    0x03FF

void spiInit();

void spiCS(int state);
void spiSelect(unsigned int slot);
unsigned int spiReadWrite(unsigned int data);

void spiSendRecvBytes(unsigned char* bytes, unsigned int len);

unsigned int spiSlaveRead(unsigned int add, int read_type);
void spiSlaveWrite(unsigned int add, unsigned int dat);
void spiSlaveCmd(unsigned int cmd, unsigned int arg);

void spiBuffFlush();

#endif

