lede/target/linux/rockchip/patches-6.12/805-PM-devfreq-rockchip-dfi-add-more-soc-support.patch
2024-12-20 16:00:04 +08:00

54 lines
1.6 KiB
Diff

From 4db93c6dad0c71750b86163df2fdb21c35f00d9a Mon Sep 17 00:00:00 2001
From: hmz007 <hmz007@gmail.com>
Date: Tue, 19 Nov 2019 12:49:48 +0800
Subject: [PATCH] PM / devfreq: rockchip-dfi: add more soc support
Signed-off-by: hmz007 <hmz007@gmail.com>
---
drivers/devfreq/event/rockchip-dfi.c | 20 ++++++++++++++++++++++++---
1 file changed, 20 insertions(+)
--- a/drivers/devfreq/event/rockchip-dfi.c
+++ b/drivers/devfreq/event/rockchip-dfi.c
@@ -44,6 +44,9 @@
DDRMON_CTRL_LPDDR4 | \
DDRMON_CTRL_LPDDR23)
+#define READ_DRAMTYPE_INFO(n) (((n) >> 13) & 0x7)
+#define RK3328_GRF_OS_REG2 0x5d0
+
#define DDRMON_CH0_WR_NUM 0x20
#define DDRMON_CH0_RD_NUM 0x24
#define DDRMON_CH0_COUNT_NUM 0x28
@@ -669,6 +672,22 @@ static int rockchip_ddr_perf_init(struct
}
#endif
+static int rk3328_dfi_init(struct rockchip_dfi *dfi)
+{
+ struct regmap *regmap_pmu = dfi->regmap_pmu;
+ u32 val;
+
+ regmap_read(regmap_pmu, RK3328_GRF_OS_REG2, &val);
+ dfi->ddr_type = READ_DRAMTYPE_INFO(val);
+ dfi->channel_mask = BIT(0);
+ dfi->max_channels = 1;
+
+ dfi->ddrmon_stride = 0x0;
+ dfi->ddrmon_ctrl_single = true;
+
+ return 0;
+}
+
static int rk3399_dfi_init(struct rockchip_dfi *dfi)
{
struct regmap *regmap_pmu = dfi->regmap_pmu;
@@ -757,6 +776,7 @@ static int rk3588_dfi_init(struct rockch
};
static const struct of_device_id rockchip_dfi_id_match[] = {
+ { .compatible = "rockchip,rk3328-dfi", .data = rk3328_dfi_init },
{ .compatible = "rockchip,rk3399-dfi", .data = rk3399_dfi_init },
{ .compatible = "rockchip,rk3568-dfi", .data = rk3568_dfi_init },
{ .compatible = "rockchip,rk3588-dfi", .data = rk3588_dfi_init },