mirror of
https://github.com/andreili/klipper.git
synced 2025-08-23 19:34:06 +02:00
rp2040: spi - enable fifo
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
This commit is contained in:
parent
de182b1d14
commit
f4130aa948
@ -132,11 +132,15 @@ void
|
|||||||
spi_transfer(struct spi_config config, uint8_t receive_data,
|
spi_transfer(struct spi_config config, uint8_t receive_data,
|
||||||
uint8_t len, uint8_t *data)
|
uint8_t len, uint8_t *data)
|
||||||
{
|
{
|
||||||
|
uint8_t* wptr = data;
|
||||||
|
uint8_t* end = data + len;
|
||||||
spi_hw_t *spi = config.spi;
|
spi_hw_t *spi = config.spi;
|
||||||
while (len--) {
|
while (data < end) {
|
||||||
spi->dr = *data;
|
uint32_t sr = spi->sr & (SPI_SSPSR_TNF_BITS | SPI_SSPSR_RNE_BITS);
|
||||||
while (!(spi->sr & SPI_SSPSR_RNE_BITS))
|
if ((sr == SPI_SSPSR_TNF_BITS) && wptr < end)
|
||||||
;
|
spi->dr = *wptr++;
|
||||||
|
if (!(sr & SPI_SSPSR_RNE_BITS))
|
||||||
|
continue;
|
||||||
uint8_t rdata = spi->dr;
|
uint8_t rdata = spi->dr;
|
||||||
if(receive_data)
|
if(receive_data)
|
||||||
*data = rdata;
|
*data = rdata;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user