On Wed, Feb 8, 2017 at 10:46 PM, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > Btw, I have got similar issue and thinking about those states they are > quite orthogonal to the pin states. Wouldn't be better to actually > differentiate PM related states and pin states? I don't fully understand what you mean here, but I like the sound of it. "sleep" and "default" were traditionally related to the system suspend/resume states. It was suggested that the core handle this automatically, but it doesn't work because of things like that userspace can disable a TTY/UART and then it should sleep, regardless of the state of the system. Runtime PM "sleep" and "resume" is closer to what we want to achieve here, and might be a good integration point. (CC:ing Ulf, he's looking into things like this.) > In my case I have a ->probe() function where device is requested GPIO > in order to make it wake capable source without using anywhere else. > So, this requires to have "init" state to be defined which is kinda > inconvenient. > > On resume/suspend it calls pinctrl_pm_state*() and requires "default" > and "sleep" states to be defined. > > I think GPIO case is quite generic and pin control framework lacks of > something like switching some pins of the group to GPIO state and back > whenever they defined as wake capable sources. I guess by "GPIO state" you are referring to what is discussed in Documentation/pinctrl.txt as "GPIO mode pitfalls", i.e. it is not really used as a GPIO, but as part of a device functionality it just happens that the TRM calls the asynchronous (low power mode) edge detector mode "GPIO". > I would work towards fixing this issue anyway (to get UART runtime PM > working on serial consoles). Everyone would be grateful for that. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html