pt., 18 paź 2019 o 12:05 Lucas Stach <l.stach@xxxxxxxxxxxxxx> napisał(a): > > Some devicetrees specify the ACTIVE_LOW flag in the fixed regulator GPIO > handle. While this has always been ignored, it's consistent with the > behavior of the regulator binding in the absence of the > "enable-active-high" DT property. It doesn't make much sense to print a > user visible warning for a configuration which is consistent, so only > print the warning if the GPIO flag contradicts the behavior dictated by > by the enable-active-high property. > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > --- > drivers/gpio/gpiolib-of.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c > index 1eea2c6c2e1d..0b5383706b91 100644 > --- a/drivers/gpio/gpiolib-of.c > +++ b/drivers/gpio/gpiolib-of.c > @@ -134,18 +134,20 @@ static void of_gpio_flags_quirks(struct device_node *np, > (!(strcmp(propname, "enable-gpio") && > strcmp(propname, "enable-gpios")) && > of_device_is_compatible(np, "regulator-gpio")))) { > + bool active_low = > + !of_property_read_bool(np, "enable-active-high"); > /* > * The regulator GPIO handles are specified such that the > * presence or absence of "enable-active-high" solely controls > * the polarity of the GPIO line. Any phandle flags must > * be actively ignored. > */ > - if (*flags & OF_GPIO_ACTIVE_LOW) { > + if ((*flags & OF_GPIO_ACTIVE_LOW) && !active_low) { > pr_warn("%s GPIO handle specifies active low - ignored\n", > of_node_full_name(np)); > *flags &= ~OF_GPIO_ACTIVE_LOW; > } > - if (!of_property_read_bool(np, "enable-active-high")) > + if (active_low) > *flags |= OF_GPIO_ACTIVE_LOW; > } > /* > -- > 2.20.1 > This makes perfect sense, so applied right away. Bart