summaryrefslogtreecommitdiff
path: root/drivers/soc
diff options
context:
space:
mode:
authorElaine Zhang <zhangqing@rock-chips.com>2018-08-29 14:35:35 +0800
committerTao Huang <huangtao@rock-chips.com>2018-08-31 14:24:44 +0800
commit5ee5c49741ff832c6469b9ca14b66be9ae857994 (patch)
tree51607cab127384372e2cebbc6e785dabc5059a95 /drivers/soc
parentc5a692d3ea9ac350804c52c005e97a0db9e1fe11 (diff)
soc: rockchip: power-domain: add power domain support for rk1808
This driver is modified to support RK1808 SoC. Change-Id: Id622e126936a242f3dfbab94b0e7c7818b41f9ae Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Diffstat (limited to 'drivers/soc')
-rw-r--r--drivers/soc/rockchip/pm_domains.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c
index c8878798bccb..7b683ce5ccb0 100644
--- a/drivers/soc/rockchip/pm_domains.c
+++ b/drivers/soc/rockchip/pm_domains.c
@@ -21,6 +21,7 @@
#include <soc/rockchip/pm_domains.h>
#include <soc/rockchip/rockchip_dmc.h>
#include <dt-bindings/power/px30-power.h>
+#include <dt-bindings/power/rk1808-power.h>
#include <dt-bindings/power/rk3036-power.h>
#include <dt-bindings/power/rk3128-power.h>
#include <dt-bindings/power/rk3228-power.h>
@@ -895,6 +896,13 @@ static const struct rockchip_domain_info px30_pm_domains[] = {
[PX30_PD_GPU] = DOMAIN_PX30(15, 15, 2, false),
};
+static const struct rockchip_domain_info rk1808_pm_domains[] = {
+ [RK1808_VD_NPU] = DOMAIN_PX30(15, 15, 2, false),
+ [RK1808_PD_PCIE] = DOMAIN_PX30(9, 9, 4, false),
+ [RK1808_PD_VPU] = DOMAIN_PX30(13, 13, 7, false),
+ [RK1808_PD_VIO] = DOMAIN_PX30(14, 14, 8, false),
+};
+
static const struct rockchip_domain_info rk3036_pm_domains[] = {
[RK3036_PD_MSCH] = DOMAIN_RK3036(14, 23, 30, true),
[RK3036_PD_CORE] = DOMAIN_RK3036(13, 17, 24, false),
@@ -1005,6 +1013,17 @@ static const struct rockchip_pmu_info px30_pmu = {
.domain_info = px30_pm_domains,
};
+static const struct rockchip_pmu_info rk1808_pmu = {
+ .pwr_offset = 0x14,
+ .status_offset = 0x20,
+ .req_offset = 0x64,
+ .idle_offset = 0x6c,
+ .ack_offset = 0x6c,
+
+ .num_domains = ARRAY_SIZE(rk1808_pm_domains),
+ .domain_info = rk1808_pm_domains,
+};
+
static const struct rockchip_pmu_info rk3036_pmu = {
.req_offset = 0x148,
.idle_offset = 0x14c,
@@ -1117,6 +1136,10 @@ static const struct of_device_id rockchip_pm_domain_dt_match[] = {
.data = (void *)&px30_pmu,
},
{
+ .compatible = "rockchip,rk1808-power-controller",
+ .data = (void *)&rk1808_pmu,
+ },
+ {
.compatible = "rockchip,rk3036-power-controller",
.data = (void *)&rk3036_pmu,
},