Hi, Alexandre Courbot wrote: > On Sat, Jan 18, 2014 at 7:43 AM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > On Fri, Jan 17, 2014 at 9:53 PM, Russell King - ARM Linux > > <linux@xxxxxxxxxxxxxxxx> wrote: > >> On Fri, Jan 17, 2014 at 01:42:44PM -0700, Stephen Warren wrote: > > [...] > > If the OPEN_DRAIN flag is set on that descriptor we should > > always be able to read the input. But as this is not really what the > > I2C core wants to know (it really would prefer not to bother with > > such GPIO flag details) so is it better if we add a special call to > > figure out if the input can be read? Like: > > > > bool gpiod_input_always_valid(const struct gpio_desc *desc); > > > > And leave it up to the core to look at flags, driver characteristics > > etc and determine whether the input can be trusted? > > I am personally a little bit scared by the number of exported > functions in the GPIO framework. It is a pretty large number for > something that is supposed to be simple, so I'd like to avoid adding > more. :) How about the following: > > 1) GPIOs configured as output without the open drain or open source > flag either return -EINVAL on gpiod_get_value(), or a cached value > tracked by gpiolib for consistency (probably the latter). > 2) GPIOs configured as open drain or open source report the actual > value read on the pin, like i2c-core needs. This requires that, for > each GPIO that can be set open drain or open source, > gpiod_input_always_valid() == true. > I would not bind this to the open drain configuration. Any GPIO output pin may actually be in a different state than programmed when the output is forcefully driven by another source (shortcut). So it makes sense to be able to read back the real state of the pad even for push pull outputs. Lothar Waßmann -- ___________________________________________________________ Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10 Geschäftsführer: Matthias Kaussen Handelsregistereintrag: Amtsgericht Aachen, HRB 4996 www.karo-electronics.de | info@xxxxxxxxxxxxxxxxxxx ___________________________________________________________ -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html