Fixup another level of compiler warnings, add _U() definition
This commit is contained in:
@ -143,9 +143,9 @@ static inline void spi_set_format(spi_inst_t *spi, uint data_bits, spi_cpol_t cp
|
||||
invalid_params_if(SPI, cpol != SPI_CPOL_0 && cpol != SPI_CPOL_1);
|
||||
invalid_params_if(SPI, cpha != SPI_CPHA_0 && cpha != SPI_CPHA_1);
|
||||
hw_write_masked(&spi_get_hw(spi)->cr0,
|
||||
(data_bits - 1) << SPI_SSPCR0_DSS_LSB |
|
||||
cpol << SPI_SSPCR0_SPO_LSB |
|
||||
cpha << SPI_SSPCR0_SPH_LSB,
|
||||
((uint)(data_bits - 1)) << SPI_SSPCR0_DSS_LSB |
|
||||
((uint)cpol) << SPI_SSPCR0_SPO_LSB |
|
||||
((uint)cpha) << SPI_SSPCR0_SPH_LSB,
|
||||
SPI_SSPCR0_DSS_BITS |
|
||||
SPI_SSPCR0_SPO_BITS |
|
||||
SPI_SSPCR0_SPH_BITS);
|
||||
|
@ -68,6 +68,8 @@ uint spi_set_baudrate(spi_inst_t *spi, uint baudrate) {
|
||||
// Write len bytes from src to SPI. Simultaneously read len bytes from SPI to dst.
|
||||
// Note this function is guaranteed to exit in a known amount of time (bits sent * time per bit)
|
||||
int __not_in_flash_func(spi_write_read_blocking)(spi_inst_t *spi, const uint8_t *src, uint8_t *dst, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
|
||||
// Never have more transfers in flight than will fit into the RX FIFO,
|
||||
// else FIFO will overflow if this code is heavily interrupted.
|
||||
const size_t fifo_depth = 8;
|
||||
@ -84,11 +86,12 @@ int __not_in_flash_func(spi_write_read_blocking)(spi_inst_t *spi, const uint8_t
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
||||
// Write len bytes directly from src to the SPI, and discard any data received back
|
||||
int __not_in_flash_func(spi_write_blocking)(spi_inst_t *spi, const uint8_t *src, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
// Write to TX FIFO whilst ignoring RX, then clean up afterward. When RX
|
||||
// is full, PL022 inhibits RX pushes, and sets a sticky flag on
|
||||
// push-on-full, but continues shifting. Safe if SSPIMSC_RORIM is not set.
|
||||
@ -109,7 +112,7 @@ int __not_in_flash_func(spi_write_blocking)(spi_inst_t *spi, const uint8_t *src,
|
||||
// Don't leave overrun flag set
|
||||
spi_get_hw(spi)->icr = SPI_SSPICR_RORIC_BITS;
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
||||
// Read len bytes directly from the SPI to dst.
|
||||
@ -117,6 +120,7 @@ int __not_in_flash_func(spi_write_blocking)(spi_inst_t *spi, const uint8_t *src,
|
||||
// Generally this can be 0, but some devices require a specific value here,
|
||||
// e.g. SD cards expect 0xff
|
||||
int __not_in_flash_func(spi_read_blocking)(spi_inst_t *spi, uint8_t repeated_tx_data, uint8_t *dst, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
const size_t fifo_depth = 8;
|
||||
size_t rx_remaining = len, tx_remaining = len;
|
||||
|
||||
@ -131,11 +135,12 @@ int __not_in_flash_func(spi_read_blocking)(spi_inst_t *spi, uint8_t repeated_tx_
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
||||
// Write len halfwords from src to SPI. Simultaneously read len halfwords from SPI to dst.
|
||||
int __not_in_flash_func(spi_write16_read16_blocking)(spi_inst_t *spi, const uint16_t *src, uint16_t *dst, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
// Never have more transfers in flight than will fit into the RX FIFO,
|
||||
// else FIFO will overflow if this code is heavily interrupted.
|
||||
const size_t fifo_depth = 8;
|
||||
@ -152,11 +157,12 @@ int __not_in_flash_func(spi_write16_read16_blocking)(spi_inst_t *spi, const uint
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
||||
// Write len bytes directly from src to the SPI, and discard any data received back
|
||||
int __not_in_flash_func(spi_write16_blocking)(spi_inst_t *spi, const uint16_t *src, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
// Deliberately overflow FIFO, then clean up afterward, to minimise amount
|
||||
// of APB polling required per halfword
|
||||
for (size_t i = 0; i < len; ++i) {
|
||||
@ -175,12 +181,13 @@ int __not_in_flash_func(spi_write16_blocking)(spi_inst_t *spi, const uint16_t *s
|
||||
// Don't leave overrun flag set
|
||||
spi_get_hw(spi)->icr = SPI_SSPICR_RORIC_BITS;
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
||||
// Read len halfwords directly from the SPI to dst.
|
||||
// repeated_tx_data is output repeatedly on SO as data is read in from SI.
|
||||
int __not_in_flash_func(spi_read16_blocking)(spi_inst_t *spi, uint16_t repeated_tx_data, uint16_t *dst, size_t len) {
|
||||
invalid_params_if(SPI, 0 > (int)len);
|
||||
const size_t fifo_depth = 8;
|
||||
size_t rx_remaining = len, tx_remaining = len;
|
||||
|
||||
@ -195,5 +202,5 @@ int __not_in_flash_func(spi_read16_blocking)(spi_inst_t *spi, uint16_t repeated_
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
return (int)len;
|
||||
}
|
||||
|
Reference in New Issue
Block a user