[PATCH V3 1/2] pinctrl: bcm2835: Implement bcm2835_pinconf_get

Linus Walleij linus.walleij at linaro.org
Wed Mar 6 04:57:27 PST 2024


On Wed, Mar 6, 2024 at 9:55 AM Chen-Yu Tsai <wens at kernel.org> wrote:

> For the MediaTek device trees, the only two occurrences of "output-enable"
> actually describe conflicting information:
>
>     pins-rts {
>             pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
>             output-enable;
>     };
>
> The above asks for the UART function on this pin, but based on existing
> driver definitions, switches the function to GPIO output because of the
> "output-enable" property. Hence the confusion.

This is actually also driver-dependent.

It is only conflicting if the pin controller has .strict set in struct
pinmux_ops,
because many SoCs are perfectly capable of using a pin as a function
such as UART RTS and GPIO at *the same time*.

Details on strict mode can be found in Documentation/driver-api/pin-control.rst

I don't know which Mediatek this is but:
$ git grep strict drivers/pinctrl/mediatek/
drivers/pinctrl/mediatek/pinctrl-moore.c:       .strict = true,

Only the Moore family is strict, and I think BCM2835 is not.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list