pinctrl: sunxi: dt: Consider pin base when calculating bank number from pin
authorChen-Yu Tsai <wens@csie.org>
Sat, 7 Jun 2025 13:52:03 +0000 (21:52 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 10 Jun 2025 12:35:40 +0000 (14:35 +0200)
commit5558f27a58459a4038ebb23bcb5bd40c1e345c57
treee43552517a1dfbf9e96fd5bddbd7ca5c69feae95
parent24b0277c1c539cd41539d9297baafc62df04464a
pinctrl: sunxi: dt: Consider pin base when calculating bank number from pin

In prepare_function_table() when the pinctrl function table IRQ entries
are generated, the pin bank is calculated from the absolute pin number;
however the IRQ bank mux array is indexed from the first pin bank of the
controller. For R_PIO controllers, this means the absolute pin bank is
way off from the relative pin bank used for array indexing.

Correct this by taking into account the pin base of the controller.

Fixes: f5e2cd34b12f ("pinctrl: sunxi: allow reading mux values from DT")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/20250607135203.2085226-1-wens@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sunxi/pinctrl-sunxi-dt.c