Go to the documentation of this file.00001 #ifndef _DEV_AT91_SPI_H_
00002 #define _DEV_AT91_SPI_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00059 #include <sys/types.h>
00060 #include <cfg/arch.h>
00061
00062
00063 #define SPI_SETSPEED 0x0401
00064 #define SPI_GETSPEED 0x0402
00065
00066 #define SPI_SETMODE 0x0403
00067 #define SPI_GETMODE 0x0404
00068
00069 #define SPIMF_MASTER 0x00000001
00070 #define SPIMF_PCSDEC 0x00000002
00071 #define SPIMF_MFDETECT 0x00000004
00072 #define SPIMF_LOOPBACK 0x00000008
00073 #define SPIMF_SCKIAHI 0x00000010
00074 #define SPIMF_CAPRISE 0x00000020
00075 #define SPIMF_KEEPCS 0x00000040
00076
00077 #define SPI_SETDATABITS 0x0405
00078 #define SPI_GETDATABITS 0x0406
00079
00080
00081
00082 __BEGIN_DECLS
00083
00084 extern int At91Spi0Init(void);
00085 extern int At91Spi0InitChipSelects(unsigned int mask);
00086 extern int At91Spi0Enable(void);
00087 #if defined(SPI1_BASE)
00088 extern int At91Spi1Init(void);
00089 extern int At91Spi1InitChipSelects(unsigned int mask);
00090 extern int At91Spi1Enable(void);
00091 #endif
00092
00093 extern int At91SpiInit(unsigned int base);
00094 extern int At91SpiReset(unsigned int base);
00095 extern int At91SpiInitChipSelects(unsigned int base, unsigned int mask);
00096
00097 extern int At91SpiSetRate(unsigned int base, unsigned int cs, uint32_t rate);
00098 extern uint32_t At91SpiGetModeFlags(unsigned int base, unsigned int cs);
00099 extern int At91SpiSetModeFlags(unsigned int base, unsigned int cs, uint32_t mode);
00100 extern unsigned int At91SpiGetBits(unsigned int base, unsigned int cs);
00101 extern int At91SpiSetBits(unsigned int base, unsigned int cs, unsigned int bits);
00102 extern unsigned int At91SpiGetSckDelay(unsigned int base, unsigned int cs);
00103 extern int At91SpiSetSckDelay(unsigned int base, unsigned int cs, unsigned int dly);
00104 extern unsigned int At91SpiGetTxDelay(unsigned int base, unsigned int cs);
00105 extern int At91SpiSetTxDelay(unsigned int base, unsigned int cs, unsigned int dly);
00106 extern unsigned int At91SpiGetCsDelay(unsigned int base);
00107 extern int At91SpiSetCsDelay(unsigned int base, unsigned int dly);
00108
00109 extern int At91SpiTransfer2(unsigned int base, unsigned int cs, CONST void *txbuf, void *rxbuf, int xlen,
00110 CONST void *txnbuf, void *rxnbuf, int xnlen);
00111
00112 __END_DECLS
00113
00114 #endif