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