aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/broadcom/cygnus/spi.c1
-rw-r--r--src/soc/imgtec/pistachio/spi.c1
-rw-r--r--src/soc/mediatek/mt8173/spi.c5
-rw-r--r--src/soc/qualcomm/ipq40xx/spi.c5
4 files changed, 8 insertions, 4 deletions
diff --git a/src/soc/broadcom/cygnus/spi.c b/src/soc/broadcom/cygnus/spi.c
index 37d7c2a1de..65c9c9698d 100644
--- a/src/soc/broadcom/cygnus/spi.c
+++ b/src/soc/broadcom/cygnus/spi.c
@@ -313,7 +313,6 @@ static const struct spi_ctrlr spi_ctrlr = {
.claim_bus = spi_ctrlr_claim_bus,
.release_bus = spi_ctrlr_release_bus,
.xfer = spi_ctrlr_xfer,
- .xfer_vector = spi_xfer_two_vectors,
.max_xfer_size = 65535,
};
diff --git a/src/soc/imgtec/pistachio/spi.c b/src/soc/imgtec/pistachio/spi.c
index 7e1a7a67f5..6fb35089d6 100644
--- a/src/soc/imgtec/pistachio/spi.c
+++ b/src/soc/imgtec/pistachio/spi.c
@@ -572,7 +572,6 @@ static const struct spi_ctrlr spi_ctrlr = {
.claim_bus = spi_ctrlr_claim_bus,
.release_bus = spi_ctrlr_release_bus,
.xfer = spi_ctrlr_xfer,
- .xfer_vector = spi_xfer_two_vectors,
.max_xfer_size = IMGTEC_SPI_MAX_TRANSFER_SIZE,
};
diff --git a/src/soc/mediatek/mt8173/spi.c b/src/soc/mediatek/mt8173/spi.c
index ae6dc3b911..f70f4d991e 100644
--- a/src/soc/mediatek/mt8173/spi.c
+++ b/src/soc/mediatek/mt8173/spi.c
@@ -253,6 +253,10 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
size_t min_size = 0;
int ret;
+ /* Driver implementation does not support full duplex. */
+ if (bytes_in && bytes_out)
+ return -1;
+
while (bytes_out || bytes_in) {
if (bytes_in && bytes_out)
min_size = MIN(MIN(bytes_out, bytes_in), MTK_FIFO_DEPTH);
@@ -307,7 +311,6 @@ static const struct spi_ctrlr spi_ctrlr = {
.claim_bus = spi_ctrlr_claim_bus,
.release_bus = spi_ctrlr_release_bus,
.xfer = spi_ctrlr_xfer,
- .xfer_vector = spi_xfer_two_vectors,
.max_xfer_size = 65535,
};
diff --git a/src/soc/qualcomm/ipq40xx/spi.c b/src/soc/qualcomm/ipq40xx/spi.c
index 3dc6022b03..4498b31183 100644
--- a/src/soc/qualcomm/ipq40xx/spi.c
+++ b/src/soc/qualcomm/ipq40xx/spi.c
@@ -611,6 +611,10 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
u8 *rxp = (u8 *)din;
int ret;
+ /* Driver implementation does not support full duplex. */
+ if (dout && din)
+ return -1;
+
ret = config_spi_state(ds, QUP_STATE_RESET);
if (ret != SUCCESS)
return ret;
@@ -687,7 +691,6 @@ static const struct spi_ctrlr spi_ctrlr = {
.claim_bus = spi_ctrlr_claim_bus,
.release_bus = spi_ctrlr_release_bus,
.xfer = spi_ctrlr_xfer,
- .xfer_vector = spi_xfer_two_vectors,
.max_xfer_size = MAX_PACKET_COUNT,
};