summaryrefslogtreecommitdiff
path: root/src/soc/qualcomm/sdm845
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/qualcomm/sdm845')
-rw-r--r--src/soc/qualcomm/sdm845/include/soc/qspi.h2
-rw-r--r--src/soc/qualcomm/sdm845/qspi.c18
-rw-r--r--src/soc/qualcomm/sdm845/spi.c1
3 files changed, 17 insertions, 4 deletions
diff --git a/src/soc/qualcomm/sdm845/include/soc/qspi.h b/src/soc/qualcomm/sdm845/include/soc/qspi.h
index ac9fd50f1b..3f83421e72 100644
--- a/src/soc/qualcomm/sdm845/include/soc/qspi.h
+++ b/src/soc/qualcomm/sdm845/include/soc/qspi.h
@@ -116,4 +116,6 @@ int sdm845_setup_bus(const struct spi_slave *slave);
void sdm845_release_bus(const struct spi_slave *slave);
int sdm845_xfer(const struct spi_slave *slave, const void *dout,
size_t out_bytes, void *din, size_t in_bytes);
+int sdm845_xfer_dual(const struct spi_slave *slave, const void *dout,
+ size_t out_bytes, void *din, size_t in_bytes);
#endif /* __SOC_QUALCOMM_SDM845_QSPI_H__ */
diff --git a/src/soc/qualcomm/sdm845/qspi.c b/src/soc/qualcomm/sdm845/qspi.c
index b9a5194a10..cced567a87 100644
--- a/src/soc/qualcomm/sdm845/qspi.c
+++ b/src/soc/qualcomm/sdm845/qspi.c
@@ -277,11 +277,9 @@ void sdm845_release_bus(const struct spi_slave *slave)
cs_change(CS_DEASSERT);
}
-int sdm845_xfer(const struct spi_slave *slave, const void *dout,
- size_t out_bytes, void *din, size_t in_bytes)
+static int xfer(enum qspi_mode mode, const void *dout, size_t out_bytes,
+ void *din, size_t in_bytes)
{
- enum qspi_mode mode = SDR_1BIT;
-
if ((out_bytes && !dout) || (in_bytes && !din) ||
(in_bytes && out_bytes)) {
return -1;
@@ -294,3 +292,15 @@ int sdm845_xfer(const struct spi_slave *slave, const void *dout,
return 0;
}
+
+int sdm845_xfer(const struct spi_slave *slave, const void *dout,
+ size_t out_bytes, void *din, size_t in_bytes)
+{
+ return xfer(SDR_1BIT, dout, out_bytes, din, in_bytes);
+}
+
+int sdm845_xfer_dual(const struct spi_slave *slave, const void *dout,
+ size_t out_bytes, void *din, size_t in_bytes)
+{
+ return xfer(SDR_2BIT, dout, out_bytes, din, in_bytes);
+}
diff --git a/src/soc/qualcomm/sdm845/spi.c b/src/soc/qualcomm/sdm845/spi.c
index e276e1d214..27aafa7b72 100644
--- a/src/soc/qualcomm/sdm845/spi.c
+++ b/src/soc/qualcomm/sdm845/spi.c
@@ -21,6 +21,7 @@ static const struct spi_ctrlr spi_ctrlr = {
.claim_bus = sdm845_claim_bus,
.release_bus = sdm845_release_bus,
.xfer = sdm845_xfer,
+ .xfer_dual = sdm845_xfer_dual,
.max_xfer_size = QSPI_MAX_PACKET_COUNT,
};