[PATCH v2 0/2] pinctrl: rockchip: add rk3308b SoC support

From: Dmitry Yashin
Date: Wed May 29 2024 - 10:44:50 EST


This patch series and adds support for pin controller found on rk3308b.
According to rk3308b TRM, this pinctrl much the same as rk3308's,
but with additional iomux routes and 3bit iomuxes selected via
gpio##_sel_src_ctrl registers.

Downstream kernel [1] managed this SoC's with rk3308b_soc_data_init,
wich picked configuration based on cpuid. Upstream pinctrl patches
droped soc init function.

The function rk3308b_soc_sel_src_init sets up gpio##_sel_src_ctrl
registers, making SoC to use 3bit iomuxes over some 2bit old ones.

These patches have been tested on Radxa's ROCK Pi S, one based on rk3308
and the other on rk3308b (from the latest batches). For the new boards it
fixes broken spi1 clk.

Similar effort [2] was made several years ago, but without keeping base
rk3308 SoC pinctrl support.

Based on feedback from Luca, Heiko and Jonas, the v2 series droped dt
binding in the favor of runtime SoC detection, so iomux_recalced and
iomux_routes updated for the new SoC's and patch 1 delays recalced_mask
and route_mask init.

[1] https://github.com/radxa/kernel/blob/stable-4.4-rockpis/drivers/pinctrl/pinctrl-rockchip.c#L4388
[2] https://lore.kernel.org/linux-rockchip/20220930102620.1568864-1-jay.xu@xxxxxxxxxxxxxx/

v1 Link: https://lore.kernel.org/all/20240515121634.23945-1-dmt.yashin@xxxxxxxxx/

Changes in v2:
- Drop routes fixup patch, already applied
- Drop dt binding patch
- Add new patch to delay recalced_mask and route_mask init
- Rework last patch from dt to runtime setup with rk3308_soc_data_update

Dmitry Yashin (2):
pinctrl: rockchip: delay recalced_mask and route_mask init
pinctrl: rockchip: add rk3308b SoC support

drivers/pinctrl/pinctrl-rockchip.c | 286 +++++++++++++++++++++++++++--
drivers/pinctrl/pinctrl-rockchip.h | 1 +
2 files changed, 267 insertions(+), 20 deletions(-)

--
2.39.2