From: Rob Herring (Arm) Date: Fri, 12 Jun 2026 21:50:17 +0000 (-0500) Subject: spi: Fix mismatched DT property access types X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f846d68992142034b1d34a83200a10cdc713eeda;p=thirdparty%2Fkernel%2Flinux.git 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 --- diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index f560bd537f7d7..1341bdd7db75a 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 395214b81179e..30fcdb5028dc2 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;