Browse Source

rockchip: rk3288: Allow setting up clocks in U-Boot proper

If U-Boot is chain-loaded from a previous boot loader we must set up the
clocks the way U-Boot wants them. Add code for this. It will do nothing if
SPL has already done the job.

Signed-off-by: Simon Glass <sjg@chromium.org>
tags/2020-06-01
Simon Glass 4 years ago
parent
commit
fe97471632
2 changed files with 36 additions and 0 deletions
  1. +35
    -0
      arch/arm/mach-rockchip/rk3288-board.c
  2. +1
    -0
      configs/chromebook_jerry_defconfig

+ 35
- 0
arch/arm/mach-rockchip/rk3288-board.c View File

@@ -309,3 +309,38 @@ U_BOOT_CMD(
"display information about clocks",
""
);

#define GRF_SOC_CON2 0xff77024c

int board_early_init_f(void)
{
struct udevice *pinctrl;
struct udevice *dev;
int ret;

/*
* This init is done in SPL, but when chain-loading U-Boot SPL will
* have been skipped. Allow the clock driver to check if it needs
* setting up.
*/
ret = rockchip_get_clk(&dev);
if (ret) {
debug("CLK init failed: %d\n", ret);
return ret;
}
ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
return ret;
}

/* Enable debug UART */
ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG);
if (ret) {
debug("%s: Failed to set up console UART\n", __func__);
return ret;
}
rk_setreg(GRF_SOC_CON2, 1 << 0);

return 0;
}

+ 1
- 0
configs/chromebook_jerry_defconfig View File

@@ -10,6 +10,7 @@ CONFIG_SPL_STACK_R_ADDR=0x80000
CONFIG_DEFAULT_DEVICE_TREE="rk3288-veyron-jerry"
CONFIG_SILENT_CONSOLE=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000
# CONFIG_CMD_IMLS is not set