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
00052 #include <sys/types.h>
00053 #include <cfg/arch.h>
00054
00055
00056 #define SPI_SETSPEED 0x0401
00057 #define SPI_GETSPEED 0x0402
00058
00059 #define SPI_SETMODE 0x0403
00060 #define SPI_GETMODE 0x0404
00061
00062 #define SPIMF_MASTER 0x00000001
00063 #define SPIMF_PCSDEC 0x00000002
00064 #define SPIMF_MFDETECT 0x00000004
00065 #define SPIMF_LOOPBACK 0x00000008
00066 #define SPIMF_SCKIAHI 0x00000010
00067 #define SPIMF_CAPRISE 0x00000020
00068 #define SPIMF_KEEPCS 0x00000040
00069
00070 #define SPI_SETDATABITS 0x0405
00071 #define SPI_GETDATABITS 0x0406
00072
00073
00074
00075 __BEGIN_DECLS
00076
00077 extern int At91Spi0Init(void);
00078 extern int At91Spi0InitChipSelects(u_int mask);
00079 extern int At91Spi0Enable(void);
00080 #if defined(SPI1_BASE)
00081 extern int At91Spi1Init(void);
00082 extern int At91Spi1InitChipSelects(u_int mask);
00083 extern int At91Spi1Enable(void);
00084 #endif
00085
00086 extern int At91SpiInit(u_int base);
00087 extern int At91SpiReset(u_int base);
00088 extern int At91SpiInitChipSelects(u_int base, u_int mask);
00089
00090 extern int At91SpiSetRate(u_int base, u_int cs, u_long rate);
00091 extern u_long At91SpiGetModeFlags(u_int base, u_int cs);
00092 extern int At91SpiSetModeFlags(u_int base, u_int cs, u_long mode);
00093 extern u_int At91SpiGetBits(u_int base, u_int cs);
00094 extern int At91SpiSetBits(u_int base, u_int cs, u_int bits);
00095 extern u_int At91SpiGetSckDelay(u_int base, u_int cs);
00096 extern int At91SpiSetSckDelay(u_int base, u_int cs, u_int dly);
00097 extern u_int At91SpiGetTxDelay(u_int base, u_int cs);
00098 extern int At91SpiSetTxDelay(u_int base, u_int cs, u_int dly);
00099 extern u_int At91SpiGetCsDelay(u_int base);
00100 extern int At91SpiSetCsDelay(u_int base, u_int dly);
00101
00102 extern int At91SpiTransfer2(u_int base, u_int cs, CONST void *txbuf, void *rxbuf, int xlen,
00103 CONST void *txnbuf, void *rxnbuf, int xnlen);
00104
00105 __END_DECLS
00106
00107 #endif