Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: ingenic: Add support for use GPIO as chip select line.

Add support for using GPIOs as chip select lines on Ingenic SoCs.

Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/1650724725-93758-2-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

周琰杰 (Zhou Yanjie) and committed by
Mark Brown
e64e9ad2 cc470d55

+7 -2
+7 -2
drivers/spi/spi-ingenic.c
··· 380 380 struct spi_controller *ctlr; 381 381 struct ingenic_spi *priv; 382 382 void __iomem *base; 383 - int ret; 383 + int num_cs, ret; 384 384 385 385 pdata = of_device_get_match_data(dev); 386 386 if (!pdata) { ··· 416 416 if (IS_ERR(priv->flen_field)) 417 417 return PTR_ERR(priv->flen_field); 418 418 419 + if (device_property_read_u32(dev, "num-cs", &num_cs)) 420 + num_cs = 2; 421 + 419 422 platform_set_drvdata(pdev, ctlr); 420 423 421 424 ctlr->prepare_transfer_hardware = spi_ingenic_prepare_hardware; ··· 432 429 ctlr->bits_per_word_mask = pdata->bits_per_word_mask; 433 430 ctlr->min_speed_hz = 7200; 434 431 ctlr->max_speed_hz = 54000000; 435 - ctlr->num_chipselect = 2; 432 + ctlr->use_gpio_descriptors = true; 433 + ctlr->max_native_cs = 2; 434 + ctlr->num_chipselect = num_cs; 436 435 ctlr->dev.of_node = pdev->dev.of_node; 437 436 438 437 if (spi_ingenic_request_dma(ctlr, dev))