Message ID | 20190621205720.37044-1-kettenis@openbsd.org |
---|---|
State | Accepted |
Commit | 7c7ce3600ae97b08f281a6b61aa4abb0b56b0658 |
Delegated to: | Kever Yang |
Headers | show |
Series | [U-Boot] rockchip: rk3399: Fix enabling boot-on regulators | expand |
Hi Mark, On 06/22/2019 04:57 AM, Mark Kettenis wrote: > 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 <djw@t-chip.com.cn> > Signed-of-by: Mark Kettenis <kettenis@openbsd.org> Reveiwed-by: Kever Yang <kever.yang@rock-chips.com> Thanks, - Kever > --- > 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__);
On 06/22/2019 09:43 PM, Kever Yang wrote: > Hi Mark, > > > On 06/22/2019 04:57 AM, Mark Kettenis wrote: >> 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 <djw@t-chip.com.cn> >> Signed-of-by: Mark Kettenis <kettenis@openbsd.org> > Reveiwed-by: Kever Yang <kever.yang@rock-chips.com> Applied to u-boot-rockchip/master Thanks, - Kever > > Thanks, > - Kever >> --- >> 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__); > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
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__);