Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
Hosted Weblate 2021-08-20 06:01:24 +02:00
commit 8b1742d340
No known key found for this signature in database
GPG Key ID: A3FAAA06E6569B4C
3 changed files with 5 additions and 14 deletions

View File

@ -132,7 +132,8 @@ bool common_hal_busio_spi_write(busio_spi_obj_t *self, const uint8_t *data, size
} }
bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value) { bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value) {
SPI_EXCHANGE(self->spi_dev, NULL, data, len); memset(data, write_value, len);
SPI_EXCHANGE(self->spi_dev, data, data, len);
return true; return true;
} }

View File

@ -269,18 +269,8 @@ bool common_hal_busio_spi_write(busio_spi_obj_t *self, const uint8_t *data, size
} }
bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value) { bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value) {
uint8_t *next_chunk = data; memset(data, write_value, len);
return common_hal_busio_spi_transfer(self, data, data, len);
while (len > 0) {
size_t chunk_size = MIN(len, self->spim_peripheral->max_xfer_size);
const nrfx_spim_xfer_desc_t xfer = NRFX_SPIM_XFER_RX(next_chunk, chunk_size);
if (nrfx_spim_xfer(&self->spim_peripheral->spim, &xfer, 0) != NRFX_SUCCESS) {
return false;
}
next_chunk += chunk_size;
len -= chunk_size;
}
return true;
} }
bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, const uint8_t *data_out, uint8_t *data_in, size_t len) { bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, const uint8_t *data_out, uint8_t *data_in, size_t len) {

View File

@ -52,7 +52,7 @@ extern void common_hal_busio_spi_unlock(busio_spi_obj_t *self);
// Writes out the given data. // Writes out the given data.
extern bool common_hal_busio_spi_write(busio_spi_obj_t *self, const uint8_t *data, size_t len); extern bool common_hal_busio_spi_write(busio_spi_obj_t *self, const uint8_t *data, size_t len);
// Reads in len bytes while outputting zeroes. // Reads in len bytes while outputting the byte write_value.
extern bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value); extern bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value);
// Reads and write len bytes simultaneously. // Reads and write len bytes simultaneously.