From db168539cf15dcd8a747cb22a0fde46af117e011 Mon Sep 17 00:00:00 2001 From: Younghyun Park Date: Fri, 23 Aug 2024 00:05:21 -0700 Subject: [PATCH] drivers: spi: dw: read ssi component version Read the Synopsys SSI component version to extend supported capability based on the version. Signed-off-by: Younghyun Park --- drivers/spi/spi_dw.c | 6 ++++++ drivers/spi/spi_dw.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/spi/spi_dw.c b/drivers/spi/spi_dw.c index 56e11e129e5..bd10447e442 100644 --- a/drivers/spi/spi_dw.c +++ b/drivers/spi/spi_dw.c @@ -566,6 +566,12 @@ int spi_dw_init(const struct device *dev) write_imr(dev, DW_SPI_IMR_MASK); clear_bit_ssienr(dev); + /* SSI component version */ + spi->version = read_ssi_comp_version(dev); + LOG_DBG("Version: %c.%c%c%c", (spi->version >> 24) & 0xff, + (spi->version >> 16) & 0xff, (spi->version >> 8) & 0xff, + spi->version & 0xff); + LOG_DBG("Designware SPI driver initialized on device: %p", dev); err = spi_context_cs_configure_all(&spi->ctx); diff --git a/drivers/spi/spi_dw.h b/drivers/spi/spi_dw.h index 55e28777cc4..55a25804664 100644 --- a/drivers/spi/spi_dw.h +++ b/drivers/spi/spi_dw.h @@ -48,6 +48,7 @@ struct spi_dw_config { struct spi_dw_data { DEVICE_MMIO_RAM; struct spi_context ctx; + uint32_t version; /* ssi comp version */ uint8_t dfs; /* dfs in bytes: 1,2 or 4 */ uint8_t fifo_diff; /* cannot be bigger than FIFO depth */ };