* [PATCH 0/6] RK3588 Power Domain Support @ 2022-08-31 18:26 Sebastian Reichel 2022-08-31 18:26 ` [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel ` (5 more replies) 0 siblings, 6 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Sebastian Reichel, kernel This adds power domain support for the new RK3588(s) SoC series. The series has been tested with ethernet on the RK3588 EVB1 board. Unchanged: * DT header has not been dual licensed (no feedback from Rockchip) 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 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 2022-09-02 20:57 ` Rob Herring 2022-08-31 18:26 ` [PATCH 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel ` (4 subsequent siblings) 5 siblings, 1 reply; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Sebastian Reichel, kernel Add the compatible for the pmu mfd on rk3588. 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml 2022-08-31 18:26 ` [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel @ 2022-09-02 20:57 ` Rob Herring 0 siblings, 0 replies; 16+ messages in thread From: Rob Herring @ 2022-09-02 20:57 UTC (permalink / raw) To: Sebastian Reichel Cc: Rob Herring, kernel, Heiko Stuebner, linux-arm-kernel, devicetree, linux-rockchip, Krzysztof Kozlowski On Wed, 31 Aug 2022 20:26:24 +0200, Sebastian Reichel wrote: > Add the compatible for the pmu mfd on rk3588. > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > --- > Documentation/devicetree/bindings/arm/rockchip/pmu.yaml | 2 ++ > 1 file changed, 2 insertions(+) > Acked-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/6] dt-bindings: add power-domain header for rk3588 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel 2022-08-31 18:26 ` [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 2022-09-02 21:01 ` Rob Herring 2022-09-05 11:56 ` Finley Xiao 2022-08-31 18:26 ` [PATCH 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel ` (3 subsequent siblings) 5 siblings, 2 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner 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> --- As mentioned in the cover letter I did not update this into dual license, since there was no feedback from Rockchip :( --- 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..69f7e9060250 --- /dev/null +++ b/include/dt-bindings/power/rk3588-power.h @@ -0,0 +1,69 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 2/6] dt-bindings: add power-domain header for rk3588 2022-08-31 18:26 ` [PATCH 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel @ 2022-09-02 21:01 ` Rob Herring 2022-09-05 11:56 ` Finley Xiao 1 sibling, 0 replies; 16+ messages in thread From: Rob Herring @ 2022-09-02 21:01 UTC (permalink / raw) To: Sebastian Reichel Cc: Heiko Stuebner, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Finley Xiao, kernel On Wed, Aug 31, 2022 at 08:26:25PM +0200, 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> > --- > As mentioned in the cover letter I did not update this into dual > license, since there was no feedback from Rockchip :( Well then, I guess we'll stop taking Rockchip patches. Sorry, but what other leverage do I have? Rob ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/6] dt-bindings: add power-domain header for rk3588 2022-08-31 18:26 ` [PATCH 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel 2022-09-02 21:01 ` Rob Herring @ 2022-09-05 11:56 ` Finley Xiao 1 sibling, 0 replies; 16+ messages in thread From: Finley Xiao @ 2022-09-05 11:56 UTC (permalink / raw) To: Sebastian Reichel, Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, kernel Hi, The devicetree binidng-headers should be dual-licensed, please change the license to GPL-2.0+ OR MIT. 在 2022/9/1 02:26, 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> > --- > As mentioned in the cover letter I did not update this into dual > license, since there was no feedback from Rockchip :( > --- > 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..69f7e9060250 > --- /dev/null > +++ b/include/dt-bindings/power/rk3588-power.h > @@ -0,0 +1,69 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#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 -- 肖锋 Finley Xiao ********************************************************** 瑞芯微电子股份有限公司 Rockchip Electronics Co., Ltd 福建省福州市铜盘路软件大道89号软件园A区21号楼 350003 No.21 Building, A District, Fuzhou Software Park, Fuzhou, Fujian 350003, P.R. China Tel: 0591-83991906-8602 Mobile: 18506057603 E-mail: finley.xiao@rock-chips.com *************************************************************************************************************************** 重要提示:本邮件及其附件含有仅供特定个人或目的使用的保密信息。若您并非该特定收件人或误收本邮件,请从系统中永久性删除本邮件及所有附件。 瑞芯微电子股份有限公司拥有本邮件及附件的著作权及解释权,禁止任何未经授权或许可的披露、储存或复制本邮件及附件的行为。谢谢您的配合。 IMPORTANT NOTICE: The contents of this email and any attachments may contain information that is privileged, confidential. If you are not the intended recipient or receive it by mistaken, please delete the email in its entirety. Rockchip Electronics Co., Ltd. copyright and reserve all rights. It is strictly prohibited to disclose, copy or store the email without any further authorization or license. Thank you. *************************************************************************************************************************** ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/6] dt-bindings: power: rockchip: Add bindings for rk3588 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel 2022-08-31 18:26 ` [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel 2022-08-31 18:26 ` [PATCH 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 2022-08-31 18:26 ` [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel ` (2 subsequent siblings) 5 siblings, 0 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel ` (2 preceding siblings ...) 2022-08-31 18:26 ` [PATCH 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 2022-09-05 16:35 ` Krzysztof Kozlowski 2022-09-05 19:03 ` Heiko Stübner 2022-08-31 18:26 ` [PATCH 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel 2022-08-31 18:26 ` [PATCH 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel 5 siblings, 2 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Sebastian Reichel, kernel Document rk3588 compatible for QoS registers. 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-08-31 18:26 ` [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel @ 2022-09-05 16:35 ` Krzysztof Kozlowski 2022-09-05 19:03 ` Heiko Stübner 1 sibling, 0 replies; 16+ messages in thread From: Krzysztof Kozlowski @ 2022-09-05 16:35 UTC (permalink / raw) To: Sebastian Reichel, Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, kernel On 31/08/2022 20:26, Sebastian Reichel wrote: > Document rk3588 compatible for QoS registers. > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-08-31 18:26 ` [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel 2022-09-05 16:35 ` Krzysztof Kozlowski @ 2022-09-05 19:03 ` Heiko Stübner 2022-09-06 15:41 ` Lee Jones 1 sibling, 1 reply; 16+ messages in thread From: Heiko Stübner @ 2022-09-05 19:03 UTC (permalink / raw) To: Sebastian Reichel, lee Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Sebastian Reichel, kernel Hi Sebastian, Am Mittwoch, 31. August 2022, 20:26:27 CEST schrieb Sebastian Reichel: > Document rk3588 compatible for QoS registers. > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> change looks good, but this is a mfd-binding. So while the rest is for me to apply, for the mfd syscon we need either Lee to apply it, or an Ack from him for me to pick it up. Heiko > --- > 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 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-09-05 19:03 ` Heiko Stübner @ 2022-09-06 15:41 ` Lee Jones 2022-09-06 15:50 ` Sebastian Reichel 0 siblings, 1 reply; 16+ messages in thread From: Lee Jones @ 2022-09-06 15:41 UTC (permalink / raw) To: Heiko Stübner Cc: Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, kernel On Mon, 05 Sep 2022, Heiko Stübner wrote: > Hi Sebastian, > > Am Mittwoch, 31. August 2022, 20:26:27 CEST schrieb Sebastian Reichel: > > Document rk3588 compatible for QoS registers. > > > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > > change looks good, but this is a mfd-binding. So while the rest is for me > to apply, for the mfd syscon we need either Lee to apply it, or an Ack > from him for me to pick it up. This patch is not in my inbox. Would you mind resending it to this inbox please? > > --- > > 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 > > > > > > -- Lee Jones [李琼斯] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-09-06 15:41 ` Lee Jones @ 2022-09-06 15:50 ` Sebastian Reichel 2022-09-08 7:33 ` Lee Jones 0 siblings, 1 reply; 16+ messages in thread From: Sebastian Reichel @ 2022-09-06 15:50 UTC (permalink / raw) To: Lee Jones Cc: Heiko Stübner, Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, kernel [-- Attachment #1: Type: text/plain, Size: 1727 bytes --] Hi Lee, On Tue, Sep 06, 2022 at 04:41:58PM +0100, Lee Jones wrote: > On Mon, 05 Sep 2022, Heiko Stübner wrote: > > Hi Sebastian, > > > > Am Mittwoch, 31. August 2022, 20:26:27 CEST schrieb Sebastian Reichel: > > > Document rk3588 compatible for QoS registers. > > > > > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > > > > change looks good, but this is a mfd-binding. So while the rest is for me > > to apply, for the mfd syscon we need either Lee to apply it, or an Ack > > from him for me to pick it up. > > This patch is not in my inbox. Yes, I missed CC'ing you, sorry. > Would you mind resending it to this inbox please? I sent PATCHv3 for this series some minutes ago. You should have received the full series now: https://lore.kernel.org/all/20220906143825.199089-5-sebastian.reichel@collabora.com/ -- Sebastian > > > > --- > > > 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 > > > > > > > > > > > > > -- > Lee Jones [李琼斯] [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible 2022-09-06 15:50 ` Sebastian Reichel @ 2022-09-08 7:33 ` Lee Jones 0 siblings, 0 replies; 16+ messages in thread From: Lee Jones @ 2022-09-08 7:33 UTC (permalink / raw) To: Sebastian Reichel Cc: Heiko Stübner, Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, kernel On Tue, 06 Sep 2022, Sebastian Reichel wrote: > Hi Lee, > > On Tue, Sep 06, 2022 at 04:41:58PM +0100, Lee Jones wrote: > > On Mon, 05 Sep 2022, Heiko Stübner wrote: > > > Hi Sebastian, > > > > > > Am Mittwoch, 31. August 2022, 20:26:27 CEST schrieb Sebastian Reichel: > > > > Document rk3588 compatible for QoS registers. > > > > > > > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > > > > > > change looks good, but this is a mfd-binding. So while the rest is for me > > > to apply, for the mfd syscon we need either Lee to apply it, or an Ack > > > from him for me to pick it up. > > > > This patch is not in my inbox. > > Yes, I missed CC'ing you, sorry. > > > Would you mind resending it to this inbox please? > > I sent PATCHv3 for this series some minutes ago. You should have > received the full series now: > > https://lore.kernel.org/all/20220906143825.199089-5-sebastian.reichel@collabora.com/ I have it now, thanks. -- Lee Jones [李琼斯] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 5/6] soc: rockchip: power-domain: do not enable PD 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel ` (3 preceding siblings ...) 2022-08-31 18:26 ` [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 2022-08-31 18:26 ` [PATCH 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel 5 siblings, 0 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 6/6] soc: rockchip: power-domain: add power domain support for rk3588 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel ` (4 preceding siblings ...) 2022-08-31 18:26 ` [PATCH 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel @ 2022-08-31 18:26 ` Sebastian Reichel 5 siblings, 0 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-08-31 18:26 UTC (permalink / raw) To: Heiko Stuebner 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 0/6] RK3588 Power Domain Support @ 2022-06-23 16:23 Sebastian Reichel 0 siblings, 0 replies; 16+ messages in thread From: Sebastian Reichel @ 2022-06-23 16:23 UTC (permalink / raw) To: Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel, devicetree, Sebastian Reichel, kernel This adds power domain support for the new RK3588(s) SoC series. The series has been tested with ethernet on the RK3588 EVB1 board. -- 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 rk3388 compatible string to pmu.yaml dt-bindings: power: rockchip: Add bindings for rk3588 dt-bindings: mfd: syscon: Add rk3388 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 ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-09-08 7:33 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-08-31 18:26 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel 2022-08-31 18:26 ` [PATCH 1/6] dt-bindings: arm: rockchip: add rk5388 compatible string to pmu.yaml Sebastian Reichel 2022-09-02 20:57 ` Rob Herring 2022-08-31 18:26 ` [PATCH 2/6] dt-bindings: add power-domain header for rk3588 Sebastian Reichel 2022-09-02 21:01 ` Rob Herring 2022-09-05 11:56 ` Finley Xiao 2022-08-31 18:26 ` [PATCH 3/6] dt-bindings: power: rockchip: Add bindings " Sebastian Reichel 2022-08-31 18:26 ` [PATCH 4/6] dt-bindings: mfd: syscon: Add rk3588 QoS register compatible Sebastian Reichel 2022-09-05 16:35 ` Krzysztof Kozlowski 2022-09-05 19:03 ` Heiko Stübner 2022-09-06 15:41 ` Lee Jones 2022-09-06 15:50 ` Sebastian Reichel 2022-09-08 7:33 ` Lee Jones 2022-08-31 18:26 ` [PATCH 5/6] soc: rockchip: power-domain: do not enable PD Sebastian Reichel 2022-08-31 18:26 ` [PATCH 6/6] soc: rockchip: power-domain: add power domain support for rk3588 Sebastian Reichel -- strict thread matches above, loose matches on Subject: below -- 2022-06-23 16:23 [PATCH 0/6] RK3588 Power Domain Support Sebastian Reichel
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).