[PATCH] rockchip: rk3288: Add OF board setup

Jagan Teki jagan at amarulasolutions.com
Thu Jul 2 04:48:20 EDT 2020


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

In order to work these on the same in Linux kernel update the
compatible the root compatible with rockchip,rk3288w before
booting.

So, this support during of board setup code of rk3288.

Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
---
 arch/arm/mach-rockchip/Kconfig         |  1 +
 arch/arm/mach-rockchip/rk3288/rk3288.c | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index b1008a5058..822d8d4e9c 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -98,6 +98,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
diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c
index 804abe8a1b..8a682675e6 100644
--- a/arch/arm/mach-rockchip/rk3288/rk3288.c
+++ b/arch/arm/mach-rockchip/rk3288/rk3288.c
@@ -115,6 +115,32 @@ int rk_board_late_init(void)
 	return rk3288_board_late_init();
 }
 
+#ifdef CONFIG_OF_BOARD_SETUP
+
+#define RK3288_HDMI_PHYS	0xff980000
+#define RK3288W_HDMI_REV	0x1A
+#define HDMI_CONFIG0_ID		0x04
+
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	u8 config0;
+	int ret;
+
+	config0 = readb(RK3288_HDMI_PHYS + HDMI_CONFIG0_ID);
+	if (config0 == RK3288W_HDMI_REV) {
+		ret = fdt_setprop_string(blob, 0,
+					 "compatible", "rockchip,rk3288w");
+		if (ret < 0) {
+			printf("failed to set rk3288w compatible (ret=%d)\n",
+			       ret);
+			return ret;
+		}
+	}
+
+	return 0;
+}
+#endif
+
 static int do_clock(struct cmd_tbl *cmdtp, int flag, int argc,
 		    char *const argv[])
 {
-- 
2.25.1




More information about the Linux-rockchip mailing list