27 Feb
2018
27 Feb
'18
11:30 p.m.
On Tue, Feb 27, 2018 at 6:24 PM, Mylène Josserand mylene.josserand@bootlin.com wrote:
pcm179x->reset = of_get_named_gpio(np, "reset-gpios", 0);
if (gpio_is_valid(pcm179x->reset)) {
ret = devm_gpio_request_one(dev, pcm179x->reset,
GPIOF_OUT_INIT_LOW,
"pcm179x reset");
if (ret) {
dev_err(dev,
"Failed to request GPIO %d as reset pin, error %d\n",
pcm179x->reset, ret);
return ret;
}
gpio_set_value(pcm179x->reset, 1);
It would be better to use the gpiod API, which takes the GPIO polarity into account.
There may be systems that have an inverter connected to this pin, and this can be changed in dts via GPIO_ACTIVE_HIGH.
Also, as the reset pin can be connected to an I2C expander, for example, so it is safer to use the cansleep variant:
gpiod_set_value_cansleep(pcm179x->reset, 0);