mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
77 lines
2.4 KiB
Diff
77 lines
2.4 KiB
Diff
From 62e99c283ab507f93e7dadda1b05e5c459f0e60d Mon Sep 17 00:00:00 2001
|
|
From: Jonas Karlman <jonas@kwiboo.se>
|
|
Date: Thu, 23 Jan 2025 22:48:15 +0000
|
|
Subject: [PATCH 3/9] ram: rockchip: Add basic support for RK3528
|
|
|
|
Add support for reading DRAM size information from PMUGRF os_reg18 reg.
|
|
|
|
Compared to most Rockchip SoCs the RK3528 use os_reg18 for DRAM info,
|
|
instead of os_reg2.
|
|
|
|
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
|
---
|
|
arch/arm/mach-rockchip/sdram.c | 3 ++-
|
|
drivers/ram/rockchip/Makefile | 1 +
|
|
drivers/ram/rockchip/sdram_rk3528.c | 33 +++++++++++++++++++++++++++++
|
|
3 files changed, 36 insertions(+), 1 deletion(-)
|
|
create mode 100644 drivers/ram/rockchip/sdram_rk3528.c
|
|
|
|
--- a/arch/arm/mach-rockchip/sdram.c
|
|
+++ b/arch/arm/mach-rockchip/sdram.c
|
|
@@ -110,7 +110,8 @@ static int rockchip_dram_init_banksize(v
|
|
u8 i, j;
|
|
|
|
if (!IS_ENABLED(CONFIG_ROCKCHIP_RK3588) &&
|
|
- !IS_ENABLED(CONFIG_ROCKCHIP_RK3568))
|
|
+ !IS_ENABLED(CONFIG_ROCKCHIP_RK3568) &&
|
|
+ !IS_ENABLED(CONFIG_ROCKCHIP_RK3528))
|
|
return -ENOTSUPP;
|
|
|
|
if (!IS_ENABLED(CONFIG_ROCKCHIP_EXTERNAL_TPL))
|
|
--- a/drivers/ram/rockchip/Makefile
|
|
+++ b/drivers/ram/rockchip/Makefile
|
|
@@ -13,6 +13,7 @@ obj-$(CONFIG_ROCKCHIP_RK3288) = sdram_rk
|
|
obj-$(CONFIG_ROCKCHIP_RK3308) = sdram_rk3308.o
|
|
obj-$(CONFIG_ROCKCHIP_RK3328) = sdram_rk3328.o sdram_pctl_px30.o sdram_phy_px30.o
|
|
obj-$(CONFIG_ROCKCHIP_RK3399) += sdram_rk3399.o
|
|
+obj-$(CONFIG_ROCKCHIP_RK3528) += sdram_rk3528.o
|
|
obj-$(CONFIG_ROCKCHIP_RK3568) += sdram_rk3568.o
|
|
obj-$(CONFIG_ROCKCHIP_RK3588) += sdram_rk3588.o
|
|
obj-$(CONFIG_ROCKCHIP_RV1126) += sdram_rv1126.o sdram_pctl_px30.o
|
|
--- /dev/null
|
|
+++ b/drivers/ram/rockchip/sdram_rk3528.c
|
|
@@ -0,0 +1,33 @@
|
|
+// SPDX-License-Identifier: GPL-2.0-or-later
|
|
+// Copyright Contributors to the U-Boot project.
|
|
+
|
|
+#include <dm.h>
|
|
+#include <ram.h>
|
|
+#include <asm/arch-rockchip/sdram.h>
|
|
+
|
|
+#define PMUGRF_BASE 0xff370000
|
|
+#define OS_REG18_REG 0x248
|
|
+
|
|
+static int rk3528_dmc_get_info(struct udevice *dev, struct ram_info *info)
|
|
+{
|
|
+ info->base = CFG_SYS_SDRAM_BASE;
|
|
+ info->size = rockchip_sdram_size(PMUGRF_BASE + OS_REG18_REG);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static struct ram_ops rk3528_dmc_ops = {
|
|
+ .get_info = rk3528_dmc_get_info,
|
|
+};
|
|
+
|
|
+static const struct udevice_id rk3528_dmc_ids[] = {
|
|
+ { .compatible = "rockchip,rk3528-dmc" },
|
|
+ { }
|
|
+};
|
|
+
|
|
+U_BOOT_DRIVER(rockchip_rk3528_dmc) = {
|
|
+ .name = "rockchip_rk3528_dmc",
|
|
+ .id = UCLASS_RAM,
|
|
+ .of_match = rk3528_dmc_ids,
|
|
+ .ops = &rk3528_dmc_ops,
|
|
+};
|