Skip to content

Commit 1782c87

Browse files
Elaine Zhangmmind
authored andcommitted
soc: rockchip: power-domain: add rk3568 powerdomains
Add power-domains found on rk3568 socs. Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com> Signed-off-by: Johan Jonker <jbx6244@gmail.com> Link: https://lore.kernel.org/r/20210417112952.8516-16-jbx6244@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
1 parent 66b89b8 commit 1782c87

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

drivers/soc/rockchip/pm_domains.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <dt-bindings/power/rk3366-power.h>
2828
#include <dt-bindings/power/rk3368-power.h>
2929
#include <dt-bindings/power/rk3399-power.h>
30+
#include <dt-bindings/power/rk3568-power.h>
3031

3132
struct rockchip_domain_info {
3233
const char *name;
@@ -135,6 +136,9 @@ struct rockchip_pmu {
135136
#define DOMAIN_RK3399(name, pwr, status, req, wakeup) \
136137
DOMAIN(name, pwr, status, req, req, req, wakeup)
137138

139+
#define DOMAIN_RK3568(name, pwr, req, wakeup) \
140+
DOMAIN_M(name, pwr, pwr, req, req, req, wakeup)
141+
138142
static bool rockchip_pmu_domain_is_idle(struct rockchip_pm_domain *pd)
139143
{
140144
struct rockchip_pmu *pmu = pd->pmu;
@@ -848,6 +852,18 @@ static const struct rockchip_domain_info rk3399_pm_domains[] = {
848852
[RK3399_PD_SDIOAUDIO] = DOMAIN_RK3399("sdioaudio", BIT(31), BIT(31), BIT(29), true),
849853
};
850854

855+
static const struct rockchip_domain_info rk3568_pm_domains[] = {
856+
[RK3568_PD_NPU] = DOMAIN_RK3568("npu", BIT(1), BIT(2), false),
857+
[RK3568_PD_GPU] = DOMAIN_RK3568("gpu", BIT(0), BIT(1), false),
858+
[RK3568_PD_VI] = DOMAIN_RK3568("vi", BIT(6), BIT(3), false),
859+
[RK3568_PD_VO] = DOMAIN_RK3568("vo", BIT(7), BIT(4), false),
860+
[RK3568_PD_RGA] = DOMAIN_RK3568("rga", BIT(5), BIT(5), false),
861+
[RK3568_PD_VPU] = DOMAIN_RK3568("vpu", BIT(2), BIT(6), false),
862+
[RK3568_PD_RKVDEC] = DOMAIN_RK3568("vdec", BIT(4), BIT(8), false),
863+
[RK3568_PD_RKVENC] = DOMAIN_RK3568("venc", BIT(3), BIT(7), false),
864+
[RK3568_PD_PIPE] = DOMAIN_RK3568("pipe", BIT(8), BIT(11), false),
865+
};
866+
851867
static const struct rockchip_pmu_info px30_pmu = {
852868
.pwr_offset = 0x18,
853869
.status_offset = 0x20,
@@ -983,6 +999,17 @@ static const struct rockchip_pmu_info rk3399_pmu = {
983999
.domain_info = rk3399_pm_domains,
9841000
};
9851001

1002+
static const struct rockchip_pmu_info rk3568_pmu = {
1003+
.pwr_offset = 0xa0,
1004+
.status_offset = 0x98,
1005+
.req_offset = 0x50,
1006+
.idle_offset = 0x68,
1007+
.ack_offset = 0x60,
1008+
1009+
.num_domains = ARRAY_SIZE(rk3568_pm_domains),
1010+
.domain_info = rk3568_pm_domains,
1011+
};
1012+
9861013
static const struct of_device_id rockchip_pm_domain_dt_match[] = {
9871014
{
9881015
.compatible = "rockchip,px30-power-controller",
@@ -1028,6 +1055,10 @@ static const struct of_device_id rockchip_pm_domain_dt_match[] = {
10281055
.compatible = "rockchip,rk3399-power-controller",
10291056
.data = (void *)&rk3399_pmu,
10301057
},
1058+
{
1059+
.compatible = "rockchip,rk3568-power-controller",
1060+
.data = (void *)&rk3568_pmu,
1061+
},
10311062
{ /* sentinel */ },
10321063
};
10331064

0 commit comments

Comments
 (0)