Hi Sascha, On 9/21/22 11:46, Sascha Hauer wrote: > On Mon, Sep 19, 2022 at 01:39:42PM +0200, Michael Riesch wrote: >> The IO domains in Rockchip SoCs need to be configured to match the >> corresponding bank voltage. In Linux this is achieved by means of a >> platform driver that reads the voltage value of the supplies and >> configures the bits in the general register file (GRF) accordingly. >> Port this driver to barebox to provide support for the Rockchip >> RK356x SoCs. >> >> Signed-off-by: Michael Riesch <michael.riesch@xxxxxxxxxxxxxx> >> --- >> drivers/soc/Kconfig | 1 + >> drivers/soc/Makefile | 1 + >> drivers/soc/rockchip/Kconfig | 17 +++ >> drivers/soc/rockchip/Makefile | 6 + >> drivers/soc/rockchip/io-domain.c | 223 +++++++++++++++++++++++++++++++ >> 5 files changed, 248 insertions(+) >> create mode 100644 drivers/soc/rockchip/Kconfig >> create mode 100644 drivers/soc/rockchip/Makefile >> create mode 100644 drivers/soc/rockchip/io-domain.c > > There's nothing in this driver that makes sure it is probed before the > users of the io domains. What happens when the users are probed before > the io domain driver? Correct. Unfortunately, the situation is quite the same in the kernel. Only recently there was a discussion as to how to resolve this issue [0]. While the RFC in [0] was received well there is no mainline solution to this problem. I would suggest that the mainline kernel solution is adopted once there is one. In the mean time we could - accept that it just works for some reason (TM) - leave the magic bits in the low-level initialization to be on the safe side - simply wait - ??? > Normally I would expect that the consumers have some phandle to their io > domain, but there's nothing like it in the device trees. The RFC in [0] suggests that the pinctrl is a consumer of the io domains, which would be in alignment with your expectations. Best regards, Michael [0] https://lore.kernel.org/lkml/20220802095252.2486591-1-foss+kernel@xxxxxxxxx/T/