pinctrl: core: Use delayed work for hogs
authorTony Lindgren <tony@atomide.com>
Tue, 27 Dec 2016 17:19:59 +0000 (09:19 -0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 3 Jan 2017 08:26:16 +0000 (09:26 +0100)
commit99e4f67508e1dd51e21ebae2150c6e4f4eae068b
tree9c8b6d2e865a0f06988ca14e77a75f7bc2d5f03a
parenta51c158bf0f7cab3bd593586801a1a8b51c7c741
pinctrl: core: Use delayed work for hogs

Having the pin control framework call pin controller functions
before it's probe has finished is not nice as the pin controller
device driver does not yet have struct pinctrl_dev handle.

Let's fix this issue by adding deferred work for late init. This is
needed to be able to add pinctrl generic helper functions that expect
to know struct pinctrl_dev handle. Note that we now need to call
create_pinctrl() directly as we don't want to add the pin controller
to the list of controllers until the hogs are claimed. We also need
to pass the pinctrl_dev to the device tree parser functions as they
otherwise won't find the right controller at this point.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/core.c
drivers/pinctrl/core.h
drivers/pinctrl/devicetree.c
drivers/pinctrl/devicetree.h