[U-Boot] [PATCH] rockchip: rk3399: Fix enabling boot-on regulators
Kever Yang
kever.yang at rock-chips.com
Sat Jun 22 13:43:15 UTC 2019
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 at t-chip.com.cn>
> Signed-of-by: Mark Kettenis <kettenis at openbsd.org>
Reveiwed-by: Kever Yang <kever.yang at 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__);
More information about the U-Boot
mailing list