From f846d68992142034b1d34a83200a10cdc713eeda Mon Sep 17 00:00:00 2001 From: "Rob Herring (Arm)" Date: Fri, 12 Jun 2026 16:50:17 -0500 Subject: [PATCH] spi: Fix mismatched DT property access types The SPI drivers read properties whose bindings use normal uint32 cells. Using boolean or u16 helpers makes the access look like a different DT encoding and causes the property checker to flag the call sites. Use presence checks for unsupported properties and read numeric cell properties through u32 helpers before assigning to driver fields. Assisted-by: Codex:gpt-5-5 Signed-off-by: Rob Herring (Arm) Link: https://patch.msgid.link/20260612215017.1884893-1-robh@kernel.org Signed-off-by: Mark Brown --- drivers/spi/spi-fsl-espi.c | 2 +- drivers/spi/spi-hisi-kunpeng.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index f560bd537f7d..1341bdd7db75 100644 --- a/drivers/spi/spi-fsl-espi.c +++ b/drivers/spi/spi-fsl-espi.c @@ -756,7 +756,7 @@ static int of_fsl_espi_probe(struct platform_device *ofdev) unsigned int irq, num_cs; int ret; - if (of_property_read_bool(np, "mode")) { + if (of_property_present(np, "mode")) { dev_err(dev, "mode property is not supported on ESPI!\n"); return -EINVAL; } diff --git a/drivers/spi/spi-hisi-kunpeng.c b/drivers/spi/spi-hisi-kunpeng.c index 395214b81179..30fcdb5028dc 100644 --- a/drivers/spi/spi-hisi-kunpeng.c +++ b/drivers/spi/spi-hisi-kunpeng.c @@ -463,6 +463,7 @@ static int hisi_spi_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct spi_controller *host; struct hisi_spi *hs; + u32 num_cs; int ret, irq; irq = platform_get_irq(pdev, 0); @@ -495,10 +496,11 @@ static int hisi_spi_probe(struct platform_device *pdev) if (host->max_speed_hz == 0) return dev_err_probe(dev, -EINVAL, "spi-max-frequency can't be 0\n"); - ret = device_property_read_u16(dev, "num-cs", - &host->num_chipselect); + ret = device_property_read_u32(dev, "num-cs", &num_cs); if (ret) host->num_chipselect = DEFAULT_NUM_CS; + else + host->num_chipselect = num_cs; host->use_gpio_descriptors = true; host->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP;