00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef XSPI__H
00010 #define XSPI__H
00011
00012 #define XSPI_DATA *((volatile unsigned char *)0xf078)
00013 #define XSPI_BITRATE *((volatile unsigned char *)0xf079)
00014 #define XSPI_STATUS *((volatile unsigned char *)0xf07a)
00015 #define XSPI_CONTROL *((volatile unsigned char *)0xf07b)
00016 #define XSPI_NRFIFO *((volatile unsigned *)0xf07c)
00017 #define XSPI_NTFIFO *((volatile unsigned *)0xf07e)
00018
00019 #define XSPI_CLOCK (50000000L)
00020
00021
00022
00023
00024
00025 #define XSPI_STATUS_TFIFOMT (0)
00026 #define XSPI_STATUS_TFIFOFULL (1)
00027 #define XSPI_STATUS_RFIFOMT (2)
00028 #define XSPI_STATUS_RFIFOFULL (3)
00029 #define XSPI_STATUS_IRQ (4) //on write, clears irq bit
00030
00031
00032
00033
00034
00035 #define XSPI_CTL_IRQEN (0)
00036 #define XSPI_CTL_STARTPORT (1)
00037 #define XSPI_CTL_CE (2)
00038
00039
00040
00041
00042
00043
00044 #define XSPI_CLEAR_IRQ() XSPI_STATUS = BIT(XSPI_STATUS_IRQ)
00045 #define XSPI_IRQEN() XSPI_CONTROL |= BIT(XSPI_CTL_IRQEN)
00046 #define XSPI_STARTPORT() XSPI_CONTROL |= BIT(XSPI_CTL_STARTPORT)
00047 #define XSPI_IRQDIS() XSPI_CONTROL &= ~(BIT(XSPI_CTL_IRQEN))
00048 #define XSPI_SET_CE() XSPI_CONTROL |= BIT(XSPI_CTL_CE)
00049 #define XSPI_CLR_CE() XSPI_CONTROL &= ~(BIT(XSPI_CTL_CE))
00050
00051 extern void InitXspi(void);
00052 extern void XspiSetBitRate(unsigned long Rate);
00053 extern unsigned char XspiTransferByte(unsigned char data);
00054 extern int XspiTransfer(char *buff, int n);
00055
00056 #endif