Re: [PATCH v4 5/6] spi: at91-usart: add driver for at91-usart as spi

From: Nicolas Ferre
Date: Tue May 29 2018 - 10:39:02 EST


On 29/05/2018 at 16:34, Nicolas Ferre wrote:
On 29/05/2018 at 16:28, Radu Pirea wrote:


On 05/28/2018 11:21 AM, Andy Shevchenko wrote:
On Fri, May 25, 2018 at 8:19 PM, Radu Pirea <radu.pirea@xxxxxxxxxxxxx> wrote:
This is the driver for at91-usart in spi mode. The USART IP can be configured
to work in many modes and one of them is SPI.

[..]

+static int at91_usart_gpio_setup(struct platform_device *pdev)
+{

+ struct device_node *np = pdev->dev.parent->of_node;

Your driver is not OF specific as far as I can see. Drop all these
device_node stuff and change API calls respectively.

Ok. What do you suggest to use instead of OF API to get the count of
cs-gpios and to read their values one by one?

As Alexandre said, we can make this driver OF specific.

What could be interesting is to use the gpio descriptors API and not the
older one. This would allow us to have far more control over the gpio
that we use in our drivers (Ludovic is converting our drivers to only
use gpiod structures).

Oh, but we already said that we cannot.
Disregard my comment then, sorry for the noise.

Regards,
Nicolas



+ int i;

+ int ret = 0;
+ int nb = 0;

What happened to indentation?

Redundnant assignment for both.

+ if (!np)
+ return -EINVAL;
+
+ nb = of_gpio_named_count(np, "cs-gpios");
+ for (i = 0; i < nb; i++) {
+ int cs_gpio = of_get_named_gpio(np, "cs-gpios", i);
+
+ if (cs_gpio < 0)
+ return cs_gpio;
+
+ if (gpio_is_valid(cs_gpio)) {
+ ret = devm_gpio_request_one(&pdev->dev, cs_gpio,
+ GPIOF_DIR_OUT,
+ dev_name(&pdev->dev));
+ if (ret)
+ return ret;
+ }
+ }
+
+ return 0;
+}
[..]



--
Nicolas Ferre