From 64f51c86a82a7779aa591e2587c7d99df10aa2f6 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Mon, 18 Jan 2021 18:41:49 +0800 Subject: [PATCH] cpufreq: rockchip: Implement get_soc_info() for rv1126 SoCs Signed-off-by: Finley Xiao Change-Id: Ie56cf08706db7ffcf1d5821e7f43b61a7677e253 --- drivers/cpufreq/rockchip-cpufreq.c | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/cpufreq/rockchip-cpufreq.c b/drivers/cpufreq/rockchip-cpufreq.c index 44281ebab8a5..206f47335503 100644 --- a/drivers/cpufreq/rockchip-cpufreq.c +++ b/drivers/cpufreq/rockchip-cpufreq.c @@ -184,6 +184,29 @@ out: return ret; } + +static int rv1126_get_soc_info(struct device *dev, struct device_node *np, + int *bin, int *process) +{ + int ret = 0, value = -EINVAL; + + if (of_property_match_string(np, "nvmem-cell-names", "performance") >= 0) { + ret = rockchip_get_efuse_value(np, "performance", &value); + if (ret) { + dev_err(dev, "Failed to get soc performance value\n"); + return ret; + } + if (value == 0x1) + *bin = 1; + else + *bin = 0; + } + if (*bin >= 0) + dev_info(dev, "bin=%d\n", *bin); + + return ret; +} + static const struct of_device_id rockchip_cpufreq_of_match[] = { { .compatible = "rockchip,px30", @@ -205,6 +228,14 @@ static const struct of_device_id rockchip_cpufreq_of_match[] = { .compatible = "rockchip,rk3399", .data = (void *)&rk3399_get_soc_info, }, + { + .compatible = "rockchip,rv1109", + .data = (void *)&rv1126_get_soc_info, + }, + { + .compatible = "rockchip,rv1126", + .data = (void *)&rv1126_get_soc_info, + }, {}, };