On Wed, Apr 5, 2017 at 3:24 PM, Han, Nandor (GE Healthcare) <nandor.han@xxxxxx> wrote: > [Me] >> > + /* bring the chip out of reset */ >> > + reset_gpio = gpiod_get_optional(&spi->dev, "reset", GPIOD_OUT_LOW); >> > + if (IS_ERR(reset_gpio)) >> > + dev_warn(&spi->dev, "could not get reset-gpios\n"); >> > + else if (reset_gpio) >> > + gpiod_put(reset_gpio); >> >> I don't think you should put it, other than in the remove() >> function and in that case you need to have it in the >> state container. > > Can you please be more explicit here. > > Currently I'm trying to bring the device out from reset in case reset GPIO is provided. > I don't see how this could be done in remove() :) If you issue gpiod_put() you release the GPIO hande so something else can go in and grab the GPIO and assert the reset. This is not what you want to make possible: you want to hold this gpiod handle as long as the driver is running. devm_gpiod_get_optional() will do the trick if you don't want to put the handle under explicit control. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html