Messages in this thread | | | Date | Fri, 16 May 2014 13:53:11 -0600 | From | Stephen Warren <> | Subject | Re: [PATCH] pinctrl: add params in disable_setting for different usage |
| |
On 05/16/2014 10:21 AM, Linus Walleij wrote: > On Wed, May 14, 2014 at 4:01 AM, <fwu@marvell.com> wrote: > >> From: Fan Wu <fwu@marvell.com> >> >> The patch added params in disable_setting to differ the two possible usage, >> 1.Only want to disable the pin setting in SW aspect, param can be set to "0" >> 2.Want to disable the pin setting in both HW and SW aspect, param can be set to "1"; >> >> The reason why to do this is that: >> To avoid duplicated enable_setting operation without disabling operation which will >> let Pin's desc->mux_usecount keep being added. >> >> In the following case, the issue can be reproduced: >> 1)There is a driver need to switch Pin state dynamicly, E.g. b/t "sleep" and >> "default" state >> 2)The Pin setting configuration in the two state is same, like the following one: >> component a { >> pinctrl-names = "default", "sleep"; >> pinctrl-0 = <&a_grp_setting &c_grp_setting>; >> pinctrl-1 = <&b_grp_setting &c_grp_setting>; >> } >> The "c_grp_setting" config node is totaly same, maybe like following one: > > Hm this is a quite interesting thing if we can get it in place, but > I need Stephen's consent, also Tony should have a look at this as > I know he's had the same problem as you in pinctrl-single.
I only briefly looked at the patch, but it probably solves/hides the immediate problem.
However, rather than doing this, why not just remove pinmux_disable_setting() completely. It doesn't make sense to "disable a mux selection" (some value is always selected in the mux register field) any more than it does to "disable a drive strength selection". We don't have a pinconf_disable_setting(), and couldn't really add one if we wanted. For consistency, let's just remove pinmux_disable_setting(). Do you agree?
| |