summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-03-06 13:26:29 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-03-06 13:29:04 +0100
commit85d5f6c17cb2610b99209cac7c2a74d6849d834d (patch)
tree20ddc1ffebb73668324758654a452cb17f7e28a9
parentbsp/atsam: Optimize XDMAD_Handler() (diff)
downloadrtems-85d5f6c17cb2610b99209cac7c2a74d6849d834d.tar.bz2
bsp/atsam: Accept only 8/16 bits per word
For proper 16 bits per word support we need probably some DMA adjustments. For 9 to 15 bits per word we need support for the variable peripheral select, see SR_MR[PS] register bit.
-rw-r--r--bsps/arm/atsam/spi/atsam_spi_bus.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/bsps/arm/atsam/spi/atsam_spi_bus.c b/bsps/arm/atsam/spi/atsam_spi_bus.c
index a9d1366c32..6819de639a 100644
--- a/bsps/arm/atsam/spi/atsam_spi_bus.c
+++ b/bsps/arm/atsam/spi/atsam_spi_bus.c
@@ -326,8 +326,7 @@ static int atsam_check_configure_spi(atsam_spi_bus *bus, const spi_ioc_transfer
|| msg->cs != bus->base.cs
) {
if (
- msg->bits_per_word < 8
- || msg->bits_per_word > 16
+ (msg->bits_per_word != 8 && msg->bits_per_word != 16)
|| msg->mode > 3
|| msg->speed_hz > bus->base.max_speed_hz
) {
@@ -458,9 +457,8 @@ static int atsam_spi_setup(spi_bus *base)
atsam_spi_bus *bus = (atsam_spi_bus *)base;
if (
- bus->base.speed_hz > MAX_SPI_FREQUENCY ||
- bus->base.bits_per_word < 8 ||
- bus->base.bits_per_word > 16
+ bus->base.speed_hz > MAX_SPI_FREQUENCY
+ || (bus->base.bits_per_word != 8 && bus->base.bits_per_word != 16)
) {
return -EINVAL;
}