rockchip: backport dts updates for rk3588
Backport upstreamed dts updates for rk3588. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> Link: https://github.com/openwrt/openwrt/pull/16149 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
7108f5bd9f
commit
6a0a6c45ed
@ -0,0 +1,35 @@
|
|||||||
|
From 3eaf2abd11aa7f3b2fb04d60c64b2c756fe030eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Muhammed Efe Cetin <efectn@6tel.net>
|
||||||
|
Date: Mon, 9 Oct 2023 22:27:26 +0300
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add sfc node to rk3588s
|
||||||
|
|
||||||
|
Add SFC (SPI Flash) to RK3588S SOC.
|
||||||
|
|
||||||
|
Reviewed-by: Dhruva Gole <d-gole@ti.com>
|
||||||
|
Signed-off-by: Muhammed Efe Cetin <efectn@6tel.net>
|
||||||
|
Link: https://lore.kernel.org/r/d36a64edfaede92ce2e158b0d9dc4f5998e019e3.1696878787.git.efectn@6tel.net
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 11 +++++++++++
|
||||||
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -1425,6 +1425,17 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ sfc: spi@fe2b0000 {
|
||||||
|
+ compatible = "rockchip,sfc";
|
||||||
|
+ reg = <0x0 0xfe2b0000 0x0 0x4000>;
|
||||||
|
+ interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
|
||||||
|
+ clock-names = "clk_sfc", "hclk_sfc";
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
sdmmc: mmc@fe2c0000 {
|
||||||
|
compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||||
|
reg = <0x0 0xfe2c0000 0x0 0x4000>;
|
@ -0,0 +1,58 @@
|
|||||||
|
From bf012368bb0ab69167d49715789fac34dfcd457e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ondrej Jirman <megi@xff.cz>
|
||||||
|
Date: Sun, 8 Oct 2023 15:04:59 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add I2S2 M0 pin definitions to rk3588s
|
||||||
|
|
||||||
|
This is used on Orange Pi 5 Plus.
|
||||||
|
|
||||||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||||
|
Link: https://lore.kernel.org/r/20231008130515.1155664-2-megi@xff.cz
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
.../boot/dts/rockchip/rk3588s-pinctrl.dtsi | 35 +++++++++++++++++++
|
||||||
|
1 file changed, 35 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
|
||||||
|
@@ -1350,6 +1350,41 @@
|
||||||
|
|
||||||
|
i2s2 {
|
||||||
|
/omit-if-no-ref/
|
||||||
|
+ i2s2m0_lrck: i2s2m0-lrck {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* i2s2m0_lrck */
|
||||||
|
+ <2 RK_PC0 2 &pcfg_pull_none>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
+ i2s2m0_mclk: i2s2m0-mclk {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* i2s2m0_mclk */
|
||||||
|
+ <2 RK_PB6 2 &pcfg_pull_none>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
+ i2s2m0_sclk: i2s2m0-sclk {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* i2s2m0_sclk */
|
||||||
|
+ <2 RK_PB7 2 &pcfg_pull_none>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
+ i2s2m0_sdi: i2s2m0-sdi {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* i2s2m0_sdi */
|
||||||
|
+ <2 RK_PC3 2 &pcfg_pull_none>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
+ i2s2m0_sdo: i2s2m0-sdo {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* i2s2m0_sdo */
|
||||||
|
+ <4 RK_PC3 2 &pcfg_pull_none>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
i2s2m1_lrck: i2s2m1-lrck {
|
||||||
|
rockchip,pins =
|
||||||
|
/* i2s2m1_lrck */
|
@ -0,0 +1,32 @@
|
|||||||
|
From 3d77a3e51b0faed820a8db985dce5af1cc4eae32 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ondrej Jirman <megi@xff.cz>
|
||||||
|
Date: Sun, 8 Oct 2023 15:05:00 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add UART9 M0 pin definitions to rk3588s
|
||||||
|
|
||||||
|
This is used on Orange Pi 5 Plus.
|
||||||
|
|
||||||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||||
|
Link: https://lore.kernel.org/r/20231008130515.1155664-3-megi@xff.cz
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
|
||||||
|
@@ -3343,6 +3343,15 @@
|
||||||
|
|
||||||
|
uart9 {
|
||||||
|
/omit-if-no-ref/
|
||||||
|
+ uart9m0_xfer: uart9m0-xfer {
|
||||||
|
+ rockchip,pins =
|
||||||
|
+ /* uart9_rx_m0 */
|
||||||
|
+ <2 RK_PC4 10 &pcfg_pull_up>,
|
||||||
|
+ /* uart9_tx_m0 */
|
||||||
|
+ <2 RK_PC2 10 &pcfg_pull_up>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /omit-if-no-ref/
|
||||||
|
uart9m1_xfer: uart9m1-xfer {
|
||||||
|
rockchip,pins =
|
||||||
|
/* uart9_rx_m1 */
|
@ -0,0 +1,37 @@
|
|||||||
|
From dd6dc0c4c1265129c229e26917bf4de1d97ff91f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
|
||||||
|
Date: Fri, 6 Oct 2023 08:53:34 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add AV1 decoder node to rk3588s
|
||||||
|
|
||||||
|
Add node for AV1 video decoder.
|
||||||
|
|
||||||
|
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
|
||||||
|
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20231006065334.8117-1-benjamin.gaignard@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -2314,6 +2314,19 @@
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+ av1d: video-codec@fdc70000 {
|
||||||
|
+ compatible = "rockchip,rk3588-av1-vpu";
|
||||||
|
+ reg = <0x0 0xfdc70000 0x0 0x800>;
|
||||||
|
+ interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "vdpu";
|
||||||
|
+ assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
+ assigned-clock-rates = <400000000>, <400000000>;
|
||||||
|
+ clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
+ clock-names = "aclk", "hclk";
|
||||||
|
+ power-domains = <&power RK3588_PD_AV1>;
|
||||||
|
+ resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
|
||||||
|
+ };
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "rk3588s-pinctrl.dtsi"
|
@ -0,0 +1,50 @@
|
|||||||
|
From 5a6976b1040a2f99ab84eddbfa7cd072ac5d10fc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sascha Hauer <s.hauer@pengutronix.de>
|
||||||
|
Date: Wed, 18 Oct 2023 08:17:14 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add DFI to rk3588s
|
||||||
|
|
||||||
|
The DFI unit can be used to measure DRAM utilization using perf. Add the
|
||||||
|
node to the device tree. The DFI needs a rockchip,pmu phandle to the pmu
|
||||||
|
containing registers for SDRAM configuration details. This is added in
|
||||||
|
this patch as well.
|
||||||
|
|
||||||
|
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
||||||
|
Link: https://lore.kernel.org/r/20231018061714.3553817-27-s.hauer@pengutronix.de
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 16 ++++++++++++++++
|
||||||
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -443,6 +443,11 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ pmu1grf: syscon@fd58a000 {
|
||||||
|
+ compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
|
||||||
|
+ reg = <0x0 0xfd58a000 0x0 0x10000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
sys_grf: syscon@fd58c000 {
|
||||||
|
compatible = "rockchip,rk3588-sys-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd58c000 0x0 0x1000>;
|
||||||
|
@@ -1330,6 +1335,17 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ dfi: dfi@fe060000 {
|
||||||
|
+ reg = <0x00 0xfe060000 0x00 0x10000>;
|
||||||
|
+ compatible = "rockchip,rk3588-dfi";
|
||||||
|
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "ch0", "ch1", "ch2", "ch3";
|
||||||
|
+ rockchip,pmu = <&pmu1grf>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
gmac1: ethernet@fe1c0000 {
|
||||||
|
compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
|
||||||
|
reg = <0x0 0xfe1c0000 0x0 0x10000>;
|
@ -0,0 +1,48 @@
|
|||||||
|
From bbd3778da16b3d448832b843f80bcde1aff26290 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Date: Fri, 20 Oct 2023 16:11:42 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: rk3588s: Add USB3 host controller
|
||||||
|
|
||||||
|
RK3588 has three USB3 controllers. This adds the host-only controller,
|
||||||
|
which is using the naneng-combphy shared with PCIe and SATA.
|
||||||
|
|
||||||
|
The other two are dual-role and using a different PHY that is not yet
|
||||||
|
supported upstream.
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20231020150022.48725-4-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 21 +++++++++++++++++++++
|
||||||
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -443,6 +443,27 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usb_host2_xhci: usb@fcd00000 {
|
||||||
|
+ compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
|
||||||
|
+ reg = <0x0 0xfcd00000 0x0 0x400000>;
|
||||||
|
+ interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>,
|
||||||
|
+ <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>,
|
||||||
|
+ <&cru CLK_PIPEPHY2_PIPE_U3_G>;
|
||||||
|
+ clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe";
|
||||||
|
+ dr_mode = "host";
|
||||||
|
+ phys = <&combphy2_psu PHY_TYPE_USB3>;
|
||||||
|
+ phy-names = "usb3-phy";
|
||||||
|
+ phy_type = "utmi_wide";
|
||||||
|
+ resets = <&cru SRST_A_USB3OTG2>;
|
||||||
|
+ snps,dis_enblslpm_quirk;
|
||||||
|
+ snps,dis-u2-freeclk-exists-quirk;
|
||||||
|
+ snps,dis-del-phy-power-chg-quirk;
|
||||||
|
+ snps,dis-tx-ipgap-linecheck-quirk;
|
||||||
|
+ snps,dis_rxdet_inp3_quirk;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
pmu1grf: syscon@fd58a000 {
|
||||||
|
compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
|
||||||
|
reg = <0x0 0xfd58a000 0x0 0x10000>;
|
@ -0,0 +1,27 @@
|
|||||||
|
From 815f986f33eeb06652d59d8a4d405d4fdb4e59a8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Heiko Stuebner <heiko.stuebner@cherry.de>
|
||||||
|
Date: Fri, 1 Dec 2023 14:48:59 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: drop interrupt-names property from
|
||||||
|
rk3588s dfi
|
||||||
|
|
||||||
|
The dfi binding does not specify interrupt names, with the interrupts
|
||||||
|
just specifying channels 0-x. So drop the unspecified property.
|
||||||
|
|
||||||
|
Fixes: 5a6976b1040a ("arm64: dts: rockchip: Add DFI to rk3588s")
|
||||||
|
Reported-by: Jagan Teki <jagan@edgeble.ai>
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
|
||||||
|
Link: https://lore.kernel.org/r/20231201134859.322491-1-heiko@sntech.de
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -1363,7 +1363,6 @@
|
||||||
|
<GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
<GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- interrupt-names = "ch0", "ch1", "ch2", "ch3";
|
||||||
|
rockchip,pmu = <&pmu1grf>;
|
||||||
|
};
|
||||||
|
|
@ -74,6 +74,16 @@ Link: https://lore.kernel.org/r/20231205164842.556684-2-heiko@sntech.de
|
|||||||
- serial2 = &uart2;
|
- serial2 = &uart2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
|
||||||
|
@@ -12,7 +12,6 @@
|
||||||
|
aliases {
|
||||||
|
mmc0 = &sdhci;
|
||||||
|
mmc1 = &sdmmc;
|
||||||
|
- serial2 = &uart2;
|
||||||
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
--- a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
|
@ -0,0 +1,120 @@
|
|||||||
|
From d895dbef3f3a31ab50491bb48552e798cf555987 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andy Yan <andy.yan@rock-chips.com>
|
||||||
|
Date: Mon, 11 Dec 2023 20:00:04 +0800
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add vop on rk3588
|
||||||
|
|
||||||
|
Add vop dt node for rk3588.
|
||||||
|
|
||||||
|
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
|
||||||
|
Link: https://lore.kernel.org/r/20231211120004.1785616-1-andyshrk@163.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 83 +++++++++++++++++++++++
|
||||||
|
1 file changed, 83 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -394,6 +394,11 @@
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ display_subsystem: display-subsystem {
|
||||||
|
+ compatible = "rockchip,display-subsystem";
|
||||||
|
+ ports = <&vop_out>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
timer {
|
||||||
|
compatible = "arm,armv8-timer";
|
||||||
|
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
@@ -506,6 +511,16 @@
|
||||||
|
reg = <0x0 0xfd58c000 0x0 0x1000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ vop_grf: syscon@fd5a4000 {
|
||||||
|
+ compatible = "rockchip,rk3588-vop-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5a4000 0x0 0x2000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vo1_grf: syscon@fd5a8000 {
|
||||||
|
+ compatible = "rockchip,rk3588-vo-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5a8000 0x0 0x100>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
php_grf: syscon@fd5b0000 {
|
||||||
|
compatible = "rockchip,rk3588-php-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd5b0000 0x0 0x1000>;
|
||||||
|
@@ -625,6 +640,74 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ vop: vop@fdd90000 {
|
||||||
|
+ compatible = "rockchip,rk3588-vop";
|
||||||
|
+ reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
|
||||||
|
+ reg-names = "vop", "gamma-lut";
|
||||||
|
+ interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru ACLK_VOP>,
|
||||||
|
+ <&cru HCLK_VOP>,
|
||||||
|
+ <&cru DCLK_VOP0>,
|
||||||
|
+ <&cru DCLK_VOP1>,
|
||||||
|
+ <&cru DCLK_VOP2>,
|
||||||
|
+ <&cru DCLK_VOP3>,
|
||||||
|
+ <&cru PCLK_VOP_ROOT>;
|
||||||
|
+ clock-names = "aclk",
|
||||||
|
+ "hclk",
|
||||||
|
+ "dclk_vp0",
|
||||||
|
+ "dclk_vp1",
|
||||||
|
+ "dclk_vp2",
|
||||||
|
+ "dclk_vp3",
|
||||||
|
+ "pclk_vop";
|
||||||
|
+ iommus = <&vop_mmu>;
|
||||||
|
+ power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
+ rockchip,grf = <&sys_grf>;
|
||||||
|
+ rockchip,vop-grf = <&vop_grf>;
|
||||||
|
+ rockchip,vo1-grf = <&vo1_grf>;
|
||||||
|
+ rockchip,pmu = <&pmu>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ vop_out: ports {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+
|
||||||
|
+ vp0: port@0 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <0>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp1: port@1 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <1>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp2: port@2 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <2>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp3: port@3 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <3>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vop_mmu: iommu@fdd97e00 {
|
||||||
|
+ compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
|
||||||
|
+ reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
|
||||||
|
+ interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
|
||||||
|
+ clock-names = "aclk", "iface";
|
||||||
|
+ #iommu-cells = <0>;
|
||||||
|
+ power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
uart0: serial@fd890000 {
|
||||||
|
compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
|
||||||
|
reg = <0x0 0xfd890000 0x0 0x100>;
|
@ -0,0 +1,51 @@
|
|||||||
|
From 11d28971aaaf5de6f50790fb21f1113fee21d320 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
|
||||||
|
Date: Mon, 19 Feb 2024 22:46:25 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add HDMI0 PHY to rk3588
|
||||||
|
|
||||||
|
Add DT nodes for HDMI0 PHY and related syscon found on RK3588 SoC.
|
||||||
|
|
||||||
|
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240219204626.284399-1-cristian.ciocaltea@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 21 +++++++++++++++++++++
|
||||||
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -586,6 +586,11 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ hdptxphy0_grf: syscon@fd5e0000 {
|
||||||
|
+ compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5e0000 0x0 0x100>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
ioc: syscon@fd5f0000 {
|
||||||
|
compatible = "rockchip,rk3588-ioc", "syscon";
|
||||||
|
reg = <0x0 0xfd5f0000 0x0 0x10000>;
|
||||||
|
@@ -2358,6 +2363,22 @@
|
||||||
|
#dma-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ hdptxphy_hdmi0: phy@fed60000 {
|
||||||
|
+ compatible = "rockchip,rk3588-hdptx-phy";
|
||||||
|
+ reg = <0x0 0xfed60000 0x0 0x2000>;
|
||||||
|
+ clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
|
||||||
|
+ clock-names = "ref", "apb";
|
||||||
|
+ #phy-cells = <0>;
|
||||||
|
+ resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
|
||||||
|
+ <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
|
||||||
|
+ <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
|
||||||
|
+ <&cru SRST_HDPTX0_LCPLL>;
|
||||||
|
+ reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
|
||||||
|
+ "lcpll";
|
||||||
|
+ rockchip,grf = <&hdptxphy0_grf>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
combphy0_ps: phy@fee00000 {
|
||||||
|
compatible = "rockchip,rk3588-naneng-combphy";
|
||||||
|
reg = <0x0 0xfee00000 0x0 0x100>;
|
@ -0,0 +1,25 @@
|
|||||||
|
From 2047366b9eff8fada2a118588b0478de6e92d02c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
Date: Tue, 27 Feb 2024 22:05:21 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add clock to vo1-grf syscon on rk3588
|
||||||
|
|
||||||
|
The VO*-general-register-files need a clock, so add the correct one.
|
||||||
|
|
||||||
|
Cc: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
Link: https://lore.kernel.org/r/20240227210521.724754-1-heiko@sntech.de
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -519,6 +519,7 @@
|
||||||
|
vo1_grf: syscon@fd5a8000 {
|
||||||
|
compatible = "rockchip,rk3588-vo-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd5a8000 0x0 0x100>;
|
||||||
|
+ clocks = <&cru PCLK_VO1GRF>;
|
||||||
|
};
|
||||||
|
|
||||||
|
php_grf: syscon@fd5b0000 {
|
@ -0,0 +1,81 @@
|
|||||||
|
From 6fca4edb93d335f29f81e484936f38a5eed6a9b1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Boris Brezillon <boris.brezillon@collabora.com>
|
||||||
|
Date: Tue, 26 Mar 2024 17:52:06 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add rk3588 GPU node
|
||||||
|
|
||||||
|
Add Mali GPU Node to the RK3588 SoC DT including GPU clock
|
||||||
|
operating points
|
||||||
|
|
||||||
|
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240326165232.73585-3-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 56 +++++++++++++++++++++++
|
||||||
|
1 file changed, 56 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -501,6 +501,62 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ gpu: gpu@fb000000 {
|
||||||
|
+ compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
|
||||||
|
+ reg = <0x0 0xfb000000 0x0 0x200000>;
|
||||||
|
+ #cooling-cells = <2>;
|
||||||
|
+ assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
|
||||||
|
+ assigned-clock-rates = <200000000>;
|
||||||
|
+ clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
|
||||||
|
+ <&cru CLK_GPU_STACKS>;
|
||||||
|
+ clock-names = "core", "coregroup", "stacks";
|
||||||
|
+ dynamic-power-coefficient = <2982>;
|
||||||
|
+ interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "job", "mmu", "gpu";
|
||||||
|
+ operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
+ power-domains = <&power RK3588_PD_GPU>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ gpu_opp_table: opp-table {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+
|
||||||
|
+ opp-300000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <300000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <400000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-500000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <500000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-600000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <600000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-700000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <700000000>;
|
||||||
|
+ opp-microvolt = <700000 700000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <800000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-900000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <900000000>;
|
||||||
|
+ opp-microvolt = <800000 800000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1000000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1000000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 850000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
pmu1grf: syscon@fd58a000 {
|
||||||
|
compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
|
||||||
|
reg = <0x0 0xfd58a000 0x0 0x10000>;
|
@ -0,0 +1,384 @@
|
|||||||
|
From cbb97fe18e299ece1c0074924c630de6a19b320f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Diederik de Haas <didi.debian@cknow.org>
|
||||||
|
Date: Sat, 6 Apr 2024 19:28:04 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Fix ordering of nodes on rk3588s
|
||||||
|
|
||||||
|
Fix the ordering of the main nodes by sorting them alphabetically and
|
||||||
|
then the ones with a memory address sequentially by that address.
|
||||||
|
|
||||||
|
Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
|
||||||
|
Link: https://lore.kernel.org/r/20240406172821.34173-1-didi.debian@cknow.org
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 304 +++++++++++-----------
|
||||||
|
1 file changed, 152 insertions(+), 152 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -347,6 +347,11 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ display_subsystem: display-subsystem {
|
||||||
|
+ compatible = "rockchip,display-subsystem";
|
||||||
|
+ ports = <&vop_out>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
firmware {
|
||||||
|
optee: optee {
|
||||||
|
compatible = "linaro,optee-tz";
|
||||||
|
@@ -394,11 +399,6 @@
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
- display_subsystem: display-subsystem {
|
||||||
|
- compatible = "rockchip,display-subsystem";
|
||||||
|
- ports = <&vop_out>;
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
timer {
|
||||||
|
compatible = "arm,armv8-timer";
|
||||||
|
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
@@ -436,6 +436,62 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ gpu: gpu@fb000000 {
|
||||||
|
+ compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
|
||||||
|
+ reg = <0x0 0xfb000000 0x0 0x200000>;
|
||||||
|
+ #cooling-cells = <2>;
|
||||||
|
+ assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
|
||||||
|
+ assigned-clock-rates = <200000000>;
|
||||||
|
+ clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
|
||||||
|
+ <&cru CLK_GPU_STACKS>;
|
||||||
|
+ clock-names = "core", "coregroup", "stacks";
|
||||||
|
+ dynamic-power-coefficient = <2982>;
|
||||||
|
+ interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "job", "mmu", "gpu";
|
||||||
|
+ operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
+ power-domains = <&power RK3588_PD_GPU>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ gpu_opp_table: opp-table {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+
|
||||||
|
+ opp-300000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <300000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <400000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-500000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <500000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-600000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <600000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-700000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <700000000>;
|
||||||
|
+ opp-microvolt = <700000 700000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <800000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-900000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <900000000>;
|
||||||
|
+ opp-microvolt = <800000 800000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1000000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1000000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 850000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
usb_host0_ehci: usb@fc800000 {
|
||||||
|
compatible = "rockchip,rk3588-ehci", "generic-ehci";
|
||||||
|
reg = <0x0 0xfc800000 0x0 0x40000>;
|
||||||
|
@@ -501,62 +557,6 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
- gpu: gpu@fb000000 {
|
||||||
|
- compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
|
||||||
|
- reg = <0x0 0xfb000000 0x0 0x200000>;
|
||||||
|
- #cooling-cells = <2>;
|
||||||
|
- assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
|
||||||
|
- assigned-clock-rates = <200000000>;
|
||||||
|
- clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
|
||||||
|
- <&cru CLK_GPU_STACKS>;
|
||||||
|
- clock-names = "core", "coregroup", "stacks";
|
||||||
|
- dynamic-power-coefficient = <2982>;
|
||||||
|
- interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
- <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
- <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- interrupt-names = "job", "mmu", "gpu";
|
||||||
|
- operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
- power-domains = <&power RK3588_PD_GPU>;
|
||||||
|
- status = "disabled";
|
||||||
|
-
|
||||||
|
- gpu_opp_table: opp-table {
|
||||||
|
- compatible = "operating-points-v2";
|
||||||
|
-
|
||||||
|
- opp-300000000 {
|
||||||
|
- opp-hz = /bits/ 64 <300000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-400000000 {
|
||||||
|
- opp-hz = /bits/ 64 <400000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-500000000 {
|
||||||
|
- opp-hz = /bits/ 64 <500000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-600000000 {
|
||||||
|
- opp-hz = /bits/ 64 <600000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-700000000 {
|
||||||
|
- opp-hz = /bits/ 64 <700000000>;
|
||||||
|
- opp-microvolt = <700000 700000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-800000000 {
|
||||||
|
- opp-hz = /bits/ 64 <800000000>;
|
||||||
|
- opp-microvolt = <750000 750000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-900000000 {
|
||||||
|
- opp-hz = /bits/ 64 <900000000>;
|
||||||
|
- opp-microvolt = <800000 800000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-1000000000 {
|
||||||
|
- opp-hz = /bits/ 64 <1000000000>;
|
||||||
|
- opp-microvolt = <850000 850000 850000>;
|
||||||
|
- };
|
||||||
|
- };
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
pmu1grf: syscon@fd58a000 {
|
||||||
|
compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
|
||||||
|
reg = <0x0 0xfd58a000 0x0 0x10000>;
|
||||||
|
@@ -702,74 +702,6 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
- vop: vop@fdd90000 {
|
||||||
|
- compatible = "rockchip,rk3588-vop";
|
||||||
|
- reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
|
||||||
|
- reg-names = "vop", "gamma-lut";
|
||||||
|
- interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- clocks = <&cru ACLK_VOP>,
|
||||||
|
- <&cru HCLK_VOP>,
|
||||||
|
- <&cru DCLK_VOP0>,
|
||||||
|
- <&cru DCLK_VOP1>,
|
||||||
|
- <&cru DCLK_VOP2>,
|
||||||
|
- <&cru DCLK_VOP3>,
|
||||||
|
- <&cru PCLK_VOP_ROOT>;
|
||||||
|
- clock-names = "aclk",
|
||||||
|
- "hclk",
|
||||||
|
- "dclk_vp0",
|
||||||
|
- "dclk_vp1",
|
||||||
|
- "dclk_vp2",
|
||||||
|
- "dclk_vp3",
|
||||||
|
- "pclk_vop";
|
||||||
|
- iommus = <&vop_mmu>;
|
||||||
|
- power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
- rockchip,grf = <&sys_grf>;
|
||||||
|
- rockchip,vop-grf = <&vop_grf>;
|
||||||
|
- rockchip,vo1-grf = <&vo1_grf>;
|
||||||
|
- rockchip,pmu = <&pmu>;
|
||||||
|
- status = "disabled";
|
||||||
|
-
|
||||||
|
- vop_out: ports {
|
||||||
|
- #address-cells = <1>;
|
||||||
|
- #size-cells = <0>;
|
||||||
|
-
|
||||||
|
- vp0: port@0 {
|
||||||
|
- #address-cells = <1>;
|
||||||
|
- #size-cells = <0>;
|
||||||
|
- reg = <0>;
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- vp1: port@1 {
|
||||||
|
- #address-cells = <1>;
|
||||||
|
- #size-cells = <0>;
|
||||||
|
- reg = <1>;
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- vp2: port@2 {
|
||||||
|
- #address-cells = <1>;
|
||||||
|
- #size-cells = <0>;
|
||||||
|
- reg = <2>;
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- vp3: port@3 {
|
||||||
|
- #address-cells = <1>;
|
||||||
|
- #size-cells = <0>;
|
||||||
|
- reg = <3>;
|
||||||
|
- };
|
||||||
|
- };
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- vop_mmu: iommu@fdd97e00 {
|
||||||
|
- compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
|
||||||
|
- reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
|
||||||
|
- interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
|
||||||
|
- clock-names = "aclk", "iface";
|
||||||
|
- #iommu-cells = <0>;
|
||||||
|
- power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
- status = "disabled";
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
uart0: serial@fd890000 {
|
||||||
|
compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
|
||||||
|
reg = <0x0 0xfd890000 0x0 0x100>;
|
||||||
|
@@ -1140,6 +1072,87 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ av1d: video-codec@fdc70000 {
|
||||||
|
+ compatible = "rockchip,rk3588-av1-vpu";
|
||||||
|
+ reg = <0x0 0xfdc70000 0x0 0x800>;
|
||||||
|
+ interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "vdpu";
|
||||||
|
+ assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
+ assigned-clock-rates = <400000000>, <400000000>;
|
||||||
|
+ clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
+ clock-names = "aclk", "hclk";
|
||||||
|
+ power-domains = <&power RK3588_PD_AV1>;
|
||||||
|
+ resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vop: vop@fdd90000 {
|
||||||
|
+ compatible = "rockchip,rk3588-vop";
|
||||||
|
+ reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
|
||||||
|
+ reg-names = "vop", "gamma-lut";
|
||||||
|
+ interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru ACLK_VOP>,
|
||||||
|
+ <&cru HCLK_VOP>,
|
||||||
|
+ <&cru DCLK_VOP0>,
|
||||||
|
+ <&cru DCLK_VOP1>,
|
||||||
|
+ <&cru DCLK_VOP2>,
|
||||||
|
+ <&cru DCLK_VOP3>,
|
||||||
|
+ <&cru PCLK_VOP_ROOT>;
|
||||||
|
+ clock-names = "aclk",
|
||||||
|
+ "hclk",
|
||||||
|
+ "dclk_vp0",
|
||||||
|
+ "dclk_vp1",
|
||||||
|
+ "dclk_vp2",
|
||||||
|
+ "dclk_vp3",
|
||||||
|
+ "pclk_vop";
|
||||||
|
+ iommus = <&vop_mmu>;
|
||||||
|
+ power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
+ rockchip,grf = <&sys_grf>;
|
||||||
|
+ rockchip,vop-grf = <&vop_grf>;
|
||||||
|
+ rockchip,vo1-grf = <&vo1_grf>;
|
||||||
|
+ rockchip,pmu = <&pmu>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ vop_out: ports {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+
|
||||||
|
+ vp0: port@0 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <0>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp1: port@1 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <1>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp2: port@2 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <2>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vp3: port@3 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ reg = <3>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ vop_mmu: iommu@fdd97e00 {
|
||||||
|
+ compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
|
||||||
|
+ reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
|
||||||
|
+ interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
|
||||||
|
+ clock-names = "aclk", "iface";
|
||||||
|
+ #iommu-cells = <0>;
|
||||||
|
+ power-domains = <&power RK3588_PD_VOP>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
i2s4_8ch: i2s@fddc0000 {
|
||||||
|
compatible = "rockchip,rk3588-i2s-tdm";
|
||||||
|
reg = <0x0 0xfddc0000 0x0 0x1000>;
|
||||||
|
@@ -1431,6 +1444,16 @@
|
||||||
|
reg = <0x0 0xfdf82200 0x0 0x20>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ dfi: dfi@fe060000 {
|
||||||
|
+ reg = <0x00 0xfe060000 0x00 0x10000>;
|
||||||
|
+ compatible = "rockchip,rk3588-dfi";
|
||||||
|
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ rockchip,pmu = <&pmu1grf>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
pcie2x1l1: pcie@fe180000 {
|
||||||
|
compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
|
||||||
|
bus-range = <0x30 0x3f>;
|
||||||
|
@@ -1533,16 +1556,6 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- dfi: dfi@fe060000 {
|
||||||
|
- reg = <0x00 0xfe060000 0x00 0x10000>;
|
||||||
|
- compatible = "rockchip,rk3588-dfi";
|
||||||
|
- interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
- <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
- <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
- <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- rockchip,pmu = <&pmu1grf>;
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
gmac1: ethernet@fe1c0000 {
|
||||||
|
compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
|
||||||
|
reg = <0x0 0xfe1c0000 0x0 0x10000>;
|
||||||
|
@@ -2543,19 +2556,6 @@
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
-
|
||||||
|
- av1d: video-codec@fdc70000 {
|
||||||
|
- compatible = "rockchip,rk3588-av1-vpu";
|
||||||
|
- reg = <0x0 0xfdc70000 0x0 0x800>;
|
||||||
|
- interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- interrupt-names = "vdpu";
|
||||||
|
- assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
- assigned-clock-rates = <400000000>, <400000000>;
|
||||||
|
- clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
|
||||||
|
- clock-names = "aclk", "hclk";
|
||||||
|
- power-domains = <&power RK3588_PD_AV1>;
|
||||||
|
- resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
|
||||||
|
- };
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "rk3588s-pinctrl.dtsi"
|
@ -0,0 +1,35 @@
|
|||||||
|
From 4e07a95f7402de092cd71b2cb96c69f85c98f251 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Date: Tue, 9 Apr 2024 00:50:31 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: fix usb2phy nodename for rk3588
|
||||||
|
|
||||||
|
usb2-phy should be named usb2phy according to the DT binding,
|
||||||
|
so let's fix it up accordingly.
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240408225109.128953-5-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -599,7 +599,7 @@
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
- u2phy2: usb2-phy@8000 {
|
||||||
|
+ u2phy2: usb2phy@8000 {
|
||||||
|
compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
reg = <0x8000 0x10>;
|
||||||
|
interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
@@ -624,7 +624,7 @@
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
- u2phy3: usb2-phy@c000 {
|
||||||
|
+ u2phy3: usb2phy@c000 {
|
||||||
|
compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
reg = <0xc000 0x10>;
|
||||||
|
interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
|
@ -0,0 +1,53 @@
|
|||||||
|
From abe68e0ca71dddce0e5419e35507cb464d61870d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Date: Tue, 9 Apr 2024 00:50:32 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: reorder usb2phy properties for rk3588
|
||||||
|
|
||||||
|
Reorder common DT properties alphabetically for usb2phy, according
|
||||||
|
to latest DT style rules.
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240408225109.128953-6-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 16 ++++++++--------
|
||||||
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -602,13 +602,13 @@
|
||||||
|
u2phy2: usb2phy@8000 {
|
||||||
|
compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
reg = <0x8000 0x10>;
|
||||||
|
- interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
|
||||||
|
- reset-names = "phy", "apb";
|
||||||
|
+ #clock-cells = <0>;
|
||||||
|
clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
|
||||||
|
clock-names = "phyclk";
|
||||||
|
clock-output-names = "usb480m_phy2";
|
||||||
|
- #clock-cells = <0>;
|
||||||
|
+ interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
|
||||||
|
+ reset-names = "phy", "apb";
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
u2phy2_host: host-port {
|
||||||
|
@@ -627,13 +627,13 @@
|
||||||
|
u2phy3: usb2phy@c000 {
|
||||||
|
compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
reg = <0xc000 0x10>;
|
||||||
|
- interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
- resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
|
||||||
|
- reset-names = "phy", "apb";
|
||||||
|
+ #clock-cells = <0>;
|
||||||
|
clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
|
||||||
|
clock-names = "phyclk";
|
||||||
|
clock-output-names = "usb480m_phy3";
|
||||||
|
- #clock-cells = <0>;
|
||||||
|
+ interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
|
||||||
|
+ reset-names = "phy", "apb";
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
u2phy3_host: host-port {
|
@ -0,0 +1,175 @@
|
|||||||
|
From e18e5e8188f2671abf63abe7db5f21555705130f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Date: Tue, 9 Apr 2024 00:50:33 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add USBDP phys on rk3588
|
||||||
|
|
||||||
|
Add both USB3-DisplayPort PHYs to RK3588 SoC DT.
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240408225109.128953-7-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588.dtsi | 52 +++++++++++++++++++
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 63 +++++++++++++++++++++++
|
||||||
|
2 files changed, 115 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
@@ -17,6 +17,36 @@
|
||||||
|
reg = <0x0 0xfd5c0000 0x0 0x100>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usbdpphy1_grf: syscon@fd5cc000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5cc000 0x0 0x4000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ usb2phy1_grf: syscon@fd5d4000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
|
||||||
|
+ reg = <0x0 0xfd5d4000 0x0 0x4000>;
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <1>;
|
||||||
|
+
|
||||||
|
+ u2phy1: usb2phy@4000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
+ reg = <0x4000 0x10>;
|
||||||
|
+ #clock-cells = <0>;
|
||||||
|
+ clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
|
||||||
|
+ clock-names = "phyclk";
|
||||||
|
+ clock-output-names = "usb480m_phy1";
|
||||||
|
+ interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
|
||||||
|
+ reset-names = "phy", "apb";
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ u2phy1_otg: otg-port {
|
||||||
|
+ #phy-cells = <0>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
i2s8_8ch: i2s@fddc8000 {
|
||||||
|
compatible = "rockchip,rk3588-i2s-tdm";
|
||||||
|
reg = <0x0 0xfddc8000 0x0 0x1000>;
|
||||||
|
@@ -310,6 +340,28 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usbdp_phy1: phy@fed90000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usbdp-phy";
|
||||||
|
+ reg = <0x0 0xfed90000 0x0 0x10000>;
|
||||||
|
+ #phy-cells = <1>;
|
||||||
|
+ clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
|
||||||
|
+ <&cru CLK_USBDP_PHY1_IMMORTAL>,
|
||||||
|
+ <&cru PCLK_USBDPPHY1>,
|
||||||
|
+ <&u2phy1>;
|
||||||
|
+ clock-names = "refclk", "immortal", "pclk", "utmi";
|
||||||
|
+ resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY1_CMN>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY1_LANE>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY1_PCS>,
|
||||||
|
+ <&cru SRST_P_USBDPPHY1>;
|
||||||
|
+ reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
|
||||||
|
+ rockchip,u2phy-grf = <&usb2phy1_grf>;
|
||||||
|
+ rockchip,usb-grf = <&usb_grf>;
|
||||||
|
+ rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
|
||||||
|
+ rockchip,vo-grf = <&vo0_grf>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
combphy1_ps: phy@fee10000 {
|
||||||
|
compatible = "rockchip,rk3588-naneng-combphy";
|
||||||
|
reg = <0x0 0xfee10000 0x0 0x100>;
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -572,12 +572,23 @@
|
||||||
|
reg = <0x0 0xfd5a4000 0x0 0x2000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ vo0_grf: syscon@fd5a6000 {
|
||||||
|
+ compatible = "rockchip,rk3588-vo-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5a6000 0x0 0x2000>;
|
||||||
|
+ clocks = <&cru PCLK_VO0GRF>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
vo1_grf: syscon@fd5a8000 {
|
||||||
|
compatible = "rockchip,rk3588-vo-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd5a8000 0x0 0x100>;
|
||||||
|
clocks = <&cru PCLK_VO1GRF>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usb_grf: syscon@fd5ac000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usb-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5ac000 0x0 0x4000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
php_grf: syscon@fd5b0000 {
|
||||||
|
compatible = "rockchip,rk3588-php-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd5b0000 0x0 0x1000>;
|
||||||
|
@@ -593,6 +604,36 @@
|
||||||
|
reg = <0x0 0xfd5c4000 0x0 0x100>;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usbdpphy0_grf: syscon@fd5c8000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
|
||||||
|
+ reg = <0x0 0xfd5c8000 0x0 0x4000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ usb2phy0_grf: syscon@fd5d0000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
|
||||||
|
+ reg = <0x0 0xfd5d0000 0x0 0x4000>;
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <1>;
|
||||||
|
+
|
||||||
|
+ u2phy0: usb2phy@0 {
|
||||||
|
+ compatible = "rockchip,rk3588-usb2phy";
|
||||||
|
+ reg = <0x0 0x10>;
|
||||||
|
+ #clock-cells = <0>;
|
||||||
|
+ clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
|
||||||
|
+ clock-names = "phyclk";
|
||||||
|
+ clock-output-names = "usb480m_phy0";
|
||||||
|
+ interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
|
||||||
|
+ reset-names = "phy", "apb";
|
||||||
|
+ status = "disabled";
|
||||||
|
+
|
||||||
|
+ u2phy0_otg: otg-port {
|
||||||
|
+ #phy-cells = <0>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
usb2phy2_grf: syscon@fd5d8000 {
|
||||||
|
compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
|
||||||
|
reg = <0x0 0xfd5d8000 0x0 0x4000>;
|
||||||
|
@@ -2449,6 +2490,28 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usbdp_phy0: phy@fed80000 {
|
||||||
|
+ compatible = "rockchip,rk3588-usbdp-phy";
|
||||||
|
+ reg = <0x0 0xfed80000 0x0 0x10000>;
|
||||||
|
+ #phy-cells = <1>;
|
||||||
|
+ clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
|
||||||
|
+ <&cru CLK_USBDP_PHY0_IMMORTAL>,
|
||||||
|
+ <&cru PCLK_USBDPPHY0>,
|
||||||
|
+ <&u2phy0>;
|
||||||
|
+ clock-names = "refclk", "immortal", "pclk", "utmi";
|
||||||
|
+ resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY0_CMN>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY0_LANE>,
|
||||||
|
+ <&cru SRST_USBDP_COMBO_PHY0_PCS>,
|
||||||
|
+ <&cru SRST_P_USBDPPHY0>;
|
||||||
|
+ reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
|
||||||
|
+ rockchip,u2phy-grf = <&usb2phy0_grf>;
|
||||||
|
+ rockchip,usb-grf = <&usb_grf>;
|
||||||
|
+ rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
|
||||||
|
+ rockchip,vo-grf = <&vo0_grf>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
combphy0_ps: phy@fee00000 {
|
||||||
|
compatible = "rockchip,rk3588-naneng-combphy";
|
||||||
|
reg = <0x0 0xfee00000 0x0 0x100>;
|
@ -0,0 +1,75 @@
|
|||||||
|
From 33f393a2a990e16f56931ca708295f31d2b44415 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Date: Tue, 9 Apr 2024 00:50:34 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add USB3 DRD controllers on rk3588
|
||||||
|
|
||||||
|
Add both USB3 dual-role controllers to the RK3588 devicetree.
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240408225109.128953-8-sebastian.reichel@collabora.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588.dtsi | 20 ++++++++++++++++++++
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 22 ++++++++++++++++++++++
|
||||||
|
2 files changed, 42 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
@@ -7,6 +7,26 @@
|
||||||
|
#include "rk3588-pinctrl.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
+ usb_host1_xhci: usb@fc400000 {
|
||||||
|
+ compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
|
||||||
|
+ reg = <0x0 0xfc400000 0x0 0x400000>;
|
||||||
|
+ interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
|
||||||
|
+ <&cru ACLK_USB3OTG1>;
|
||||||
|
+ clock-names = "ref_clk", "suspend_clk", "bus_clk";
|
||||||
|
+ dr_mode = "otg";
|
||||||
|
+ phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
|
||||||
|
+ phy-names = "usb2-phy", "usb3-phy";
|
||||||
|
+ phy_type = "utmi_wide";
|
||||||
|
+ power-domains = <&power RK3588_PD_USB>;
|
||||||
|
+ resets = <&cru SRST_A_USB3OTG1>;
|
||||||
|
+ snps,dis_enblslpm_quirk;
|
||||||
|
+ snps,dis-u2-freeclk-exists-quirk;
|
||||||
|
+ snps,dis-del-phy-power-chg-quirk;
|
||||||
|
+ snps,dis-tx-ipgap-linecheck-quirk;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
pcie30_phy_grf: syscon@fd5b8000 {
|
||||||
|
compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
|
||||||
|
reg = <0x0 0xfd5b8000 0x0 0x10000>;
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -492,6 +492,28 @@
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
+ usb_host0_xhci: usb@fc000000 {
|
||||||
|
+ compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
|
||||||
|
+ reg = <0x0 0xfc000000 0x0 0x400000>;
|
||||||
|
+ interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
|
||||||
|
+ <&cru ACLK_USB3OTG0>;
|
||||||
|
+ clock-names = "ref_clk", "suspend_clk", "bus_clk";
|
||||||
|
+ dr_mode = "otg";
|
||||||
|
+ phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
|
||||||
|
+ phy-names = "usb2-phy", "usb3-phy";
|
||||||
|
+ phy_type = "utmi_wide";
|
||||||
|
+ power-domains = <&power RK3588_PD_USB>;
|
||||||
|
+ resets = <&cru SRST_A_USB3OTG0>;
|
||||||
|
+ snps,dis_enblslpm_quirk;
|
||||||
|
+ snps,dis-u1-entry-quirk;
|
||||||
|
+ snps,dis-u2-entry-quirk;
|
||||||
|
+ snps,dis-u2-freeclk-exists-quirk;
|
||||||
|
+ snps,dis-del-phy-power-chg-quirk;
|
||||||
|
+ snps,dis-tx-ipgap-linecheck-quirk;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
usb_host0_ehci: usb@fc800000 {
|
||||||
|
compatible = "rockchip,rk3588-ehci", "generic-ehci";
|
||||||
|
reg = <0x0 0xfc800000 0x0 0x40000>;
|
@ -0,0 +1,74 @@
|
|||||||
|
From cd81d3a0695cc54ad6ac0ef4bbb67a7c8f55d592 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Niklas Cassel <cassel@kernel.org>
|
||||||
|
Date: Thu, 2 May 2024 16:02:32 +0200
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add rk3588 pcie and php IOMMUs
|
||||||
|
|
||||||
|
The mmu600_pcie is connected with the five PCIe controllers.
|
||||||
|
The mmu600_php is connected with the USB3 controller, the GMAC
|
||||||
|
controllers, and the SATA controllers.
|
||||||
|
|
||||||
|
See 8.2 Block Diagram, in rk3588 TRM (Technical Reference Manual).
|
||||||
|
|
||||||
|
The IOMMUs are disabled by default, as further patches are needed to
|
||||||
|
program the SID/SSIDs in to the IOMMUs.
|
||||||
|
|
||||||
|
iommu: Default domain type: Translated
|
||||||
|
iommu: DMA domain TLB invalidation policy: strict mode
|
||||||
|
arm-smmu-v3 fc900000.iommu: ias 48-bit, oas 48-bit (features 0x001c1eaf)
|
||||||
|
arm-smmu-v3 fc900000.iommu: allocated 65536 entries for cmdq
|
||||||
|
arm-smmu-v3 fc900000.iommu: allocated 32768 entries for evtq
|
||||||
|
arm-smmu-v3 fc900000.iommu: msi_domain absent - falling back to wired irqs
|
||||||
|
|
||||||
|
Additionally, the IOMMU correctly triggers an IOMMU fault when
|
||||||
|
a PCIe device performs a write (since the device hasn't been
|
||||||
|
assigned a SID/SSID):
|
||||||
|
arm-smmu-v3 fc900000.iommu: event 0x02 received:
|
||||||
|
arm-smmu-v3 fc900000.iommu: 0x0000010000000002
|
||||||
|
arm-smmu-v3 fc900000.iommu: 0x0000000000000000
|
||||||
|
arm-smmu-v3 fc900000.iommu: 0x0000000000000000
|
||||||
|
arm-smmu-v3 fc900000.iommu: 0x0000000000000000
|
||||||
|
|
||||||
|
While this doesn't provide much value as is, having the devices as
|
||||||
|
disabled in the device tree will allow developers to see that the rk3588
|
||||||
|
actually has IOMMUs on the SoC.
|
||||||
|
|
||||||
|
Signed-off-by: Niklas Cassel <cassel@kernel.org>
|
||||||
|
Link: https://lore.kernel.org/r/20240502140231.477049-2-cassel@kernel.org
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 24 +++++++++++++++++++++++
|
||||||
|
1 file changed, 24 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -579,6 +579,30 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ mmu600_pcie: iommu@fc900000 {
|
||||||
|
+ compatible = "arm,smmu-v3";
|
||||||
|
+ reg = <0x0 0xfc900000 0x0 0x200000>;
|
||||||
|
+ interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
||||||
|
+ #iommu-cells = <1>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ mmu600_php: iommu@fcb00000 {
|
||||||
|
+ compatible = "arm,smmu-v3";
|
||||||
|
+ reg = <0x0 0xfcb00000 0x0 0x200000>;
|
||||||
|
+ interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
+ <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
+ interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
||||||
|
+ #iommu-cells = <1>;
|
||||||
|
+ status = "disabled";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
pmu1grf: syscon@fd58a000 {
|
||||||
|
compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
|
||||||
|
reg = <0x0 0xfd58a000 0x0 0x10000>;
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,193 @@
|
|||||||
|
From 510cd9e688453166b2bff3999ed21cac97385bb5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Date: Mon, 17 Jun 2024 22:28:51 +0400
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add thermal zones information on RK3588
|
||||||
|
|
||||||
|
This includes the necessary device tree data to allow thermal
|
||||||
|
monitoring on RK3588(s) using the on-chip TSADC device, along with
|
||||||
|
trip points for automatic thermal management.
|
||||||
|
|
||||||
|
Each of the CPU clusters (one for the little cores and two for
|
||||||
|
the big cores) get a passive cooling trip point at 85C, which
|
||||||
|
will trigger DVFS throttling of the respective cluster upon
|
||||||
|
reaching a high temperature condition.
|
||||||
|
|
||||||
|
All zones also have a critical trip point at 115C, which will
|
||||||
|
trigger a reset.
|
||||||
|
|
||||||
|
Signed-off-by: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-1-c1f5f3267f1e@gmail.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 153 ++++++++++++++++++
|
||||||
|
1 file changed, 153 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include <dt-bindings/reset/rockchip,rk3588-cru.h>
|
||||||
|
#include <dt-bindings/phy/phy.h>
|
||||||
|
#include <dt-bindings/ata/ahci.h>
|
||||||
|
+#include <dt-bindings/thermal/thermal.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "rockchip,rk3588";
|
||||||
|
@@ -2368,6 +2369,158 @@
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
+ thermal_zones: thermal-zones {
|
||||||
|
+ /* sensor near the center of the SoC */
|
||||||
|
+ package_thermal: package-thermal {
|
||||||
|
+ polling-delay-passive = <0>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 0>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ package_crit: package-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /* sensor between A76 cores 0 and 1 */
|
||||||
|
+ bigcore0_thermal: bigcore0-thermal {
|
||||||
|
+ polling-delay-passive = <100>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 1>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ bigcore0_alert: bigcore0-alert {
|
||||||
|
+ temperature = <85000>;
|
||||||
|
+ hysteresis = <2000>;
|
||||||
|
+ type = "passive";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ bigcore0_crit: bigcore0-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cooling-maps {
|
||||||
|
+ map0 {
|
||||||
|
+ trip = <&bigcore0_alert>;
|
||||||
|
+ cooling-device =
|
||||||
|
+ <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
+ <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /* sensor between A76 cores 2 and 3 */
|
||||||
|
+ bigcore2_thermal: bigcore2-thermal {
|
||||||
|
+ polling-delay-passive = <100>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 2>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ bigcore2_alert: bigcore2-alert {
|
||||||
|
+ temperature = <85000>;
|
||||||
|
+ hysteresis = <2000>;
|
||||||
|
+ type = "passive";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ bigcore2_crit: bigcore2-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cooling-maps {
|
||||||
|
+ map0 {
|
||||||
|
+ trip = <&bigcore2_alert>;
|
||||||
|
+ cooling-device =
|
||||||
|
+ <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
+ <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /* sensor between the four A55 cores */
|
||||||
|
+ little_core_thermal: littlecore-thermal {
|
||||||
|
+ polling-delay-passive = <100>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 3>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ littlecore_alert: littlecore-alert {
|
||||||
|
+ temperature = <85000>;
|
||||||
|
+ hysteresis = <2000>;
|
||||||
|
+ type = "passive";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ littlecore_crit: littlecore-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cooling-maps {
|
||||||
|
+ map0 {
|
||||||
|
+ trip = <&littlecore_alert>;
|
||||||
|
+ cooling-device =
|
||||||
|
+ <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
+ <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
+ <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
+ <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ /* sensor near the PD_CENTER power domain */
|
||||||
|
+ center_thermal: center-thermal {
|
||||||
|
+ polling-delay-passive = <0>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 4>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ center_crit: center-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ gpu_thermal: gpu-thermal {
|
||||||
|
+ polling-delay-passive = <0>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 5>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ gpu_crit: gpu-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ npu_thermal: npu-thermal {
|
||||||
|
+ polling-delay-passive = <0>;
|
||||||
|
+ polling-delay = <0>;
|
||||||
|
+ thermal-sensors = <&tsadc 6>;
|
||||||
|
+
|
||||||
|
+ trips {
|
||||||
|
+ npu_crit: npu-crit {
|
||||||
|
+ temperature = <115000>;
|
||||||
|
+ hysteresis = <0>;
|
||||||
|
+ type = "critical";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
tsadc: tsadc@fec00000 {
|
||||||
|
compatible = "rockchip,rk3588-tsadc";
|
||||||
|
reg = <0x0 0xfec00000 0x0 0x400>;
|
@ -0,0 +1,50 @@
|
|||||||
|
From b78f87940a79321a444083aca46ac3e8e53d1a90 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Date: Mon, 17 Jun 2024 22:28:53 +0400
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: add passive GPU cooling on RK3588
|
||||||
|
|
||||||
|
As the GPU support on RK3588 has been merged upstream, along with OPP
|
||||||
|
values, add a corresponding cooling map for passive cooling using the GPU.
|
||||||
|
|
||||||
|
Signed-off-by: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-3-c1f5f3267f1e@gmail.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 16 +++++++++++++++-
|
||||||
|
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
@@ -2493,17 +2493,31 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu_thermal: gpu-thermal {
|
||||||
|
- polling-delay-passive = <0>;
|
||||||
|
+ polling-delay-passive = <100>;
|
||||||
|
polling-delay = <0>;
|
||||||
|
thermal-sensors = <&tsadc 5>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
+ gpu_alert: gpu-alert {
|
||||||
|
+ temperature = <85000>;
|
||||||
|
+ hysteresis = <2000>;
|
||||||
|
+ type = "passive";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
gpu_crit: gpu-crit {
|
||||||
|
temperature = <115000>;
|
||||||
|
hysteresis = <0>;
|
||||||
|
type = "critical";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+ cooling-maps {
|
||||||
|
+ map0 {
|
||||||
|
+ trip = <&gpu_alert>;
|
||||||
|
+ cooling-device =
|
||||||
|
+ <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
};
|
||||||
|
|
||||||
|
npu_thermal: npu-thermal {
|
@ -0,0 +1,205 @@
|
|||||||
|
From 276856db91b46eaa7a4c19226c096a9dc899a3e9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Date: Mon, 17 Jun 2024 22:28:56 +0400
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add OPP data for CPU cores on RK3588
|
||||||
|
|
||||||
|
By default the CPUs on RK3588 start up in a conservative performance
|
||||||
|
mode. Add frequency and voltage mappings to the device tree to enable
|
||||||
|
dynamic scaling via cpufreq.
|
||||||
|
|
||||||
|
OPP values are adapted from Radxa's downstream kernel for Rock 5B [1],
|
||||||
|
stripping them down to the minimum frequency and voltage combinations
|
||||||
|
as expected by the generic upstream cpufreq-dt driver, and also dropping
|
||||||
|
those OPPs that don't differ in voltage but only in frequency (keeping
|
||||||
|
the top frequency OPP in each case).
|
||||||
|
|
||||||
|
Note that this patch ignores voltage scaling for the CPU memory
|
||||||
|
interface which the downstream kernel does through a custom cpufreq
|
||||||
|
driver, and which is why the downstream version has two sets of voltage
|
||||||
|
values for each OPP (the second one being meant for the memory
|
||||||
|
interface supply regulator). This is done instead via regulator
|
||||||
|
coupling between CPU and memory interface supplies on affected boards.
|
||||||
|
|
||||||
|
This has been tested on Rock 5B with u-boot 2023.11 compiled from
|
||||||
|
Collabora's integration tree [2] with binary bl31 and appears to be
|
||||||
|
stable both under active cooling and passive cooling (with throttling)
|
||||||
|
|
||||||
|
[1] https://github.com/radxa/kernel/blob/stable-5.10-rock5/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
[2] https://gitlab.collabora.com/hardware-enablement/rockchip-3588/u-boot
|
||||||
|
|
||||||
|
Signed-off-by: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-6-c1f5f3267f1e@gmail.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi | 149 +++++++++++++++++++
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588.dtsi | 1 +
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 1 +
|
||||||
|
3 files changed, 151 insertions(+)
|
||||||
|
create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi
|
||||||
|
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi
|
||||||
|
@@ -0,0 +1,149 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ cluster0_opp_table: opp-table-cluster0 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1008000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1008000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1200000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1200000000>;
|
||||||
|
+ opp-microvolt = <712500 712500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <762500 762500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ opp-suspend;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1800000000>;
|
||||||
|
+ opp-microvolt = <950000 950000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cluster1_opp_table: opp-table-cluster1 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1200000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1200000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <725000 725000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <762500 762500 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1800000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2016000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2016000000>;
|
||||||
|
+ opp-microvolt = <925000 925000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2208000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2208000000>;
|
||||||
|
+ opp-microvolt = <987500 987500 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2400000000>;
|
||||||
|
+ opp-microvolt = <1000000 1000000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cluster2_opp_table: opp-table-cluster2 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1200000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1200000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <725000 725000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <762500 762500 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1800000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2016000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2016000000>;
|
||||||
|
+ opp-microvolt = <925000 925000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2208000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2208000000>;
|
||||||
|
+ opp-microvolt = <987500 987500 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2400000000>;
|
||||||
|
+ opp-microvolt = <1000000 1000000 1000000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b0 {
|
||||||
|
+ operating-points-v2 = <&cluster1_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b1 {
|
||||||
|
+ operating-points-v2 = <&cluster1_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b2 {
|
||||||
|
+ operating-points-v2 = <&cluster2_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b3 {
|
||||||
|
+ operating-points-v2 = <&cluster2_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l0 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l1 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l2 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l3 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi
|
||||||
|
@@ -5,3 +5,4 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3588-extra.dtsi"
|
||||||
|
+#include "rk3588-opp.dtsi"
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
@@ -5,3 +5,4 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3588-base.dtsi"
|
||||||
|
+#include "rk3588-opp.dtsi"
|
@ -0,0 +1,140 @@
|
|||||||
|
From 667885a6865832eb0678c7e02e47a3392f177ecb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Date: Mon, 17 Jun 2024 22:28:57 +0400
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Add OPP data for CPU cores on RK3588j
|
||||||
|
|
||||||
|
RK3588j is the 'industrial' variant of RK3588, and it uses a different
|
||||||
|
set of OPPs both in terms of allowed frequencies and in terms of
|
||||||
|
applicable voltages at each frequency setpoint.
|
||||||
|
|
||||||
|
Add the OPPs that apply to RK3588j (and apparently RK3588m too) to
|
||||||
|
enable dynamic CPU frequency scaling.
|
||||||
|
|
||||||
|
OPP values are derived from Rockchip downstream sources [1] by taking
|
||||||
|
only those OPPs which have the highest frequency for a given voltage
|
||||||
|
level and dropping the rest (if they are included, the kernel complains
|
||||||
|
at boot time about them being inefficient)
|
||||||
|
|
||||||
|
[1] https://github.com/rockchip-linux/kernel/blob/604cec4004abe5a96c734f2fab7b74809d2d742f/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
|
||||||
|
Signed-off-by: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-7-c1f5f3267f1e@gmail.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588j.dtsi | 108 ++++++++++++++++++++++
|
||||||
|
1 file changed, 108 insertions(+)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588j.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588j.dtsi
|
||||||
|
@@ -5,3 +5,111 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3588-extra.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ cluster0_opp_table: opp-table-cluster0 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ opp-suspend;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <887500 887500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1704000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1704000000>;
|
||||||
|
+ opp-microvolt = <937500 937500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cluster1_opp_table: opp-table-cluster1 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <787500 787500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1800000000>;
|
||||||
|
+ opp-microvolt = <875000 875000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2016000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2016000000>;
|
||||||
|
+ opp-microvolt = <950000 950000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ cluster2_opp_table: opp-table-cluster2 {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+ opp-shared;
|
||||||
|
+
|
||||||
|
+ opp-1416000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1416000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1608000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1608000000>;
|
||||||
|
+ opp-microvolt = <787500 787500 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1800000000>;
|
||||||
|
+ opp-microvolt = <875000 875000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ opp-2016000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <2016000000>;
|
||||||
|
+ opp-microvolt = <950000 950000 950000>;
|
||||||
|
+ clock-latency-ns = <40000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b0 {
|
||||||
|
+ operating-points-v2 = <&cluster1_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b1 {
|
||||||
|
+ operating-points-v2 = <&cluster1_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b2 {
|
||||||
|
+ operating-points-v2 = <&cluster2_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_b3 {
|
||||||
|
+ operating-points-v2 = <&cluster2_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l0 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l1 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l2 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&cpu_l3 {
|
||||||
|
+ operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
+};
|
@ -0,0 +1,177 @@
|
|||||||
|
From a7b2070505a2a09ea65fa0c8c480c97f62d1978d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Date: Mon, 17 Jun 2024 22:28:58 +0400
|
||||||
|
Subject: [PATCH] arm64: dts: rockchip: Split GPU OPPs of RK3588 and RK3588j
|
||||||
|
|
||||||
|
RK3588j uses a different set of OPPs for its GPU, both in terms of
|
||||||
|
allowed frequencies and in terms of voltages.
|
||||||
|
|
||||||
|
Move the GPU OPPs table into per-variant .dtsi files to accommodate
|
||||||
|
for this difference.
|
||||||
|
|
||||||
|
The table for RK3588j is adapted from Rockchip downstream sources [1],
|
||||||
|
while RK3588 one is moved verbatim into the per-variant .dtsi file.
|
||||||
|
The values provided for RK3588 in the downstream sources match those
|
||||||
|
in the original commit.
|
||||||
|
|
||||||
|
[1] https://github.com/rockchip-linux/kernel/blob/604cec4004abe5a96c734f2fab7b74809d2d742f/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||||
|
|
||||||
|
Fixes: 6fca4edb93d3 ("arm64: dts: rockchip: Add rk3588 GPU node")
|
||||||
|
Signed-off-by: Alexey Charkov <alchark@gmail.com>
|
||||||
|
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-8-c1f5f3267f1e@gmail.com
|
||||||
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 38 -----------------
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi | 41 +++++++++++++++++++
|
||||||
|
arch/arm64/boot/dts/rockchip/rk3588j.dtsi | 33 +++++++++++++++
|
||||||
|
3 files changed, 74 insertions(+), 38 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
|
||||||
|
@@ -451,46 +451,8 @@
|
||||||
|
<GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||||
|
<GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||||
|
interrupt-names = "job", "mmu", "gpu";
|
||||||
|
- operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
power-domains = <&power RK3588_PD_GPU>;
|
||||||
|
status = "disabled";
|
||||||
|
-
|
||||||
|
- gpu_opp_table: opp-table {
|
||||||
|
- compatible = "operating-points-v2";
|
||||||
|
-
|
||||||
|
- opp-300000000 {
|
||||||
|
- opp-hz = /bits/ 64 <300000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-400000000 {
|
||||||
|
- opp-hz = /bits/ 64 <400000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-500000000 {
|
||||||
|
- opp-hz = /bits/ 64 <500000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-600000000 {
|
||||||
|
- opp-hz = /bits/ 64 <600000000>;
|
||||||
|
- opp-microvolt = <675000 675000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-700000000 {
|
||||||
|
- opp-hz = /bits/ 64 <700000000>;
|
||||||
|
- opp-microvolt = <700000 700000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-800000000 {
|
||||||
|
- opp-hz = /bits/ 64 <800000000>;
|
||||||
|
- opp-microvolt = <750000 750000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-900000000 {
|
||||||
|
- opp-hz = /bits/ 64 <900000000>;
|
||||||
|
- opp-microvolt = <800000 800000 850000>;
|
||||||
|
- };
|
||||||
|
- opp-1000000000 {
|
||||||
|
- opp-hz = /bits/ 64 <1000000000>;
|
||||||
|
- opp-microvolt = <850000 850000 850000>;
|
||||||
|
- };
|
||||||
|
- };
|
||||||
|
};
|
||||||
|
|
||||||
|
usb_host0_xhci: usb@fc000000 {
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi
|
||||||
|
@@ -114,6 +114,43 @@
|
||||||
|
clock-latency-ns = <40000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+ gpu_opp_table: opp-table {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+
|
||||||
|
+ opp-300000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <300000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <400000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-500000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <500000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-600000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <600000000>;
|
||||||
|
+ opp-microvolt = <675000 675000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-700000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <700000000>;
|
||||||
|
+ opp-microvolt = <700000 700000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-800000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <800000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-900000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <900000000>;
|
||||||
|
+ opp-microvolt = <800000 800000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-1000000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <1000000000>;
|
||||||
|
+ opp-microvolt = <850000 850000 850000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu_b0 {
|
||||||
|
@@ -147,3 +184,7 @@
|
||||||
|
&cpu_l3 {
|
||||||
|
operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+&gpu {
|
||||||
|
+ operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
+};
|
||||||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588j.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588j.dtsi
|
||||||
|
@@ -80,6 +80,35 @@
|
||||||
|
clock-latency-ns = <40000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+ gpu_opp_table: opp-table {
|
||||||
|
+ compatible = "operating-points-v2";
|
||||||
|
+
|
||||||
|
+ opp-300000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <300000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-400000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <400000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-500000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <500000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-600000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <600000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-700000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <700000000>;
|
||||||
|
+ opp-microvolt = <750000 750000 850000>;
|
||||||
|
+ };
|
||||||
|
+ opp-850000000 {
|
||||||
|
+ opp-hz = /bits/ 64 <800000000>;
|
||||||
|
+ opp-microvolt = <787500 787500 850000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu_b0 {
|
||||||
|
@@ -113,3 +142,7 @@
|
||||||
|
&cpu_l3 {
|
||||||
|
operating-points-v2 = <&cluster0_opp_table>;
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+&gpu {
|
||||||
|
+ operating-points-v2 = <&gpu_opp_table>;
|
||||||
|
+};
|
Loading…
x
Reference in New Issue
Block a user