* * $Log: at91_spi.h,v $ * Revision 1.2 2006/10/08 16:48:09 haraldkipp * Documentation fixed * * Revision 1.1 2006/09/29 12:34:59 haraldkipp * Basic AT91 SPI support added. * * *
Definition in file at91_spi.h.
Go to the source code of this file.
Defines | |
#define | SPI_SETSPEED 0x0401 |
#define | SPI_GETSPEED 0x0402 |
#define | SPI_SETMODE 0x0403 |
#define | SPI_GETMODE 0x0404 |
#define | SPIMF_MASTER 0x00000001 |
#define | SPIMF_PCSDEC 0x00000002 |
#define | SPIMF_MFDETECT 0x00000004 |
#define | SPIMF_LOOPBACK 0x00000008 |
#define | SPIMF_SCKIAHI 0x00000010 |
#define | SPIMF_CAPRISE 0x00000020 |
#define | SPIMF_KEEPCS 0x00000040 |
#define | SPI_SETDATABITS 0x0405 |
#define | SPI_GETDATABITS 0x0406 |
Functions | |
int | At91Spi0Init (void) |
Initialize the first serial peripheral interface on the AT91 MCU. | |
int | At91Spi0InitChipSelects (u_int mask) |
Initialize specified SPI0 chip selects on the AT91 MCU. | |
int | At91Spi0Enable (void) |
Initialize the second serial peripheral interface on the AT91 MCU. | |
int | At91SpiInit (u_int base) |
Initialize serial peripheral interface on the AT91 MCU. | |
int | At91SpiReset (u_int base) |
Reset serial peripheral interface on the AT91 MCU. | |
int | At91SpiInitChipSelects (u_int base, u_int mask) |
Initialize specified SPI chip selects on the AT91 MCU. | |
int | At91SpiSetRate (u_int base, u_int cs, u_long rate) |
Configure the SPI rate. | |
u_long | At91SpiGetModeFlags (u_int base, u_int cs) |
int | At91SpiSetModeFlags (u_int base, u_int cs, u_long mode) |
Configure the SPI operation mode. | |
u_int | At91SpiGetBits (u_int base, u_int cs) |
int | At91SpiSetBits (u_int base, u_int cs, u_int bits) |
u_int | At91SpiGetSckDelay (u_int base, u_int cs) |
int | At91SpiSetSckDelay (u_int base, u_int cs, u_int dly) |
u_int | At91SpiGetTxDelay (u_int base, u_int cs) |
int | At91SpiSetTxDelay (u_int base, u_int cs, u_int dly) |
u_int | At91SpiGetCsDelay (u_int base) |
int | At91SpiSetCsDelay (u_int base, u_int dly) |
int | At91SpiTransfer2 (u_int base, u_int cs, CONST void *txbuf, void *rxbuf, int xlen, CONST void *txnbuf, void *rxnbuf, int xnlen) |
Transfer two SPI buffers. |
#define SPI_SETSPEED 0x0401 |
Definition at line 56 of file at91_spi.h.
#define SPI_GETSPEED 0x0402 |
Definition at line 57 of file at91_spi.h.
#define SPI_SETMODE 0x0403 |
Definition at line 59 of file at91_spi.h.
#define SPI_GETMODE 0x0404 |
Definition at line 60 of file at91_spi.h.
#define SPIMF_MASTER 0x00000001 |
Definition at line 62 of file at91_spi.h.
Referenced by At45dbInit(), At91SpiGetModeFlags(), and At91SpiSetModeFlags().
#define SPIMF_PCSDEC 0x00000002 |
#define SPIMF_MFDETECT 0x00000004 |
Definition at line 64 of file at91_spi.h.
Referenced by At91SpiGetModeFlags(), and At91SpiSetModeFlags().
#define SPIMF_LOOPBACK 0x00000008 |
Definition at line 65 of file at91_spi.h.
Referenced by At91SpiGetModeFlags(), and At91SpiSetModeFlags().
#define SPIMF_SCKIAHI 0x00000010 |
Definition at line 66 of file at91_spi.h.
Referenced by At45dbInit(), At91SpiGetModeFlags(), and At91SpiSetModeFlags().
#define SPIMF_CAPRISE 0x00000020 |
Definition at line 67 of file at91_spi.h.
Referenced by At45dbInit(), At91SpiGetModeFlags(), and At91SpiSetModeFlags().
#define SPIMF_KEEPCS 0x00000040 |
#define SPI_SETDATABITS 0x0405 |
Definition at line 70 of file at91_spi.h.
#define SPI_GETDATABITS 0x0406 |
Definition at line 71 of file at91_spi.h.
int At91Spi0Init | ( | void | ) |
Initialize the first serial peripheral interface on the AT91 MCU.
Definition at line 73 of file at91_spi.c.
References _BV, At91Spi0Enable(), At91SpiReset(), NutIrqEnable(), NutRegisterIrqHandler(), outr, PMC_PCER, sig_SPI0, SPI0_BASE, and SPI0_ID.
Referenced by At91SpiInit().
int At91Spi0InitChipSelects | ( | u_int | mask | ) |
Initialize specified SPI0 chip selects on the AT91 MCU.
mask | Chip selects to use. Set bit 0 for NPCS0, bit 1 for NPCS1 and so on. |
Definition at line 96 of file at91_spi.c.
References _BV, outr, PIO_PDR_OFF, SPI0_CS0_PIN, SPI0_CS0_PIO_BASE, SPI0_CS0_PSR_OFF, SPI0_CS1_PIN, SPI0_CS1_PIO_BASE, SPI0_CS1_PSR_OFF, SPI0_CS2_PIN, SPI0_CS2_PIO_BASE, SPI0_CS2_PSR_OFF, SPI0_CS3_PIN, SPI0_CS3_PIO_BASE, and SPI0_CS3_PSR_OFF.
Referenced by At91SpiInitChipSelects().
int At91Spi0Enable | ( | void | ) |
Initialize the second serial peripheral interface on the AT91 MCU.
Definition at line 132 of file at91_spi.c.
References outr, PIO_PDR_OFF, SPI0_PINS, SPI0_PIO_BASE, and SPI0_PSR_OFF.
Referenced by At91Spi0Init().
int At91SpiInit | ( | u_int | base | ) |
Initialize serial peripheral interface on the AT91 MCU.
base | Interface base address, either SPI_BASE, SPI0_BASE or SPI1_BASE. |
Definition at line 234 of file at91_spi.c.
References At91Spi0Init(), SPI0_BASE, and SPI1_BASE.
Referenced by At45dbInit().
int At91SpiReset | ( | u_int | base | ) |
Reset serial peripheral interface on the AT91 MCU.
base | Interface base address, either SPI_BASE, SPI0_BASE or SPI1_BASE. |
Definition at line 274 of file at91_spi.c.
References At91SpiDisable(), At91SpiEnable(), outr, SPI_CR_OFF, SPI_DLYBCS_LSB, SPI_MODFDIS, SPI_MR_OFF, SPI_MSTR, SPI_PCS, and SPI_SWRST.
Referenced by At45dbInit(), and At91Spi0Init().
Initialize specified SPI chip selects on the AT91 MCU.
base | Interface base address, either SPI_BASE, SPI0_BASE or SPI1_BASE. | |
mask | Chip selects to use. Set bit 0 for NPCS0, bit 1 for NPCS1 and so on. |
Definition at line 304 of file at91_spi.c.
References At91Spi0InitChipSelects(), SPI0_BASE, and SPI1_BASE.
Referenced by At45dbInit().
Configure the SPI rate.
base | SPI register base. | |
cs | Chip select line. | |
rate | Baudrate. The maximum is MCK/1 and the minimum is MCK/255. If the specified rate is above the maximum or below the minimum, the maximum or minimum value resp. will be set. |
Definition at line 330 of file at91_spi.c.
References inr, outr, SPI_CSR0_OFF, SPI_CSR1_OFF, SPI_CSR2_OFF, SPI_CSR3_OFF, SPI_SCBR, and SPI_SCBR_LSB.
Referenced by At45dbInit().
Definition at line 368 of file at91_spi.c.
References inr, SPI_CPOL, SPI_CSR0_OFF, SPI_LLB, SPI_MODFDIS, SPI_MR_OFF, SPI_MSTR, SPI_NCPHA, SPI_PCSDEC, SPIMF_CAPRISE, SPIMF_LOOPBACK, SPIMF_MASTER, SPIMF_MFDETECT, and SPIMF_SCKIAHI.
Referenced by At91SpiSetModeFlags().
Configure the SPI operation mode.
base | SPI register base. | |
cs | Chip select line. | |
mode | Any of the following
|
Definition at line 413 of file at91_spi.c.
References At91SpiGetModeFlags(), inr, outr, SPI_CPOL, SPI_CSAAT, SPI_CSR0_OFF, SPI_LLB, SPI_MODFDIS, SPI_MR_OFF, SPI_MSTR, SPI_NCPHA, SPI_PCSDEC, SPIMF_CAPRISE, SPIMF_KEEPCS, SPIMF_LOOPBACK, SPIMF_MASTER, SPIMF_MFDETECT, SPIMF_PCSDEC, and SPIMF_SCKIAHI.
Referenced by At45dbInit().
Definition at line 455 of file at91_spi.c.
References inr, SPI_BITS, SPI_BITS_10, SPI_BITS_11, SPI_BITS_12, SPI_BITS_13, SPI_BITS_14, SPI_BITS_15, SPI_BITS_16, SPI_BITS_9, and SPI_CSR0_OFF.
Referenced by At91SpiSetBits().
Definition at line 491 of file at91_spi.c.
References At91SpiGetBits(), inr, outr, SPI_BITS, SPI_BITS_10, SPI_BITS_11, SPI_BITS_12, SPI_BITS_13, SPI_BITS_14, SPI_BITS_15, SPI_BITS_16, SPI_BITS_8, SPI_BITS_9, and SPI_CSR0_OFF.
Definition at line 533 of file at91_spi.c.
References inr, SPI_CSR0_OFF, SPI_DLYBS, and SPI_DLYBS_LSB.
Referenced by At91SpiSetSckDelay().
Definition at line 538 of file at91_spi.c.
References At91SpiGetSckDelay(), inr, outr, SPI_CSR0_OFF, SPI_DLYBS, and SPI_DLYBS_LSB.
Definition at line 550 of file at91_spi.c.
References inr, SPI_CSR0_OFF, SPI_DLYBCT, and SPI_DLYBCT_LSB.
Referenced by At91SpiSetTxDelay().
Definition at line 555 of file at91_spi.c.
References At91SpiGetTxDelay(), inr, outr, SPI_CSR0_OFF, SPI_DLYBCT, and SPI_DLYBCT_LSB.
Definition at line 567 of file at91_spi.c.
References inr, SPI_DLYBCS, SPI_DLYBCS_LSB, and SPI_MR_OFF.
Referenced by At91SpiSetCsDelay().
Definition at line 572 of file at91_spi.c.
References At91SpiGetCsDelay(), inr, outr, SPI_DLYBCS, SPI_DLYBCS_LSB, and SPI_MR_OFF.
int At91SpiTransfer2 | ( | u_int | base, | |
u_int | cs, | |||
CONST void * | txbuf, | |||
void * | rxbuf, | |||
int | xlen, | |||
CONST void * | txnbuf, | |||
void * | rxnbuf, | |||
int | xnlen | |||
) |
Transfer two SPI buffers.
base | SPI port base address. | |
cs | SPI device chip select. | |
txbuf | First transmit buffer. | |
rxbuf | First receive buffer. | |
xlen | Length of first transfer. | |
txnbuf | Second transmit buffer. | |
rxnbuf | Second receive buffer. | |
xnlen | Length of second transfer. |
Definition at line 594 of file at91_spi.c.
References inr, NutEventWait(), outr, PDC_RXTDIS, PDC_RXTEN, PDC_TXTDIS, PDC_TXTEN, PERIPH_PTCR_OFF, PERIPH_RCR_OFF, PERIPH_RNCR_OFF, PERIPH_RNPR_OFF, PERIPH_RPR_OFF, PERIPH_TCR_OFF, PERIPH_TNCR_OFF, PERIPH_TNPR_OFF, PERIPH_TPR_OFF, printf, SPI0_BASE, SPI1_BASE, SPI_IDR_OFF, SPI_IER_OFF, SPI_MR_OFF, SPI_PCS, SPI_PCS_0, SPI_PCS_1, SPI_PCS_2, SPI_PCS_3, SPI_RXBUFF, and SPI_SR_OFF.
Referenced by At45dbGetStatus(), and At45dbSendCmd().