[[RFC PATCH]] gpio: gpio-mxc: make sure gpio is input when request IRQ
From: Linus Walleij <hidden>
Date: 2014-07-25 11:38:55
Also in:
linux-devicetree
On Thu, Jul 24, 2014 at 10:12 AM, Markus Niebel [off-list ref] wrote:
Am 23.07.2014 18:14, wrote Linus Walleij:
quoted
So always prepare the hardware and make it ready for action in respective callbacks from the GPIO and irqchip APIs. Do not rely on gpiod_to_irq() having been called first.So a gpio driver is responsible to read status of gpio lines and flag any gpio line currently configured as out (base on the information read from hardware registers) on driver probe time - correct?
I don't think anyone reads that information explicitly to set up these flags. Drivers just leave the pins in their power-on maiden state without trying to figure out how they're set-up. But as you say, if you call gpiod_get_direction() on them, the flag gets set up indeed. So usually these flags are set by code, calling gpiod_[get/set]_direction(). Then they do get flagged as outputs or inputs.
If yes is the driver allowed to call gpiod_get_direction() to have the FLAG_IS_OUT set in the gpiolib layer?
I don't know if it'd be a good idea to loop over all gpios in a new irqchip and fetch the direction just to get the flags right, so far we haven't done that and I don't know what the usecase would be. If we need that we should do it in gpiolib for all drivers don't you think? But then we need a rationale for doing it, other than it's nice :-) It is already called on-the-fly by debugfs when a user needs that info. Yours, Linus Walleij