pinctrl: rockchip: list all pins in a possible mux route for PX30
authorQuentin Schulz <quentin.schulz@theobroma-systems.com>
Tue, 18 Oct 2022 12:17:23 +0000 (14:17 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 7 Nov 2022 14:39:38 +0000 (15:39 +0100)
commitbee55f2e7a44e7a7676e264b42f026e34bd244d9
tree4a685edb87797a6dc9d007103e17a1bd847f34ef
parentf0c4d9fc9cc9462659728d168387191387e903cc
pinctrl: rockchip: list all pins in a possible mux route for PX30

The mux routes are incomplete for the PX30. This was discovered because
we had a HW design using cif-clkoutm1 with the correct pinmux in the
Device Tree but the clock would still not work.

There are actually two muxing required: the pin muxing (performed by the
usual Device Tree pinctrl nodes) and the "function" muxing (m0 vs m1;
performed by the mux routing inside the driver). The pin muxing was
correct but the function muxing was not.

This adds the missing pins and their configuration for the mux routes
that are already specified in the driver.

Note that there are some "conflicts": it is possible *in Device Tree* to
(attempt to) mux the pins for e.g. clkoutm1 and clkinm0 at the same time
but this is actually not possible in hardware (because both share the
same bit for the function muxing). Since it is an impossible hardware
design, it is not deemed necessary to prevent the user from attempting
to "misconfigure" the pins/functions.

Fixes: 87065ca9b8e5 ("pinctrl: rockchip: Add pinctrl support for PX30")
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Link: https://lore.kernel.org/r/20221017-upstream-px30-cif-clkoutm1-v1-0-4ea1389237f7@theobroma-systems.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-rockchip.c