[PATCH v2 23/28] spi: s3c64xx: retrieve the FIFO size from the device tree

From: Tudor Ambarus
Date: Thu Jan 25 2024 - 09:56:51 EST


Allow SoCs that have multiple instances of the SPI IP with different
FIFO sizes to specify their FIFO size via the "samsung,spi-fifosize"
device tree property. With this we can break the dependency between the
SPI alias, the fifo_lvl_mask and the FIFO size.

Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>
---
drivers/spi/spi-s3c64xx.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 7a99f6b02319..3e7797d915c5 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1114,7 +1114,7 @@ static int s3c64xx_spi_get_fifosize(const struct platform_device *pdev,
const struct s3c64xx_spi_port_config *port = sdd->port_conf;
const int *fifo_lvl_mask = port->fifo_lvl_mask;
struct device_node *np = pdev->dev.of_node;
- int id;
+ int id, ret;

if (!np) {
if (pdev->id < 0)
@@ -1130,6 +1130,10 @@ static int s3c64xx_spi_get_fifosize(const struct platform_device *pdev,
return 0;
}

+ ret = of_property_read_u32(np, "samsung,spi-fifosize", &sdd->fifosize);
+ if (ret == 0)
+ return 0;
+
id = of_alias_get_id(np, "spi");
if (id < 0)
return dev_err_probe(&pdev->dev, id,
--
2.43.0.429.g432eaa2c6b-goog