[PATCH 5/6] arm64: dts: renesas: Switch to remap drivers on R-Car Gen5 R8A78000 X5H
Marek Vasut
marek.vasut+renesas at mailbox.org
Fri May 8 01:23:32 CEST 2026
Point every direct user of SCMI clock protocol at CPG node instead
of SCMI clock protocol node. Point every direct user of SCMI reset
and power domain protocol at a matching newly introduced MDLC node
instead of the SCMI reset and power domain protocol nodes.
This allows the CPG and MDLC remap drivers bound to CPG node and MDLC
nodes to remap between DT clock, reset and power domain IDs and SCMI
clock, reset and power domain IDs. This makes U-Boot on R-Car X5H
compatible with multiple SCP firmware versions. Currently supported
versions of SCP firmware are 4.28, 4.31 and 4.32.
Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: Clément Le Goffic <clegoffic at baylibre.com>
Cc: Geert Uytterhoeven <geert+renesas at glider.be>
Cc: Hai Pham <hai.pham.ud at renesas.com>
Cc: Khanh Le <khanh.le.xr at renesas.com>
Cc: Neil Armstrong <neil.armstrong at linaro.org>
Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
Cc: Peng Fan <peng.fan at nxp.com>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at lists.denx.de
---
arch/arm/dts/r8a78000-ironhide-u-boot.dtsi | 12 ++
arch/arm/dts/r8a78000-u-boot.dtsi | 136 ++++++++++++---------
2 files changed, 87 insertions(+), 61 deletions(-)
diff --git a/arch/arm/dts/r8a78000-ironhide-u-boot.dtsi b/arch/arm/dts/r8a78000-ironhide-u-boot.dtsi
index eebad1281fc..299716f96a4 100644
--- a/arch/arm/dts/r8a78000-ironhide-u-boot.dtsi
+++ b/arch/arm/dts/r8a78000-ironhide-u-boot.dtsi
@@ -34,6 +34,10 @@
};
};
+&cpg {
+ firmware = <&scmi>;
+};
+
ð_pcs {
phys = <&mp_phy 2 1>;
status = "okay";
@@ -64,6 +68,14 @@
status = "okay";
};
+&mdlc_hscn {
+ firmware = <&scmi>;
+};
+
+&mdlc_pere {
+ firmware = <&scmi>;
+};
+
&mmc0 {
pinctrl-0 = <&mmc0_pins>;
pinctrl-1 = <&mmc0_pins>;
diff --git a/arch/arm/dts/r8a78000-u-boot.dtsi b/arch/arm/dts/r8a78000-u-boot.dtsi
index ee8aa9ee199..df21a9e03a2 100644
--- a/arch/arm/dts/r8a78000-u-boot.dtsi
+++ b/arch/arm/dts/r8a78000-u-boot.dtsi
@@ -11,7 +11,7 @@
/ {
firmware {
- scmi {
+ scmi: scmi {
compatible = "arm,scmi";
arm,poll-transport;
mbox-names = "tx", "rx";
@@ -20,17 +20,17 @@
#address-cells = <1>;
#size-cells = <0>;
- scmi_devpd: protocol at 11 {
+ protocol at 11 {
reg = <0x11>;
#power-domain-cells = <1>;
};
- scmi_clk: protocol at 14 {
+ protocol at 14 {
reg = <0x14>;
#clock-cells = <1>;
};
- scmi_reset: protocol at 16 {
+ protocol at 16 {
reg = <0x16>;
#reset-cells = <1>;
};
@@ -64,8 +64,8 @@
clk_stub_mmc: clk-stub-mmc {
compatible = "renesas,compound-clock";
#clock-cells = <0>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_SDHI0>,
- <&scmi_clk SCP_CLOCK_ID_CLK_S0D6_PERE_MAIN>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_SDHI0>,
+ <&cpg SCP_CLOCK_ID_CLK_S0D6_PERE_MAIN>;
clock-names = "mdlc", "per";
};
};
@@ -111,14 +111,22 @@
status = "disabled";
};
+ mdlc_pere: system-controller at c08f0000 {
+ compatible = "renesas,r8a78000-mdlc";
+ reg = <0 0xc08f0000 0 0x1000>;
+ #power-domain-cells = <1>;
+ #reset-cells = <1>;
+ bootph-all;
+ };
+
ufs0: ufs at c0a80000 {
compatible = "renesas,r8a78000-ufs";
reg = <0 0xc0a80000 0 0x1100>, <0 0xc0a00000 0 0x40000>;
reg-names = "hcr", "phy";
interrupts = <GIC_SPI 4284 IRQ_TYPE_LEVEL_HIGH>;
- power-domains = <&scmi_devpd X5H_POWER_DOMAIN_ID_UFS0>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_UFS0>;
- resets = <&scmi_reset SCP_RESET_DOMAIN_ID_UFS0>;
+ power-domains = <&mdlc_pere X5H_POWER_DOMAIN_ID_UFS0>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_UFS0>;
+ resets = <&mdlc_pere SCP_RESET_DOMAIN_ID_UFS0>;
freq-table-hz = <38400000 38400000>;
status = "disabled";
};
@@ -128,9 +136,9 @@
reg = <0 0xc0a90000 0 0x1100>, <0 0xc0a40000 0 0x40000>;
reg-names = "hcr", "phy";
interrupts = <GIC_SPI 4285 IRQ_TYPE_LEVEL_HIGH>;
- power-domains = <&scmi_devpd X5H_POWER_DOMAIN_ID_UFS1>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_UFS1>;
- resets = <&scmi_reset SCP_RESET_DOMAIN_ID_UFS1>;
+ power-domains = <&mdlc_pere X5H_POWER_DOMAIN_ID_UFS1>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_UFS1>;
+ resets = <&mdlc_pere SCP_RESET_DOMAIN_ID_UFS1>;
freq-table-hz = <38400000 38400000>;
status = "disabled";
};
@@ -153,14 +161,12 @@
};
};
- cpg: clock-controller at c64f0000 {
- compatible = "renesas,r8a78000-cpg-mssr";
- reg = <0 0xc64f0000 0 0x4000>;
+ cpg: clock-controller at c1320000 {
+ compatible = "renesas,r8a78000-cpg";
+ reg = <0 0xc1320000 0 0x10000>;
clocks = <&extal_clk>, <&extalr_clk>;
clock-names = "extal", "extalr";
- #clock-cells = <2>;
- #power-domain-cells = <0>;
- #reset-cells = <1>;
+ #clock-cells = <1>;
bootph-all;
};
@@ -301,22 +307,22 @@
compatible = "renesas,r8a78000-multi-protocol-phy";
reg = <0 0xc9a00000 0 0x100000>;
#phy-cells = <2>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_MPPHY01>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_MPPHY11>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_MPPHY21>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_MPPHY31>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_MPPHY02>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_MPPHY01>,
+ <&cpg SCP_CLOCK_ID_MDLC_MPPHY11>,
+ <&cpg SCP_CLOCK_ID_MDLC_MPPHY21>,
+ <&cpg SCP_CLOCK_ID_MDLC_MPPHY31>,
+ <&cpg SCP_CLOCK_ID_MDLC_MPPHY02>;
clock-names = "mpphy01", "mpphy11", "mpphy21",
"mpphy31", "mpphy02";
- power-domains = <&scmi_devpd X5H_POWER_DOMAIN_ID_MPP0>,
- <&scmi_devpd X5H_POWER_DOMAIN_ID_MPP1>,
- <&scmi_devpd X5H_POWER_DOMAIN_ID_MPP2>,
- <&scmi_devpd X5H_POWER_DOMAIN_ID_MPP3>;
- resets = <&scmi_reset SCP_RESET_DOMAIN_ID_MPPHY01>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_MPPHY11>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_MPPHY21>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_MPPHY31>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_MPPHY02>;
+ power-domains = <&mdlc_hscn X5H_POWER_DOMAIN_ID_MPP0>,
+ <&mdlc_hscn X5H_POWER_DOMAIN_ID_MPP1>,
+ <&mdlc_hscn X5H_POWER_DOMAIN_ID_MPP2>,
+ <&mdlc_hscn X5H_POWER_DOMAIN_ID_MPP3>;
+ resets = <&mdlc_hscn SCP_RESET_DOMAIN_ID_MPPHY01>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_MPPHY11>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_MPPHY21>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_MPPHY31>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_MPPHY02>;
status = "disabled";
};
@@ -325,19 +331,19 @@
"renesas,etherswitch";
reg = <0 0xc9bc0000 0 0x40000>, <0 0xc9b80000 0 0x240000>;
reg-names = "base", "secure_base";
- power-domains = <&scmi_devpd X5H_POWER_DOMAIN_ID_RSW>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSN>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3AES>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES0>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES1>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES2>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES3>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES4>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES5>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES6>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3TSNTES7>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_RSW3MFWD>;
+ power-domains = <&mdlc_hscn X5H_POWER_DOMAIN_ID_RSW>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_RSW3>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSN>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3AES>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES0>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES1>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES2>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES3>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES4>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES5>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES6>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3TSNTES7>,
+ <&cpg SCP_CLOCK_ID_MDLC_RSW3MFWD>;
clock-names = "rsw3", "rsw3tsn", "rsw3aes",
"rsw3tsntes0", "rsw3tsntes1", "rsw3tsntes2",
"rsw3tsntes3", "rsw3tsntes4", "rsw3tsntes5",
@@ -349,26 +355,34 @@
compatible = "renesas,r8a78000-ether-pcs";
reg = <0 0xc9c50000 0 0x4000>;
#phy-cells = <1>;
- clocks = <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS0>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS1>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS2>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS3>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS4>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS5>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS6>,
- <&scmi_clk SCP_CLOCK_ID_MDLC_XPCS7>;
+ clocks = <&cpg SCP_CLOCK_ID_MDLC_XPCS0>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS1>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS2>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS3>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS4>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS5>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS6>,
+ <&cpg SCP_CLOCK_ID_MDLC_XPCS7>;
clock-names = "xpcs0", "xpcs1", "xpcs2", "xpcs3",
"xpcs4", "xpcs5", "xpcs6", "xpcs7";
- resets = <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS0>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS1>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS2>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS3>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS4>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS5>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS6>,
- <&scmi_reset SCP_RESET_DOMAIN_ID_XPCS7>;
+ resets = <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS0>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS1>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS2>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS3>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS4>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS5>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS6>,
+ <&mdlc_hscn SCP_RESET_DOMAIN_ID_XPCS7>;
reset-names = "xpcs0", "xpcs1", "xpcs2", "xpcs3",
"xpcs4", "xpcs5", "xpcs6", "xpcs7";
status = "disabled";
};
+
+ mdlc_hscn: system-controller at c9c90000 {
+ compatible = "renesas,r8a78000-mdlc";
+ reg = <0 0xc9c90000 0 0x1000>;
+ #power-domain-cells = <1>;
+ #reset-cells = <1>;
+ bootph-all;
+ };
};
--
2.53.0
More information about the U-Boot
mailing list