Hi Geert,

On 06/12/2017 04:18 PM, Geert Uytterhoeven wrote:
On Mon, Jun 12, 2017 at 9:15 AM, Shawn Lin <[email protected]> wrote:
On 2017/6/12 14:14, Jeffy Chen wrote:

Support using "cs-gpios" property to specify cs gpios.

Signed-off-by: Jeffy Chen <[email protected]>

index 83da493..02171b2 100644
--- a/Documentation/devicetree/bindings/spi/spi-rockchip.txt
+++ b/Documentation/devicetree/bindings/spi/spi-rockchip.txt
@@ -17,6 +17,7 @@ Required Properties:
          region.
   - interrupts: The interrupt number to the cpu. The interrupt specifier
format
                 depends on the interrupt controller.
+- cs-gpios : Specifies the gpio pins to be used for chipselects.

It's not a required property, otherwise how other boards work as your
patch 2 only add this for rk3399-gru.

--- a/drivers/spi/spi-rockchip.c
+++ b/drivers/spi/spi-rockchip.c

@@ -297,6 +302,50 @@ static void rockchip_spi_set_cs(struct spi_device
*spi, bool enable)
         pm_runtime_put_sync(rs->dev);
   }
   +static int rockchip_spi_setup(struct spi_device *spi)
+{
+       int ret = 0;
+       unsigned long flags = (spi->mode & SPI_CS_HIGH) ?
+                             GPIOF_OUT_INIT_LOW : GPIOF_OUT_INIT_HIGH;
+       struct rockchip_spi_data *data = spi_get_ctldata(spi);
+
+       if (!gpio_is_valid(spi->cs_gpio))
+               return 0;

return -EINVAL?

Isn't this check meant to fall back to hardware CS if no cs-gpios property
is present?

Thanks for your comment, and yes it is. I'll add a comment in the code to explain it :)

Gr{oetje,eeting}s,

                         Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                 -- Linus Torvalds





Reply via email to