The new common rockchip pinctrl driver does not support explicit
requests for a particular pinctrl function.  As a result, the
board_init() function bails out early before enabling the boot-on
regulators.  Fix this by simply removing the request for pwm0, pwm2
and pwm3.  The generic DM code already does the necessary
configuration if necessary.

Reported-by: Levin Du <d...@t-chip.com.cn>
Signed-of-by: Mark Kettenis <kette...@openbsd.org>
---
Without this patch the boot-on regulators are not enabled and the
my firefly-rk3399 doesn't run OpenBSD stable without it.  Levin Du
reported similar problems with Linux.  I'd say this is a critical
fix that should make the 2019.07 release.

This patch deliberately does not touch the code in spl_boot_init()
as Jagan Teki just posted a patchset that touches those bits.

 board/rockchip/evb_rk3399/evb-rk3399.c | 32 +-------------------------
 1 file changed, 1 insertion(+), 31 deletions(-)

diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c 
b/board/rockchip/evb_rk3399/evb-rk3399.c
index bf2ad98c47..8c20bd6e11 100644
--- a/board/rockchip/evb_rk3399/evb-rk3399.c
+++ b/board/rockchip/evb_rk3399/evb-rk3399.c
@@ -13,39 +13,9 @@
 
 int board_init(void)
 {
-       struct udevice *pinctrl, *regulator;
+       struct udevice *regulator;
        int ret;
 
-       /*
-        * The PWM do not have decicated interrupt number in dts and can
-        * not get periph_id by pinctrl framework, so let's init them here.
-        * The PWM2 and PWM3 are for pwm regulater.
-        */
-       ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
-       if (ret) {
-               debug("%s: Cannot find pinctrl device\n", __func__);
-               goto out;
-       }
-
-       /* Enable pwm0 for panel backlight */
-       ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM0);
-       if (ret) {
-               debug("%s PWM0 pinctrl init fail! (ret=%d)\n", __func__, ret);
-               goto out;
-       }
-
-       ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM2);
-       if (ret) {
-               debug("%s PWM2 pinctrl init fail!\n", __func__);
-               goto out;
-       }
-
-       ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM3);
-       if (ret) {
-               debug("%s PWM3 pinctrl init fail!\n", __func__);
-               goto out;
-       }
-
        ret = regulators_enable_boot_on(false);
        if (ret)
                debug("%s: Cannot enable boot on regulator\n", __func__);
-- 
2.21.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to