* [PATCHv3 0/6] RK3588 Power Domain Support
@ 2022-09-06 14:38 Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Sebastian Reichel, kernel
Hi,
This adds power domain support for the new RK3588(s) SoC
series. The series has been tested with ethernet on the
RK3588 EVB1 board.
Changes since PATCHv2:
* https://lore.kernel.org/all/20220831182629.79255-1-sebastian.reichel@collabora.com/
(Note: I accidently send PATCHv2 with an incorrect patch version)
* Change license of DT header after message from Finley Xiao (Thanks!)
* Add Lee Jones to Cc list for the MFD DT binding
* Collected further Acked-by for DT bindings
Changes since PATCHv1:
* https://lore.kernel.org/all/20220623162309.243766-1-sebastian.reichel@collabora.com/
* Rebased to v6.0-rc1
* Fixed typos when referencing rk3588
* Collected Acked-by for the DT binding
-- Sebastian
Elaine Zhang (1):
soc: rockchip: power-domain: do not enable PD
Finley Xiao (2):
dt-bindings: add power-domain header for rk3588
soc: rockchip: power-domain: add power domain support for rk3588
Sebastian Reichel (3):
dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml
dt-bindings: power: rockchip: Add bindings for rk3588
dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
.../devicetree/bindings/arm/rockchip/pmu.yaml | 2 +
.../devicetree/bindings/mfd/syscon.yaml | 1 +
.../power/rockchip,power-controller.yaml | 2 +
drivers/soc/rockchip/pm_domains.c | 101 +++++++++++++++---
include/dt-bindings/power/rk3588-power.h | 69 ++++++++++++
5 files changed, 162 insertions(+), 13 deletions(-)
create mode 100644 include/dt-bindings/power/rk3588-power.h
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCHv3 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel
` (5 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Sebastian Reichel, kernel,
Rob Herring
Add the compatible for the pmu mfd on rk3588.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Documentation/devicetree/bindings/arm/rockchip/pmu.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/rockchip/pmu.yaml b/Documentation/devicetree/bindings/arm/rockchip/pmu.yaml
index 5ece38065e54..4c645049c15b 100644
--- a/Documentation/devicetree/bindings/arm/rockchip/pmu.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip/pmu.yaml
@@ -25,6 +25,7 @@ select:
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu
- rockchip,rk3568-pmu
+ - rockchip,rk3588-pmu
required:
- compatible
@@ -39,6 +40,7 @@ properties:
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu
- rockchip,rk3568-pmu
+ - rockchip,rk3588-pmu
- const: syscon
- const: simple-mfd
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-07 11:05 ` Krzysztof Kozlowski
2022-09-06 14:38 ` [PATCHv3 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel
` (4 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Finley Xiao, kernel,
Sebastian Reichel
From: Finley Xiao <finley.xiao@rock-chips.com>
Add all the power domains listed in the RK3588 TRM.
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
include/dt-bindings/power/rk3588-power.h | 69 ++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 include/dt-bindings/power/rk3588-power.h
diff --git a/include/dt-bindings/power/rk3588-power.h b/include/dt-bindings/power/rk3588-power.h
new file mode 100644
index 000000000000..1b92fec013cb
--- /dev/null
+++ b/include/dt-bindings/power/rk3588-power.h
@@ -0,0 +1,69 @@
+/* SPDX-License-Identifier: (GPL-2.0 or MIT) */
+#ifndef __DT_BINDINGS_POWER_RK3588_POWER_H__
+#define __DT_BINDINGS_POWER_RK3588_POWER_H__
+
+/* VD_LITDSU */
+#define RK3588_PD_CPU_0 0
+#define RK3588_PD_CPU_1 1
+#define RK3588_PD_CPU_2 2
+#define RK3588_PD_CPU_3 3
+
+/* VD_BIGCORE0 */
+#define RK3588_PD_CPU_4 4
+#define RK3588_PD_CPU_5 5
+
+/* VD_BIGCORE1 */
+#define RK3588_PD_CPU_6 6
+#define RK3588_PD_CPU_7 7
+
+/* VD_NPU */
+#define RK3588_PD_NPU 8
+#define RK3588_PD_NPUTOP 9
+#define RK3588_PD_NPU1 10
+#define RK3588_PD_NPU2 11
+
+/* VD_GPU */
+#define RK3588_PD_GPU 12
+
+/* VD_VCODEC */
+#define RK3588_PD_VCODEC 13
+#define RK3588_PD_RKVDEC0 14
+#define RK3588_PD_RKVDEC1 15
+#define RK3588_PD_VENC0 16
+#define RK3588_PD_VENC1 17
+
+/* VD_DD01 */
+#define RK3588_PD_DDR01 18
+
+/* VD_DD23 */
+#define RK3588_PD_DDR23 19
+
+/* VD_LOGIC */
+#define RK3588_PD_CENTER 20
+#define RK3588_PD_VDPU 21
+#define RK3588_PD_RGA30 22
+#define RK3588_PD_AV1 23
+#define RK3588_PD_VOP 24
+#define RK3588_PD_VO0 25
+#define RK3588_PD_VO1 26
+#define RK3588_PD_VI 27
+#define RK3588_PD_ISP1 28
+#define RK3588_PD_FEC 29
+#define RK3588_PD_RGA31 30
+#define RK3588_PD_USB 31
+#define RK3588_PD_PHP 32
+#define RK3588_PD_GMAC 33
+#define RK3588_PD_PCIE 34
+#define RK3588_PD_NVM 35
+#define RK3588_PD_NVM0 36
+#define RK3588_PD_SDIO 37
+#define RK3588_PD_AUDIO 38
+#define RK3588_PD_SECURE 39
+#define RK3588_PD_SDMMC 40
+#define RK3588_PD_CRYPTO 41
+#define RK3588_PD_BUS 42
+
+/* VD_PMU */
+#define RK3588_PD_PMU1 43
+
+#endif
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCHv3 3/6] dt-bindings: power: rockchip: Add bindings for rk3588
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Sebastian Reichel, kernel,
Rob Herring
Add the compatible string for RK3588 SoC.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
.../devicetree/bindings/power/rockchip,power-controller.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
index 3deb0fc8dfd3..5a769517f5c4 100644
--- a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
+++ b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
@@ -41,6 +41,7 @@ properties:
- rockchip,rk3368-power-controller
- rockchip,rk3399-power-controller
- rockchip,rk3568-power-controller
+ - rockchip,rk3588-power-controller
"#power-domain-cells":
const: 1
@@ -119,6 +120,7 @@ $defs:
"include/dt-bindings/power/rk3368-power.h"
"include/dt-bindings/power/rk3399-power.h"
"include/dt-bindings/power/rk3568-power.h"
+ "include/dt-bindings/power/rk3588-power.h"
clocks:
minItems: 1
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
` (2 preceding siblings ...)
2022-09-06 14:38 ` [PATCHv3 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-07 11:15 ` Heiko Stübner
2022-09-08 11:02 ` Lee Jones
2022-09-06 14:38 ` [PATCHv3 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel
` (2 subsequent siblings)
6 siblings, 2 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Sebastian Reichel, kernel,
Krzysztof Kozlowski
Document rk3588 compatible for QoS registers.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Documentation/devicetree/bindings/mfd/syscon.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
index c10f0b577268..5369a56b8be1 100644
--- a/Documentation/devicetree/bindings/mfd/syscon.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
@@ -59,6 +59,7 @@ properties:
- rockchip,rk3368-qos
- rockchip,rk3399-qos
- rockchip,rk3568-qos
+ - rockchip,rk3588-qos
- samsung,exynos3-sysreg
- samsung,exynos4-sysreg
- samsung,exynos5-sysreg
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCHv3 5/6] soc: rockchip: power-domain: do not enable PD
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
` (3 preceding siblings ...)
2022-09-06 14:38 ` [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel
2022-09-09 18:33 ` (subset) [PATCHv3 0/6] RK3588 Power Domain Support Heiko Stuebner
6 siblings, 0 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Elaine Zhang, kernel,
Sebastian Reichel
From: Elaine Zhang <zhangqing@rock-chips.com>
It's not need to power on all pd when add pm domain. Instead
use PD's real status in pm_genpd_init().
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
drivers/soc/rockchip/pm_domains.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c
index 89795abac951..a59aa3b89a72 100644
--- a/drivers/soc/rockchip/pm_domains.c
+++ b/drivers/soc/rockchip/pm_domains.c
@@ -595,14 +595,6 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
}
}
- error = rockchip_pd_power(pd, true);
- if (error) {
- dev_err(pmu->dev,
- "failed to power on domain '%pOFn': %d\n",
- node, error);
- goto err_unprepare_clocks;
- }
-
if (pd->info->name)
pd->genpd.name = pd->info->name;
else
@@ -614,7 +606,7 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
pd->genpd.flags = GENPD_FLAG_PM_CLK;
if (pd_info->active_wakeup)
pd->genpd.flags |= GENPD_FLAG_ACTIVE_WAKEUP;
- pm_genpd_init(&pd->genpd, NULL, false);
+ pm_genpd_init(&pd->genpd, NULL, !rockchip_pmu_domain_is_on(pd));
pmu->genpd_data.domains[id] = &pd->genpd;
return 0;
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCHv3 6/6] soc: rockchip: power-domain: add power domain support for rk3588
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
` (4 preceding siblings ...)
2022-09-06 14:38 ` [PATCHv3 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel
@ 2022-09-06 14:38 ` Sebastian Reichel
2022-09-09 18:33 ` (subset) [PATCHv3 0/6] RK3588 Power Domain Support Heiko Stuebner
6 siblings, 0 replies; 11+ messages in thread
From: Sebastian Reichel @ 2022-09-06 14:38 UTC (permalink / raw)
To: Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Finley Xiao, kernel,
Sebastian Reichel
From: Finley Xiao <finley.xiao@rock-chips.com>
This driver is modified to support RK3588 SoCs.
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
[port of downstream code incl. merging in fixes]
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
drivers/soc/rockchip/pm_domains.c | 91 +++++++++++++++++++++++++++++--
1 file changed, 87 insertions(+), 4 deletions(-)
diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c
index a59aa3b89a72..dff96cf4a66b 100644
--- a/drivers/soc/rockchip/pm_domains.c
+++ b/drivers/soc/rockchip/pm_domains.c
@@ -30,6 +30,7 @@
#include <dt-bindings/power/rk3368-power.h>
#include <dt-bindings/power/rk3399-power.h>
#include <dt-bindings/power/rk3568-power.h>
+#include <dt-bindings/power/rk3588-power.h>
struct rockchip_domain_info {
const char *name;
@@ -41,6 +42,9 @@ struct rockchip_domain_info {
bool active_wakeup;
int pwr_w_mask;
int req_w_mask;
+ int repair_status_mask;
+ u32 pwr_offset;
+ u32 req_offset;
};
struct rockchip_pmu_info {
@@ -49,6 +53,7 @@ struct rockchip_pmu_info {
u32 req_offset;
u32 idle_offset;
u32 ack_offset;
+ u32 repair_status_offset;
u32 core_pwrcnt_offset;
u32 gpu_pwrcnt_offset;
@@ -113,6 +118,22 @@ struct rockchip_pmu {
.active_wakeup = wakeup, \
}
+#define DOMAIN_M_O_R(_name, p_offset, pwr, status, r_status, r_offset, req, idle, ack, wakeup) \
+{ \
+ .name = _name, \
+ .pwr_offset = p_offset, \
+ .pwr_w_mask = (pwr) << 16, \
+ .pwr_mask = (pwr), \
+ .status_mask = (status), \
+ .repair_status_mask = (r_status), \
+ .req_offset = r_offset, \
+ .req_w_mask = (req) << 16, \
+ .req_mask = (req), \
+ .idle_mask = (idle), \
+ .ack_mask = (ack), \
+ .active_wakeup = wakeup, \
+}
+
#define DOMAIN_RK3036(_name, req, ack, idle, wakeup) \
{ \
.name = _name, \
@@ -244,6 +265,9 @@ void rockchip_pmu_unblock(void)
}
EXPORT_SYMBOL_GPL(rockchip_pmu_unblock);
+#define DOMAIN_RK3588(name, p_offset, pwr, status, r_status, r_offset, req, idle, wakeup) \
+ DOMAIN_M_O_R(name, p_offset, pwr, status, r_status, r_offset, req, idle, idle, wakeup)
+
static bool rockchip_pmu_domain_is_idle(struct rockchip_pm_domain *pd)
{
struct rockchip_pmu *pmu = pd->pmu;
@@ -268,6 +292,7 @@ static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd,
const struct rockchip_domain_info *pd_info = pd->info;
struct generic_pm_domain *genpd = &pd->genpd;
struct rockchip_pmu *pmu = pd->pmu;
+ u32 pd_req_offset = pd_info->req_offset;
unsigned int target_ack;
unsigned int val;
bool is_idle;
@@ -276,11 +301,11 @@ static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd,
if (pd_info->req_mask == 0)
return 0;
else if (pd_info->req_w_mask)
- regmap_write(pmu->regmap, pmu->info->req_offset,
+ regmap_write(pmu->regmap, pmu->info->req_offset + pd_req_offset,
idle ? (pd_info->req_mask | pd_info->req_w_mask) :
pd_info->req_w_mask);
else
- regmap_update_bits(pmu->regmap, pmu->info->req_offset,
+ regmap_update_bits(pmu->regmap, pmu->info->req_offset + pd_req_offset,
pd_info->req_mask, idle ? -1U : 0);
wmb();
@@ -363,6 +388,12 @@ static bool rockchip_pmu_domain_is_on(struct rockchip_pm_domain *pd)
struct rockchip_pmu *pmu = pd->pmu;
unsigned int val;
+ if (pd->info->repair_status_mask) {
+ regmap_read(pmu->regmap, pmu->info->repair_status_offset, &val);
+ /* 1'b1: power on, 1'b0: power off */
+ return val & pd->info->repair_status_mask;
+ }
+
/* check idle status for idle-only domains */
if (pd->info->status_mask == 0)
return !rockchip_pmu_domain_is_idle(pd);
@@ -378,16 +409,17 @@ static void rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd,
{
struct rockchip_pmu *pmu = pd->pmu;
struct generic_pm_domain *genpd = &pd->genpd;
+ u32 pd_pwr_offset = pd->info->pwr_offset;
bool is_on;
if (pd->info->pwr_mask == 0)
return;
else if (pd->info->pwr_w_mask)
- regmap_write(pmu->regmap, pmu->info->pwr_offset,
+ regmap_write(pmu->regmap, pmu->info->pwr_offset + pd_pwr_offset,
on ? pd->info->pwr_w_mask :
(pd->info->pwr_mask | pd->info->pwr_w_mask));
else
- regmap_update_bits(pmu->regmap, pmu->info->pwr_offset,
+ regmap_update_bits(pmu->regmap, pmu->info->pwr_offset + pd_pwr_offset,
pd->info->pwr_mask, on ? 0 : -1U);
wmb();
@@ -514,6 +546,9 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
node, id);
return -EINVAL;
}
+ /* RK3588 has domains with two parents (RKVDEC0/RKVDEC1) */
+ if (pmu->genpd_data.domains[id])
+ return 0;
pd_info = &pmu->info->domain_info[id];
if (!pd_info) {
@@ -974,6 +1009,38 @@ static const struct rockchip_domain_info rk3568_pm_domains[] = {
[RK3568_PD_PIPE] = DOMAIN_RK3568("pipe", BIT(8), BIT(11), false),
};
+static const struct rockchip_domain_info rk3588_pm_domains[] = {
+ [RK3588_PD_GPU] = DOMAIN_RK3588("gpu", 0x0, BIT(0), 0, BIT(1), 0x0, BIT(0), BIT(0), false),
+ [RK3588_PD_NPU] = DOMAIN_RK3588("npu", 0x0, BIT(1), BIT(1), 0, 0x0, 0, 0, false),
+ [RK3588_PD_VCODEC] = DOMAIN_RK3588("vcodec", 0x0, BIT(2), BIT(2), 0, 0x0, 0, 0, false),
+ [RK3588_PD_NPUTOP] = DOMAIN_RK3588("nputop", 0x0, BIT(3), 0, BIT(2), 0x0, BIT(1), BIT(1), false),
+ [RK3588_PD_NPU1] = DOMAIN_RK3588("npu1", 0x0, BIT(4), 0, BIT(3), 0x0, BIT(2), BIT(2), false),
+ [RK3588_PD_NPU2] = DOMAIN_RK3588("npu2", 0x0, BIT(5), 0, BIT(4), 0x0, BIT(3), BIT(3), false),
+ [RK3588_PD_VENC0] = DOMAIN_RK3588("venc0", 0x0, BIT(6), 0, BIT(5), 0x0, BIT(4), BIT(4), false),
+ [RK3588_PD_VENC1] = DOMAIN_RK3588("venc1", 0x0, BIT(7), 0, BIT(6), 0x0, BIT(5), BIT(5), false),
+ [RK3588_PD_RKVDEC0] = DOMAIN_RK3588("rkvdec0", 0x0, BIT(8), 0, BIT(7), 0x0, BIT(6), BIT(6), false),
+ [RK3588_PD_RKVDEC1] = DOMAIN_RK3588("rkvdec1", 0x0, BIT(9), 0, BIT(8), 0x0, BIT(7), BIT(7), false),
+ [RK3588_PD_VDPU] = DOMAIN_RK3588("vdpu", 0x0, BIT(10), 0, BIT(9), 0x0, BIT(8), BIT(8), false),
+ [RK3588_PD_RGA30] = DOMAIN_RK3588("rga30", 0x0, BIT(11), 0, BIT(10), 0x0, 0, 0, false),
+ [RK3588_PD_AV1] = DOMAIN_RK3588("av1", 0x0, BIT(12), 0, BIT(11), 0x0, BIT(9), BIT(9), false),
+ [RK3588_PD_VI] = DOMAIN_RK3588("vi", 0x0, BIT(13), 0, BIT(12), 0x0, BIT(10), BIT(10), false),
+ [RK3588_PD_FEC] = DOMAIN_RK3588("fec", 0x0, BIT(14), 0, BIT(13), 0x0, 0, 0, false),
+ [RK3588_PD_ISP1] = DOMAIN_RK3588("isp1", 0x0, BIT(15), 0, BIT(14), 0x0, BIT(11), BIT(11), false),
+ [RK3588_PD_RGA31] = DOMAIN_RK3588("rga31", 0x4, BIT(0), 0, BIT(15), 0x0, BIT(12), BIT(12), false),
+ [RK3588_PD_VOP] = DOMAIN_RK3588("vop", 0x4, BIT(1), 0, BIT(16), 0x0, BIT(13) | BIT(14), BIT(13) | BIT(14), false),
+ [RK3588_PD_VO0] = DOMAIN_RK3588("vo0", 0x4, BIT(2), 0, BIT(17), 0x0, BIT(15), BIT(15), false),
+ [RK3588_PD_VO1] = DOMAIN_RK3588("vo1", 0x4, BIT(3), 0, BIT(18), 0x4, BIT(0), BIT(16), false),
+ [RK3588_PD_AUDIO] = DOMAIN_RK3588("audio", 0x4, BIT(4), 0, BIT(19), 0x4, BIT(1), BIT(17), false),
+ [RK3588_PD_PHP] = DOMAIN_RK3588("php", 0x4, BIT(5), 0, BIT(20), 0x4, BIT(5), BIT(21), false),
+ [RK3588_PD_GMAC] = DOMAIN_RK3588("gmac", 0x4, BIT(6), 0, BIT(21), 0x0, 0, 0, false),
+ [RK3588_PD_PCIE] = DOMAIN_RK3588("pcie", 0x4, BIT(7), 0, BIT(22), 0x0, 0, 0, true),
+ [RK3588_PD_NVM] = DOMAIN_RK3588("nvm", 0x4, BIT(8), BIT(24), 0, 0x4, BIT(2), BIT(18), false),
+ [RK3588_PD_NVM0] = DOMAIN_RK3588("nvm0", 0x4, BIT(9), 0, BIT(23), 0x0, 0, 0, false),
+ [RK3588_PD_SDIO] = DOMAIN_RK3588("sdio", 0x4, BIT(10), 0, BIT(24), 0x4, BIT(3), BIT(19), false),
+ [RK3588_PD_USB] = DOMAIN_RK3588("usb", 0x4, BIT(11), 0, BIT(25), 0x4, BIT(4), BIT(20), true),
+ [RK3588_PD_SDMMC] = DOMAIN_RK3588("sdmmc", 0x4, BIT(13), 0, BIT(26), 0x0, 0, 0, false),
+};
+
static const struct rockchip_pmu_info px30_pmu = {
.pwr_offset = 0x18,
.status_offset = 0x20,
@@ -1120,6 +1187,18 @@ static const struct rockchip_pmu_info rk3568_pmu = {
.domain_info = rk3568_pm_domains,
};
+static const struct rockchip_pmu_info rk3588_pmu = {
+ .pwr_offset = 0x14c,
+ .status_offset = 0x180,
+ .req_offset = 0x10c,
+ .idle_offset = 0x120,
+ .ack_offset = 0x118,
+ .repair_status_offset = 0x290,
+
+ .num_domains = ARRAY_SIZE(rk3588_pm_domains),
+ .domain_info = rk3588_pm_domains,
+};
+
static const struct of_device_id rockchip_pm_domain_dt_match[] = {
{
.compatible = "rockchip,px30-power-controller",
@@ -1169,6 +1248,10 @@ static const struct of_device_id rockchip_pm_domain_dt_match[] = {
.compatible = "rockchip,rk3568-power-controller",
.data = (void *)&rk3568_pmu,
},
+ {
+ .compatible = "rockchip,rk3588-power-controller",
+ .data = (void *)&rk3588_pmu,
+ },
{ /* sentinel */ },
};
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588
2022-09-06 14:38 ` [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel
@ 2022-09-07 11:05 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-09-07 11:05 UTC (permalink / raw)
To: Sebastian Reichel, Heiko Stuebner, Lee Jones
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Finley Xiao, kernel
On 06/09/2022 16:38, Sebastian Reichel wrote:
> From: Finley Xiao <finley.xiao@rock-chips.com>
>
> Add all the power domains listed in the RK3588 TRM.
>
> Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> include/dt-bindings/power/rk3588-power.h | 69 ++++++++++++++++++++++++
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
2022-09-06 14:38 ` [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel
@ 2022-09-07 11:15 ` Heiko Stübner
2022-09-08 11:02 ` Lee Jones
1 sibling, 0 replies; 11+ messages in thread
From: Heiko Stübner @ 2022-09-07 11:15 UTC (permalink / raw)
To: Lee Jones, Sebastian Reichel
Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, Sebastian Reichel, kernel,
Krzysztof Kozlowski
Am Dienstag, 6. September 2022, 16:38:23 CEST schrieb Sebastian Reichel:
> Document rk3588 compatible for QoS registers.
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> ---
> Documentation/devicetree/bindings/mfd/syscon.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
> index c10f0b577268..5369a56b8be1 100644
> --- a/Documentation/devicetree/bindings/mfd/syscon.yaml
> +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
> @@ -59,6 +59,7 @@ properties:
> - rockchip,rk3368-qos
> - rockchip,rk3399-qos
> - rockchip,rk3568-qos
> + - rockchip,rk3588-qos
> - samsung,exynos3-sysreg
> - samsung,exynos4-sysreg
> - samsung,exynos5-sysreg
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
2022-09-06 14:38 ` [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel
2022-09-07 11:15 ` Heiko Stübner
@ 2022-09-08 11:02 ` Lee Jones
1 sibling, 0 replies; 11+ messages in thread
From: Lee Jones @ 2022-09-08 11:02 UTC (permalink / raw)
To: Sebastian Reichel
Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, linux-rockchip,
linux-arm-kernel, devicetree, kernel, Krzysztof Kozlowski
On Tue, 06 Sep 2022, Sebastian Reichel wrote:
> Document rk3588 compatible for QoS registers.
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> Documentation/devicetree/bindings/mfd/syscon.yaml | 1 +
> 1 file changed, 1 insertion(+)
Applied, thanks.
--
Lee Jones [李琼斯]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCHv3 0/6] RK3588 Power Domain Support
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
` (5 preceding siblings ...)
2022-09-06 14:38 ` [PATCHv3 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel
@ 2022-09-09 18:33 ` Heiko Stuebner
6 siblings, 0 replies; 11+ messages in thread
From: Heiko Stuebner @ 2022-09-09 18:33 UTC (permalink / raw)
To: Sebastian Reichel, Lee Jones
Cc: Heiko Stuebner, kernel, Rob Herring, Krzysztof Kozlowski,
linux-rockchip, linux-arm-kernel, devicetree
On Tue, 6 Sep 2022 16:38:19 +0200, Sebastian Reichel wrote:
> This adds power domain support for the new RK3588(s) SoC
> series. The series has been tested with ethernet on the
> RK3588 EVB1 board.
>
> Changes since PATCHv2:
> * https://lore.kernel.org/all/20220831182629.79255-1-sebastian.reichel@collabora.com/
> (Note: I accidently send PATCHv2 with an incorrect patch version)
> * Change license of DT header after message from Finley Xiao (Thanks!)
> * Add Lee Jones to Cc list for the MFD DT binding
> * Collected further Acked-by for DT bindings
>
> [...]
Applied, thanks!
[1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml
commit: aa8414fffd9892a81de76d4bb91c70149a005769
[2/6] dt-bindings: add power-domain header for rk3588
commit: 67944950c2d0bdb7cfc8855f1d9b44fc4ef51510
[3/6] dt-bindings: power: rockchip: Add bindings for rk3588
commit: 167bbadee8c2aa53d56a2466bddd98c8c0aaf846
[5/6] soc: rockchip: power-domain: do not enable PD
commit: 47bceb7cda6a78b3735694790e70f5cdc254058e
[6/6] soc: rockchip: power-domain: add power domain support for rk3588
commit: 6541b424ce1dda616d3946e839f015c984df7a99
Best regards,
--
Heiko Stuebner <heiko@sntech.de>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-09-09 18:35 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-06 14:38 [PATCHv3 0/6] RK3588 Power Domain Support Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel
2022-09-07 11:05 ` Krzysztof Kozlowski
2022-09-06 14:38 ` [PATCHv3 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel
2022-09-07 11:15 ` Heiko Stübner
2022-09-08 11:02 ` Lee Jones
2022-09-06 14:38 ` [PATCHv3 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel
2022-09-06 14:38 ` [PATCHv3 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel
2022-09-09 18:33 ` (subset) [PATCHv3 0/6] RK3588 Power Domain Support Heiko Stuebner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).