atmel_spi: Driver for the Atmel SPI controller
This adds a driver for the SPI controller found on most AT91 and AVR32
chips, implementing the new SPI API.
Changed in v4:
- Update to new API
- Handle zero-length transfers appropriately. The user may send a
zero-length SPI transfer with SPI_XFER_END set in order to
deactivate the chip select after a series of transfers with chip
select active. This is useful e.g. when polling the status
register of DataFlash.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This commit is contained in:
committed by
Wolfgang Denk
parent
d255bb0e78
commit
60445cb5c3
@@ -25,6 +25,7 @@
|
||||
/* Currently, all the AP700x chips have these */
|
||||
#define AT32AP700x_CHIP_HAS_USART
|
||||
#define AT32AP700x_CHIP_HAS_MMCI
|
||||
#define AT32AP700x_CHIP_HAS_SPI
|
||||
|
||||
/* Only AP7000 has ethernet interface */
|
||||
#ifdef CONFIG_AT32AP7000
|
||||
|
||||
@@ -74,6 +74,12 @@ static inline unsigned long get_mci_clk_rate(void)
|
||||
return get_pbb_clk_rate();
|
||||
}
|
||||
#endif
|
||||
#ifdef AT32AP700x_CHIP_HAS_SPI
|
||||
static inline unsigned long get_spi_clk_rate(unsigned int dev_id)
|
||||
{
|
||||
return get_pba_clk_rate();
|
||||
}
|
||||
#endif
|
||||
|
||||
extern void clk_init(void);
|
||||
|
||||
|
||||
@@ -216,5 +216,9 @@ void gpio_enable_macb1(void);
|
||||
#ifdef AT32AP700x_CHIP_HAS_MMCI
|
||||
void gpio_enable_mmci(void);
|
||||
#endif
|
||||
#ifdef AT32AP700x_CHIP_HAS_SPI
|
||||
void gpio_enable_spi0(unsigned long cs_mask);
|
||||
void gpio_enable_spi1(unsigned long cs_mask);
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_AVR32_ARCH_GPIO_H__ */
|
||||
|
||||
Reference in New Issue
Block a user