Hi Geert, On 06/12/2017 04:18 PM, Geert Uytterhoeven wrote: > On Mon, Jun 12, 2017 at 9:15 AM, Shawn Lin <shawn.lin at rock-chips.com> wrote: >> On 2017/6/12 14:14, Jeffy Chen wrote: >>> >>> Support using "cs-gpios" property to specify cs gpios. >>> >>> Signed-off-by: Jeffy Chen <jeffy.chen at rock-chips.com> > >>> 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 -- geert at linux-m68k.org > > 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 > > >