Messages in this thread | | | Subject | Re: [RFC PATCH] SPI/ACPI: DesignWare: Add ACPI support for Designware SPI driver | From | Jiang Qiu <> | Date | Sun, 14 Feb 2016 17:47:47 +0800 |
| |
Hi Andy,
Sorry for late relpy because Chinese new year holiday. See my replies below.
Best Regards Jiang
在 2016/2/5 23:55, Andy Shevchenko 写道: > On Fri, Feb 5, 2016 at 9:11 AM, qiujiang <qiujiang@huawei.com> wrote: >> This patch added ACPI support for DesignWare SPI mmio driver. It >> was based the corresponding DT driver and compatible for this two >> way. This patch has been tested on Hisilicon D02 board. It relies >> on the GPIO patchset. > My comments below. As Mark mentioned, I want to ask you how to use this spi-dw-mmio driver for ACPI binding? Dose it need any other extra patchset? > >> @@ -84,8 +87,6 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) >> dws->num_cs = num_cs; >> >> if (pdev->dev.of_node) { >> - int i; >> - >> for (i = 0; i < dws->num_cs; i++) { >> int cs_gpio = of_get_named_gpio(pdev->dev.of_node, >> "cs-gpios", i); > It seems the driver was never validated with more than one chip select. > Perhaps someone has to switch to use of_spi_register_master() here. of_spi_register_master() will be executed in the spi_register_master(), but it just saved the cs_gpios to the spi_master and not used it any more. >> @@ -104,6 +105,18 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) >> } >> } >> >> + if (ACPI_COMPANION(&pdev->dev)) { >> + for (i = 0; i < dws->num_cs; i++) { >> + snprintf(propname, sizeof(propname), "cs%d", i); >> + gpiod = devm_gpiod_get(&pdev->dev, >> + propname, GPIOD_ASIS); >> + if (IS_ERR(gpiod)) { >> + dev_err(&pdev->dev, "Get gpio desc failed!\n"); >> + return PTR_ERR(gpiod); >> + } >> + } >> + } > Like Mark noticed there is also same issue. Do you indeed check the > configuration with different chip select signals? As a spi master driver, it seems that multi-chip select must be supported, so this check is necessary, I think. >
| |