rockchip: rk3288: Add OF board setup

The new rk3288 revision rk3288w has some changes with respect
to legacy rk3288 like hclk_vio in cru and usb host0 ohci.

Linux clock driver already handle this via rockchip,rk3288w-cru
compatible.

USB ohci host can enable via dts for rk3288w based boards.

So, add fdt board setup code to update cru compatible with
rk3288w-cru compatible if the SOC revision is RK3288W.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Jagan Teki 2020-07-21 12:16:38 +05:30 committed by Kever Yang
parent c60d1c4e17
commit eab5c50a3b
2 changed files with 31 additions and 0 deletions

View File

@ -99,6 +99,7 @@ config ROCKCHIP_RK322X
config ROCKCHIP_RK3288
bool "Support Rockchip RK3288"
select CPU_V7A
select OF_BOARD_SETUP
select SUPPORT_SPL
select SPL
select SUPPORT_TPL

View File

@ -13,6 +13,7 @@
#include <asm/io.h>
#include <asm/arch-rockchip/bootrom.h>
#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/cpu_rk3288.h>
#include <asm/arch-rockchip/cru.h>
#include <asm/arch-rockchip/hardware.h>
#include <asm/arch-rockchip/grf_rk3288.h>
@ -115,6 +116,35 @@ int rk_board_late_init(void)
return rk3288_board_late_init();
}
static int ft_rk3288w_setup(void *blob)
{
const char *path;
int offs, ret;
path = "/clock-controller@ff760000";
offs = fdt_path_offset(blob, path);
if (offs < 0) {
debug("failed to found fdt path %s\n", path);
return offs;
}
ret = fdt_setprop_string(blob, offs, "compatible", "rockchip,rk3288w-cru");
if (ret) {
printf("failed to set rk3288w-cru compatible (ret=%d)\n", ret);
return ret;
}
return ret;
}
int ft_board_setup(void *blob, struct bd_info *bd)
{
if (soc_is_rk3288w())
return ft_rk3288w_setup(blob);
return 0;
}
static int do_clock(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{