Re: [PATCH] pinctrl: when claiming hog, skip maps not served by same device

Linus Walleij
2017-05-22T15:07:16Z

On Thu, May 11, 2017 at 10:02 PM, Nikita Yushchenko
<nikita.yoush@cogentembedded.com> wrote:

> When pinctrl device registers, it automatically claims hogs, that is,
> maps that pinctrl device serves for itself.
>
> It is possible that in addition to SoC's pinctrl device, other pinctrl
> devices get registered. E.g. some gpio expander devies are registered
> as pinctrl devices. For such devices, pinctrl maps could be defined
> that set up SoC's pins (e.g. interrupt pin for gpio expander). Such
> a map will have target device set to gpio expander.
>
> Here is device tree snippet that causes this scenario:
>
> &i2c0 {
> sx1503@20 {
> compatible = "semtech,sx1503q";
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_sx1503_20>;
> ...
> };
> };
> ...
> &iomuxc {
> pinctrl_sx1503_20: pinctrl-sx1503-20 {
> fsl,pins = <
> VF610_PAD_PTB1__GPIO_23 0x219d
> >;
> };
> };
>
> Such a map will have target device set to gpio expander. However is not
> a hog, it is a regular map that is claimed by core before gpio expander
> device is probed.
>
> Thus when looking for hogs, it is not enough to check that map's target
> device is set to pinctrl device being registered. Need also check that
> map's control device is also set to the same.
>
> Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>

Oh that looks logically correct, good find.

I guess I tested multiple pin control devices on a system but
not with also using hogs on them...

Patch applied with Tony's ACK.

Yours,
Linus Walleij