From f2802c62cca923ff394766c2fec23b00563f33c3 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Tue, 22 Aug 2023 05:57:55 +0000 Subject: [PATCH 01/16] arm64: dts: renesas: Handle ADG bit for sound clk_i Renesas Sound has been using CPG_AUDIO_CLK_I on CPG_CORE for clock, but this was wrong. Instead, it needs to use CPG_MOD, so clk_i can handle the "ADG" bit in SMSTPCR9. Signed-off-by: Kuninori Morimoto Tested-by: Vincenzo De Michele [r8a77965] Tested-by: Patrick Keil [r8a77965] Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/87y1i3sjoc.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87wmxnsjo7.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87v8d7sjo2.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87ttsrsjnx.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87sf8bsjns.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87r0nvsjnn.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87pm3fsjni.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87o7izsjnd.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87msyjsjn9.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87lee3sjn4.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87jztnsjmy.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87il97sjmu.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87h6orsjmp.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87fs4bsjml.wl-kuninori.morimoto.gx@renesas.com Link: https://lore.kernel.org/r/87edjvsjmg.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Geert Uytterhoeven --- arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi | 2 +- arch/arm64/boot/dts/renesas/hihope-rev4.dtsi | 2 +- arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 2 +- arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a77951.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a77960.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a77961.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a77965.dtsi | 4 +--- arch/arm64/boot/dts/renesas/r8a77990.dtsi | 2 +- arch/arm64/boot/dts/renesas/r8a77995.dtsi | 2 +- arch/arm64/boot/dts/renesas/salvator-common.dtsi | 2 +- arch/arm64/boot/dts/renesas/ulcb.dtsi | 2 +- 14 files changed, 14 insertions(+), 28 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi index 2e9927b97732..5a14f116f7a1 100644 --- a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi +++ b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi @@ -651,7 +651,7 @@ &rcar_sound { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&versaclock6_bb 4>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + <&cpg CPG_MOD 922>; status = "okay"; diff --git a/arch/arm64/boot/dts/renesas/hihope-rev4.dtsi b/arch/arm64/boot/dts/renesas/hihope-rev4.dtsi index 7fc0339a3ac9..66f3affe0469 100644 --- a/arch/arm64/boot/dts/renesas/hihope-rev4.dtsi +++ b/arch/arm64/boot/dts/renesas/hihope-rev4.dtsi @@ -112,7 +112,7 @@ &rcar_sound { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&cs2000>, <&audio_clk_c>, - <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + <&cpg CPG_MOD 922>; rsnd_port: port { rsnd_endpoint: endpoint { diff --git a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi index 9065dc243428..95b0a1f6debf 100644 --- a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi @@ -10,8 +10,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A774A1_CLK_S0D4 - / { compatible = "renesas,r8a774a1"; #address-cells = <2>; @@ -1713,7 +1711,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A774A1_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi index 75776decd218..786660fcdea4 100644 --- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi @@ -10,8 +10,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A774B1_CLK_S0D4 - / { compatible = "renesas,r8a774b1"; #address-cells = <2>; @@ -1597,7 +1595,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A774B1_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a774c0.dtsi b/arch/arm64/boot/dts/renesas/r8a774c0.dtsi index ad2e87b039ac..eed94ffed7c1 100644 --- a/arch/arm64/boot/dts/renesas/r8a774c0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a774c0.dtsi @@ -1350,7 +1350,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A774C0_CLK_ZA2>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi index 2acf4067ab2f..175e5d296da6 100644 --- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi @@ -10,8 +10,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A774E1_CLK_S0D4 - / { compatible = "renesas,r8a774e1"; #address-cells = <2>; @@ -1809,7 +1807,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A774E1_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77951.dtsi b/arch/arm64/boot/dts/renesas/r8a77951.dtsi index 6d15229d25ab..a4260d9291ba 100644 --- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi @@ -9,8 +9,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 - #define SOC_HAS_HDMI1 #define SOC_HAS_SATA #define SOC_HAS_USB2_CH2 @@ -2032,7 +2030,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A7795_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77960.dtsi b/arch/arm64/boot/dts/renesas/r8a77960.dtsi index 17062ec506be..a631ead171b2 100644 --- a/arch/arm64/boot/dts/renesas/r8a77960.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77960.dtsi @@ -9,8 +9,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 - / { compatible = "renesas,r8a7796"; #address-cells = <2>; @@ -1903,7 +1901,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A7796_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77961.dtsi b/arch/arm64/boot/dts/renesas/r8a77961.dtsi index d3f47da1b626..7254912a241f 100644 --- a/arch/arm64/boot/dts/renesas/r8a77961.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77961.dtsi @@ -9,8 +9,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A77961_CLK_S0D4 - / { compatible = "renesas,r8a77961"; #address-cells = <2>; @@ -1783,7 +1781,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A77961_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi index c75820038491..e57b9027066e 100644 --- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi @@ -12,8 +12,6 @@ #include #include -#define CPG_AUDIO_CLK_I R8A77965_CLK_S0D4 - #define SOC_HAS_SATA / { @@ -1766,7 +1764,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A77965_CLK_S0D4>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi index 4c545eff9b42..8c2b28342387 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -1501,7 +1501,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, - <&cpg CPG_CORE R8A77990_CLK_ZA2>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4", "ssi.3", "ssi.2", diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi index e25024a7b66c..8cf6473c63d3 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi @@ -1063,7 +1063,7 @@ rcar_sound: sound@ec500000 { <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&audio_clk_b>, - <&cpg CPG_CORE R8A77995_CLK_ZA2>; + <&cpg CPG_MOD 922>; clock-names = "ssi-all", "ssi.4", "ssi.3", "src.6", "src.5", diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi index 4a3d5037821f..1eb4883b3219 100644 --- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi +++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi @@ -822,7 +822,7 @@ &rcar_sound { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&cs2000>, <&audio_clk_c>, - <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + <&cpg CPG_MOD 922>; ports { #address-cells = <1>; diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi index 0be2716659e9..a2f66f916048 100644 --- a/arch/arm64/boot/dts/renesas/ulcb.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi @@ -383,7 +383,7 @@ &rcar_sound { <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, <&audio_clk_a>, <&cs2000>, <&audio_clk_c>, - <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + <&cpg CPG_MOD 922>; }; &rpc { From edc6ef026fe69154bb6b70dd6e7f278cfd7d6919 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 30 Aug 2023 17:21:38 +0200 Subject: [PATCH 02/16] ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name On blanche, the GPIO keyboard fails to probe with: sh-pfc e6060000.pinctrl: could not map pin config for "GP_11_02" Fix this by correcting the name for this pin to "GP_11_2". Fixes: 1f27fedead91eb60 ("ARM: dts: blanche: Configure pull-up for SOFT_SW and SW25 GPIO keys") Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/203128eca2261ffc33b83637818dd39c488f42b0.1693408326.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7792-blanche.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts index c66de9dd12df..6a83923aa461 100644 --- a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts +++ b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts @@ -239,7 +239,7 @@ du1_pins: du1 { }; keyboard_pins: keyboard { - pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_02"; + pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2"; bias-pull-up; }; From ed5290f235863d63b46bc36900113a0da0a362c8 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:23 +0200 Subject: [PATCH 03/16] ARM: dts: renesas: ape6evm: Drop bogus "mtd-rom" compatible value make dtbs_check: arch/arm/boot/dts/r8a73a4-ape6evm.dtb: flash@0: compatible: 'oneOf' conditional failed, one must be fixed: ['cfi-flash', 'mtd-rom'] is too long 'cfi-flash' is not one of ['amd,s29gl01gp', 'amd,s29gl032a', 'amd,s29gl256n', 'amd,s29gl512n', 'arm,versatile-flash', 'arm,vexpress-flash', 'cortina,gemini-flash', 'cypress,hyperflash', 'ge,imp3a-firmware-mirror', 'ge,imp3a-paged-flash', 'gef,ppc9a-firmware-mirror', 'gef,ppc9a-paged-flash', 'gef,sbc310-firmware-mirror', 'gef,sbc310-paged-flash', 'gef,sbc610-firmware-mirror', 'gef,sbc610-paged-flash', 'intel,28f128j3', 'intel,dt28f160', 'intel,ixp4xx-flash', 'intel,JS28F128', 'intel,JS28F640', 'intel,PC28F640P30T85', 'numonyx,js28f00a', 'numonyx,js28f128', 'sst,sst39vf320', 'xlnx,xps-mch-emc-2.00.a'] 'cfi-flash' is not one of ['cypress,cy7c1019dv33-10zsxi', 'arm,vexpress-psram'] 'mtd-rom' is not one of ['cfi-flash', 'jedec-flash'] 'mtd-ram' was expected From schema: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1c773aed6bd794cf36a9a787f77469eaa1359bef.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts index e81a7213d304..ed75c01dbee1 100644 --- a/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts @@ -164,7 +164,7 @@ &cpu0 { &bsc { flash@0 { - compatible = "cfi-flash", "mtd-rom"; + compatible = "cfi-flash"; reg = <0x0 0x08000000>; bank-width = <2>; From 4cc222e187902dfff0ae729871279eaba163ad04 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:24 +0200 Subject: [PATCH 04/16] ARM: dts: renesas: gr-peach: Remove unneeded probe-type property The "probe-type" property was only needed when used with the (long obsolete) "direct-mapped" compatible value. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/b2a74d02468f4032e7c3c3a90c85c5e05ebdefa7.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts b/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts index 105f9c71f9fd..dc05eaf391f8 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts @@ -36,7 +36,6 @@ lbsc { flash@18000000 { compatible = "mtd-rom"; - probe-type = "map_rom"; reg = <0x18000000 0x00800000>; bank-width = <4>; device-width = <1>; From 183a709d3719e5c9919a6f12c86c0a3e088b712d Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Tue, 5 Sep 2023 10:24:03 +0900 Subject: [PATCH 05/16] arm64: dts: renesas: r8a779f0: Add PCIe Host and Endpoint nodes Add PCIe Host and Endpoint nodes for R-Car S4-8 (R8A779F0). Signed-off-by: Yoshihiro Shimoda Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20230905012404.2915246-2-yoshihiro.shimoda.uh@renesas.com Signed-off-by: Geert Uytterhoeven --- arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 134 ++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi index ecdd5a523fa3..7fb4989cce8a 100644 --- a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi @@ -262,6 +262,20 @@ extalr_clk: extalr { clock-frequency = <0>; }; + pcie0_clkref: pcie0-clkref { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board */ + clock-frequency = <0>; + }; + + pcie1_clkref: pcie1-clkref { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board */ + clock-frequency = <0>; + }; + pmu_a55 { compatible = "arm,cortex-a55-pmu"; interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; @@ -726,6 +740,126 @@ hscif3: serial@e66a0000 { status = "disabled"; }; + pciec0: pcie@e65d0000 { + compatible = "renesas,r8a779f0-pcie", + "renesas,rcar-gen4-pcie"; + reg = <0 0xe65d0000 0 0x1000>, <0 0xe65d2000 0 0x0800>, + <0 0xe65d3000 0 0x2000>, <0 0xe65d5000 0 0x1200>, + <0 0xe65d6200 0 0x0e00>, <0 0xe65d7000 0 0x0400>, + <0 0xfe000000 0 0x400000>; + reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "config"; + interrupts = , + , + , + ; + interrupt-names = "msi", "dma", "sft_ce", "app"; + clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>; + clock-names = "core", "ref"; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 624>; + reset-names = "pwr"; + max-link-speed = <4>; + num-lanes = <2>; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x00 0xff>; + device_type = "pci"; + ranges = <0x01000000 0 0x00000000 0 0xfe000000 0 0x00400000>, + <0x02000000 0 0x30000000 0 0x30000000 0 0x10000000>; + dma-ranges = <0x42000000 0 0x00000000 0 0x00000000 1 0x00000000>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>; + snps,enable-cdm-check; + status = "disabled"; + }; + + pciec1: pcie@e65d8000 { + compatible = "renesas,r8a779f0-pcie", + "renesas,rcar-gen4-pcie"; + reg = <0 0xe65d8000 0 0x1000>, <0 0xe65da000 0 0x0800>, + <0 0xe65db000 0 0x2000>, <0 0xe65dd000 0 0x1200>, + <0 0xe65de200 0 0x0e00>, <0 0xe65df000 0 0x0400>, + <0 0xee900000 0 0x400000>; + reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "config"; + interrupts = , + , + , + ; + interrupt-names = "msi", "dma", "sft_ce", "app"; + clocks = <&cpg CPG_MOD 625>, <&pcie1_clkref>; + clock-names = "core", "ref"; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 625>; + reset-names = "pwr"; + max-link-speed = <4>; + num-lanes = <2>; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x00 0xff>; + device_type = "pci"; + ranges = <0x01000000 0 0x00000000 0 0xee900000 0 0x00400000>, + <0x02000000 0 0xc0000000 0 0xc0000000 0 0x10000000>; + dma-ranges = <0x42000000 0 0x00000000 0 0x00000000 1 0x00000000>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &gic GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &gic GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &gic GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &gic GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>; + snps,enable-cdm-check; + status = "disabled"; + }; + + pciec0_ep: pcie-ep@e65d0000 { + compatible = "renesas,r8a779f0-pcie-ep", + "renesas,rcar-gen4-pcie-ep"; + reg = <0 0xe65d0000 0 0x2000>, <0 0xe65d2000 0 0x1000>, + <0 0xe65d3000 0 0x2000>, <0 0xe65d5000 0 0x1200>, + <0 0xe65d6200 0 0x0e00>, <0 0xe65d7000 0 0x0400>, + <0 0xfe000000 0 0x400000>; + reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "addr_space"; + interrupts = , + , + ; + interrupt-names = "dma", "sft_ce", "app"; + clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>; + clock-names = "core", "ref"; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 624>; + reset-names = "pwr"; + max-link-speed = <4>; + num-lanes = <2>; + max-functions = /bits/ 8 <2>; + status = "disabled"; + }; + + pciec1_ep: pcie-ep@e65d8000 { + compatible = "renesas,r8a779f0-pcie-ep", + "renesas,rcar-gen4-pcie-ep"; + reg = <0 0xe65d8000 0 0x2000>, <0 0xe65da000 0 0x1000>, + <0 0xe65db000 0 0x2000>, <0 0xe65dd000 0 0x1200>, + <0 0xe65de200 0 0x0e00>, <0 0xe65df000 0 0x0400>, + <0 0xee900000 0 0x400000>; + reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "addr_space"; + interrupts = , + , + ; + interrupt-names = "dma", "sft_ce", "app"; + clocks = <&cpg CPG_MOD 625>, <&pcie1_clkref>; + clock-names = "core", "ref"; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 625>; + reset-names = "pwr"; + max-link-speed = <4>; + num-lanes = <2>; + max-functions = /bits/ 8 <2>; + status = "disabled"; + }; + ufs: ufs@e6860000 { compatible = "renesas,r8a779f0-ufs"; reg = <0 0xe6860000 0 0x100>; From c588e1c9846b32182fd5a0ceb637b983810e7100 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Tue, 5 Sep 2023 10:24:04 +0900 Subject: [PATCH 06/16] arm64: dts: renesas: r8a779f0: spider: Enable PCIe Host ch0 Enable PCIe Host controller channel 0 on R-Car S4-8 Spider board. Since this board has an Oculink connector, CLKREQ# pin of PFC for PCIe should not be used. So, using a GPIO is used to output the clock instead. Otherwise the controller cannot detect a PCIe device. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20230905012404.2915246-3-yoshihiro.shimoda.uh@renesas.com Signed-off-by: Geert Uytterhoeven --- .../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi index 5cbde8e8fcd5..477f3114d2fd 100644 --- a/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi @@ -53,6 +53,12 @@ memory@480000000 { reg = <0x4 0x80000000 0x0 0x80000000>; }; + rc21012_pci: clk-rc21012-pci { + compatible = "fixed-clock"; + clock-frequency = <100000000>; + #clock-cells = <0>; + }; + rc21012_ufs: clk-rc21012-ufs { compatible = "fixed-clock"; clock-frequency = <38400000>; @@ -106,6 +112,12 @@ gpio_exp_20: gpio@20 { reg = <0x20>; gpio-controller; #gpio-cells = <2>; + + rc21012-gpio2-hog { + gpio-hog; + gpios = <5 GPIO_ACTIVE_LOW>; + output-high; + }; }; }; @@ -145,6 +157,18 @@ &mmc0 { status = "okay"; }; +&pcie0_clkref { + compatible = "gpio-gate-clock"; + clocks = <&rc21012_pci>; + enable-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; + /delete-property/ clock-frequency; +}; + +&pciec0 { + reset-gpio = <&gpio_exp_20 0 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + &pfc { pinctrl-0 = <&scif_clk_pins>; pinctrl-names = "default"; From 7801764bb8ff68d9ca3dc6967d4642e205a22a0f Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:25 +0200 Subject: [PATCH 07/16] ARM: dts: renesas: Remove unused LBSC nodes from board DTS Several board DTS files contain minimal device nodes that represent on-SoC Local Bus State Controllers (LBSC), although they belong in the SoC-specific DTS files instead. As these device nodes are incomplete and unused, and hamper adding proper nodes later, it is better to just remove them. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/76ece7602045670cbb8dff684c3366ba6eb89add.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r7s72100-genmai.dts | 5 ----- arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts | 5 ----- arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts | 5 ----- arch/arm/boot/dts/renesas/r7s9210-rza2mevb.dts | 5 ----- arch/arm/boot/dts/renesas/r8a7790-lager.dts | 5 ----- arch/arm/boot/dts/renesas/r8a7791-koelsch.dts | 5 ----- arch/arm/boot/dts/renesas/r8a7794-alt.dts | 5 ----- 7 files changed, 35 deletions(-) diff --git a/arch/arm/boot/dts/renesas/r7s72100-genmai.dts b/arch/arm/boot/dts/renesas/r7s72100-genmai.dts index 1e8447176b10..ee52c6d5349d 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-genmai.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-genmai.dts @@ -29,11 +29,6 @@ memory@8000000 { reg = <0x08000000 0x08000000>; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - leds { status = "okay"; compatible = "gpio-leds"; diff --git a/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts b/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts index dc05eaf391f8..9d29861f23f1 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-gr-peach.dts @@ -29,11 +29,6 @@ memory@20000000 { reg = <0x20000000 0x00a00000>; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - flash@18000000 { compatible = "mtd-rom"; reg = <0x18000000 0x00800000>; diff --git a/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts b/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts index 1c5acf694407..14249be7435a 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts @@ -60,11 +60,6 @@ key-3 { }; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - leds { compatible = "gpio-leds"; diff --git a/arch/arm/boot/dts/renesas/r7s9210-rza2mevb.dts b/arch/arm/boot/dts/renesas/r7s9210-rza2mevb.dts index 69a5a44b8a2f..cd2324b8e8ff 100644 --- a/arch/arm/boot/dts/renesas/r7s9210-rza2mevb.dts +++ b/arch/arm/boot/dts/renesas/r7s9210-rza2mevb.dts @@ -63,11 +63,6 @@ key-3 { }; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - leds { compatible = "gpio-leds"; diff --git a/arch/arm/boot/dts/renesas/r8a7790-lager.dts b/arch/arm/boot/dts/renesas/r8a7790-lager.dts index 5ad5349a50dc..4d666ad8b114 100644 --- a/arch/arm/boot/dts/renesas/r8a7790-lager.dts +++ b/arch/arm/boot/dts/renesas/r8a7790-lager.dts @@ -73,11 +73,6 @@ memory@140000000 { reg = <1 0x40000000 0 0xc0000000>; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - keyboard { compatible = "gpio-keys"; diff --git a/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts b/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts index 26a40782cc89..545515b41ea3 100644 --- a/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts @@ -73,11 +73,6 @@ memory@200000000 { reg = <2 0x00000000 0 0x40000000>; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - keyboard { compatible = "gpio-keys"; diff --git a/arch/arm/boot/dts/renesas/r8a7794-alt.dts b/arch/arm/boot/dts/renesas/r8a7794-alt.dts index 4d93319674c6..08df031bc27c 100644 --- a/arch/arm/boot/dts/renesas/r8a7794-alt.dts +++ b/arch/arm/boot/dts/renesas/r8a7794-alt.dts @@ -90,11 +90,6 @@ vccq_sdhi1: regulator-vccq-sdhi1 { states = <3300000 1>, <1800000 0>; }; - lbsc { - #address-cells = <1>; - #size-cells = <1>; - }; - keyboard { compatible = "gpio-keys"; From 175f1971164a6f8f351907ea9fadb38d8406ffc8 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:26 +0200 Subject: [PATCH 08/16] ARM: dts: renesas: r7s72100: Add BSC node Add a minimal device node for the Bus State Controller (BSC) on the RZ/A1H SoC, to be extended by board DTS files for devices residing in the BSC external address space. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/ccab4fa198225edcd3750f62532a1ee3c6d2a109.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r7s72100.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r7s72100.dtsi b/arch/arm/boot/dts/renesas/r7s72100.dtsi index b07b71307f24..e6d8da6faffb 100644 --- a/arch/arm/boot/dts/renesas/r7s72100.dtsi +++ b/arch/arm/boot/dts/renesas/r7s72100.dtsi @@ -36,6 +36,13 @@ b_clk: b { clock-div = <3>; }; + bsc: bsc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0x18000000>; + }; + cpus { #address-cells = <1>; #size-cells = <0>; From f7287f78d5b3650092507e38429219a5d2cb8489 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:27 +0200 Subject: [PATCH 09/16] ARM: dts: renesas: r8a7779: Add LBSC node Add a minimal device node for the Local Bus State Controller (LBSC) on the R-Car H1 SoC, to be extended by board DTS files for devices residing in the LBSC external address space. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/2d0a6054306b4975355e65fe012f860ec00fcf55.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7779.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r8a7779.dtsi b/arch/arm/boot/dts/renesas/r8a7779.dtsi index 97b767d81d92..7743af5e2a6f 100644 --- a/arch/arm/boot/dts/renesas/r8a7779.dtsi +++ b/arch/arm/boot/dts/renesas/r8a7779.dtsi @@ -699,6 +699,13 @@ R8A7779_CLK_MMC1 R8A7779_CLK_MMC0 }; }; + lbsc: lbsc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0x1c000000>; + }; + prr: chipid@ff000044 { compatible = "renesas,prr"; reg = <0xff000044 4>; From 990da779a43aa678045bdb23f937e219e3ebc480 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:28 +0200 Subject: [PATCH 10/16] ARM: dts: renesas: r8a7792: Add LBSC node Add a minimal device node for the Local Bus State Controller (LBSC) on the R-Car V2H SoC, to be extended by board DTS files for devices residing in the LBSC external address space. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/182fce2257679f6a8963ecb77aae68af617556d1.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7792.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r8a7792.dtsi b/arch/arm/boot/dts/renesas/r8a7792.dtsi index a6d9367f8fa0..ecfab3ff59e8 100644 --- a/arch/arm/boot/dts/renesas/r8a7792.dtsi +++ b/arch/arm/boot/dts/renesas/r8a7792.dtsi @@ -84,6 +84,13 @@ extal_clk: extal { clock-frequency = <0>; }; + lbsc: lbsc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x1c000000>; + }; + pmu { compatible = "arm,cortex-a15-pmu"; interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, From dcd96d036db2563314f86f47a27b7dea8d508cfd Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:29 +0200 Subject: [PATCH 11/16] ARM: dts: renesas: marzen: Move Ethernet node to LBSC The SMSC LAN89218AQ Ethernet controller on the Marzen development board resides in the external address space of the Local Bus State Controller (LBSC). Move the Ethernet device node to reflect this. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/74a8ee61ed89c9ca0489156a4f135ecb825e56b9.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7779-marzen.dts | 32 +++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/arch/arm/boot/dts/renesas/r8a7779-marzen.dts b/arch/arm/boot/dts/renesas/r8a7779-marzen.dts index fd40890bd77b..08ea149b1ee6 100644 --- a/arch/arm/boot/dts/renesas/r8a7779-marzen.dts +++ b/arch/arm/boot/dts/renesas/r8a7779-marzen.dts @@ -52,21 +52,6 @@ vccq_sdhi0: regulator-vccq-sdhi0 { states = <3300000 1>, <1800000 0>; }; - ethernet@18000000 { - compatible = "smsc,lan89218", "smsc,lan9115"; - reg = <0x18000000 0x100>; - pinctrl-0 = <ðernet_pins>; - pinctrl-names = "default"; - - phy-mode = "mii"; - interrupt-parent = <&irqpin0>; - interrupts = <1 IRQ_TYPE_EDGE_FALLING>; - smsc,irq-push-pull; - reg-io-width = <4>; - vddvario-supply = <&fixedregulator3v3>; - vdd33a-supply = <&fixedregulator3v3>; - }; - keyboard-irq { compatible = "gpio-keys"; @@ -229,6 +214,23 @@ &extal_clk { clock-frequency = <31250000>; }; +&lbsc { + ethernet@18000000 { + compatible = "smsc,lan89218", "smsc,lan9115"; + reg = <0x18000000 0x100>; + pinctrl-0 = <ðernet_pins>; + pinctrl-names = "default"; + + phy-mode = "mii"; + interrupt-parent = <&irqpin0>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + smsc,irq-push-pull; + reg-io-width = <4>; + vddvario-supply = <&fixedregulator3v3>; + vdd33a-supply = <&fixedregulator3v3>; + }; +}; + &tmu0 { status = "okay"; }; From d6c2de6b151069ebc3d24c226e482b10981ead92 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:30 +0200 Subject: [PATCH 12/16] ARM: dts: renesas: blanche: Move Ethernet node to LBSC The SMSC LAN89218AQ Ethernet controller on the Blanche development board resides in the external address space of the Local Bus State Controller (LBSC). Move the Ethernet device node to reflect this. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/457239047bc8b5deabf15d816043a89ab00db5ef.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7792-blanche.dts | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts index 6a83923aa461..e793134f32a3 100644 --- a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts +++ b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts @@ -39,21 +39,6 @@ d3_3v: regulator-3v3 { regulator-always-on; }; - ethernet@18000000 { - compatible = "smsc,lan89218", "smsc,lan9115"; - reg = <0 0x18000000 0 0x100>; - phy-mode = "mii"; - interrupt-parent = <&irqc>; - interrupts = <0 IRQ_TYPE_EDGE_FALLING>; - smsc,irq-push-pull; - reg-io-width = <4>; - vddvario-supply = <&d3_3v>; - vdd33a-supply = <&d3_3v>; - - pinctrl-0 = <&lan89218_pins>; - pinctrl-names = "default"; - }; - vga-encoder { compatible = "adi,adv7123"; @@ -196,6 +181,23 @@ &can_clk { clock-frequency = <48000000>; }; +&lbsc { + ethernet@18000000 { + compatible = "smsc,lan89218", "smsc,lan9115"; + reg = <0x18000000 0x100>; + phy-mode = "mii"; + interrupt-parent = <&irqc>; + interrupts = <0 IRQ_TYPE_EDGE_FALLING>; + smsc,irq-push-pull; + reg-io-width = <4>; + vddvario-supply = <&d3_3v>; + vdd33a-supply = <&d3_3v>; + + pinctrl-0 = <&lan89218_pins>; + pinctrl-names = "default"; + }; +}; + &pfc { scif0_pins: scif0 { groups = "scif0_data"; From 86b37eb01684db8f425108dd82c0781bf9812390 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:31 +0200 Subject: [PATCH 13/16] ARM: dts: renesas: wheat: Move Ethernet node to LBSC The SMSC LAN89218AQ Ethernet controller on the Wheat development board resides in the external address space of the Local Bus State Controller (LBSC). Move the Ethernet device node to reflect this. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/a291c2750144df29e69824d5b9d76cbc11f613c1.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r8a7792-wheat.dts | 34 +++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/arch/arm/boot/dts/renesas/r8a7792-wheat.dts b/arch/arm/boot/dts/renesas/r8a7792-wheat.dts index 434e4655be9d..f87e78fe3f6e 100644 --- a/arch/arm/boot/dts/renesas/r8a7792-wheat.dts +++ b/arch/arm/boot/dts/renesas/r8a7792-wheat.dts @@ -38,22 +38,6 @@ d3_3v: regulator-3v3 { regulator-always-on; }; - ethernet@18000000 { - compatible = "smsc,lan89218", "smsc,lan9115"; - reg = <0 0x18000000 0 0x100>; - phy-mode = "mii"; - interrupt-parent = <&irqc>; - interrupts = <0 IRQ_TYPE_EDGE_FALLING>; - smsc,irq-push-pull; - smsc,save-mac-address; - reg-io-width = <4>; - vddvario-supply = <&d3_3v>; - vdd33a-supply = <&d3_3v>; - - pinctrl-0 = <&lan89218_pins>; - pinctrl-names = "default"; - }; - keyboard { compatible = "gpio-keys"; @@ -117,6 +101,24 @@ &extal_clk { clock-frequency = <20000000>; }; +&lbsc { + ethernet@18000000 { + compatible = "smsc,lan89218", "smsc,lan9115"; + reg = <0x18000000 0x100>; + phy-mode = "mii"; + interrupt-parent = <&irqc>; + interrupts = <0 IRQ_TYPE_EDGE_FALLING>; + smsc,irq-push-pull; + smsc,save-mac-address; + reg-io-width = <4>; + vddvario-supply = <&d3_3v>; + vdd33a-supply = <&d3_3v>; + + pinctrl-0 = <&lan89218_pins>; + pinctrl-names = "default"; + }; +}; + &pfc { scif0_pins: scif0 { groups = "scif0_data"; From 30e0a8cf886cb459dc8a895ba9a4fb5132b41499 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:32 +0200 Subject: [PATCH 14/16] ARM: dts: renesas: genmai: Add FLASH nodes Add device nodes for the dual Spansion S25FL512S QSPI NOR FLASH and the two Spansion S29GL512S CFI NOR FLASHes on the Genmai development board. The former is mapped directly through the SPI Multi I/O Bus Controller. The latter reside in the address space of the Bus State Controller (BSC). Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/53c89c70c6b010702fd9ab5247e19986857671ba.1693481518.git.geert+renesas@glider.be --- arch/arm/boot/dts/renesas/r7s72100-genmai.dts | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r7s72100-genmai.dts b/arch/arm/boot/dts/renesas/r7s72100-genmai.dts index ee52c6d5349d..29ba098f5dd5 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-genmai.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-genmai.dts @@ -29,6 +29,35 @@ memory@8000000 { reg = <0x08000000 0x08000000>; }; + flash@18000000 { + compatible = "mtd-rom"; + reg = <0x18000000 0x08000000>; + bank-width = <4>; + device-width = <1>; + + clocks = <&mstp9_clks R7S72100_CLK_SPIBSC0>; + power-domains = <&cpg_clocks>; + + #address-cells = <1>; + #size-cells = <1>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "user"; + reg = <0x00000000 0x04000000>; + }; + + partition@4000000 { + label = "user1"; + reg = <0x04000000 0x40000000>; + }; + }; + }; + leds { status = "okay"; compatible = "gpio-leds"; @@ -82,6 +111,62 @@ &extal_clk { clock-frequency = <13330000>; }; +&bsc { + flash@0 { + compatible = "cfi-flash"; + reg = <0x00000000 0x04000000>; + bank-width = <2>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "uboot"; + reg = <0x00000000 0x00040000>; + }; + + partition@40000 { + label = "uboot-env"; + reg = <0x00040000 0x00020000>; + }; + + partition@60000 { + label = "flash"; + reg = <0x00060000 0x03fa0000>; + }; + }; + }; + + flash@4000000 { + compatible = "cfi-flash"; + reg = <0x04000000 0x04000000>; + bank-width = <2>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "uboot1"; + reg = <0x00000000 0x00040000>; + }; + + partition@40000 { + label = "uboot-env1"; + reg = <0x00040000 0x00020000>; + }; + + partition@60000 { + label = "flash1"; + reg = <0x00060000 0x03fa0000>; + }; + }; + }; +}; + &usb_x1_clk { clock-frequency = <48000000>; }; From 98537eb77d3ef185a4b1b4004da75301038cf76b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2023 13:52:33 +0200 Subject: [PATCH 15/16] ARM: dts: renesas: rskrza1: Add FLASH nodes Add device nodes for the dual Spansion S25FL512S QSPI NOR FLASH and the Spansion S29GL512S CFI NOR FLASH on the RSK+RZA1 development board. The former is mapped directly through the SPI Multi I/O Bus Controller. The latter resides in the external address space of the Bus State Controller (BSC). Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/17a221699da14639e72264ffa39d47592d470f9a.1693481518.git.geert+renesas@glider.be --- .../arm/boot/dts/renesas/r7s72100-rskrza1.dts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts b/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts index 14249be7435a..b547216d4801 100644 --- a/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts +++ b/arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts @@ -29,6 +29,48 @@ memory@8000000 { reg = <0x08000000 0x02000000>; }; + flash@18000000 { + compatible = "mtd-rom"; + reg = <0x18000000 0x08000000>; + clocks = <&mstp9_clks R7S72100_CLK_SPIBSC0>; + power-domains = <&cpg_clocks>; + bank-width = <4>; + device-width = <1>; + #address-cells = <1>; + #size-cells = <1>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "uboot"; + reg = <0x00000000 0x00080000>; + }; + + partition@80000 { + label = "uboot-env"; + reg = <0x00080000 0x00040000>; + }; + + partition@c0000 { + label = "dt"; + reg = <0x000c0000 0x00040000>; + }; + + partition@100000 { + label = "kernel"; + reg = <0x00100000 0x00280000>; + }; + + partition@400000 { + label = "rootfs"; + reg = <0x00400000 0x01c00000>; + }; + }; + }; + keyboard { compatible = "gpio-keys"; @@ -113,6 +155,30 @@ eeprom@50 { }; }; +&bsc { + flash@0 { + compatible = "cfi-flash"; + reg = <0x00000000 0x4000000>; + bank-width = <2>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "apps"; + reg = <0x00000000 0x01000000>; + }; + + partition@1000000 { + label = "data"; + reg = <0x01000000 0x03000000>; + }; + }; + }; +}; + &usb_x1_clk { clock-frequency = <48000000>; }; From d70be079c3cf34bd91e1c8f7b4bc760356c9150c Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Wed, 20 Sep 2023 23:53:12 +0000 Subject: [PATCH 16/16] arm64: dts: renesas: ulcb/kf: Use multi Component sound +-- ULCB -------------------+ |+--------+ +--------+| || SSI0| <---> |ak4613 || || SSI1| <---> | || || | +--------+| || | +--------+| || SSI2| <---> |HDMI || || | +--------+| || SSI3| <--+ | || SSI4| <-+| | |+--------+ || | +-------------||------------+ +-- Kingfisher -------------+ | || +--------+| | |+->|pcm3168a|| | +-->| || | +--------+| +---------------------------+ On UCLB/KF, we intuitively think we want to handle these as "2 Sound Cards": card0,0: 1st sound of ULCB (SSI0 - ak4613) card0,1: 2nd sound of ULCB (SSI2 - HDMI) card1,0: 1st sound of KF (SSI3 - pcm3168a) ^ ^ However, because of ASoC Component vs. Card framework limitations, we needed to handle this as "1 big Sound Card": card0,0: 1st sound of ULCB/KF (SSI0 - ak4613) card0,1: 2nd sound of ULCB/KF (SSI2 - HDMI) card0,2: 3rd sound of ULCB/KF (SSI3 - pcm3168a) ^ ^ Now ASoC supports multi Component, which allows us to handle "2 Sound Cards" such as "ULCB Sound Card" and "Kingfisher Sound Card", all ULCB/KF Audio dtsi can be updated. Note that this changes the Sound Card specification method from userland, especially for Kingfisher Sound. Signed-off-by: Kuninori Morimoto Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/87fs382yhk.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Geert Uytterhoeven --- .../ulcb-audio-graph-card-mix+split.dtsi | 16 +- .../dts/renesas/ulcb-audio-graph-card.dtsi | 17 +- .../ulcb-audio-graph-card2-mix+split.dtsi | 13 +- .../dts/renesas/ulcb-audio-graph-card2.dtsi | 4 +- .../ulcb-kf-audio-graph-card-mix+split.dtsi | 57 +++---- .../dts/renesas/ulcb-kf-audio-graph-card.dtsi | 27 ++-- .../ulcb-kf-audio-graph-card2-mix+split.dtsi | 108 +++++++------ .../renesas/ulcb-kf-audio-graph-card2.dtsi | 14 +- .../ulcb-kf-simple-audio-card-mix+split.dtsi | 152 +++++++++--------- .../renesas/ulcb-kf-simple-audio-card.dtsi | 77 ++++----- .../ulcb-simple-audio-card-mix+split.dtsi | 8 +- .../dts/renesas/ulcb-simple-audio-card.dtsi | 8 +- 12 files changed, 270 insertions(+), 231 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card-mix+split.dtsi index 672b0a224ef9..be6d7a035739 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card-mix+split.dtsi @@ -21,14 +21,14 @@ / { sound_card: sound { compatible = "audio-graph-scu-card"; - label = "rcar-sound"; + label = "snd-ulcb-mix"; routing = "ak4613 Playback", "DAI0 Playback", "ak4613 Playback", "DAI1 Playback", "DAI0 Capture", "ak4613 Capture"; - dais = <&rsnd_port0 /* (A) CPU0 */ - &rsnd_port1 /* (B) CPU1 */ + dais = <&snd_ulcb1 /* (A) CPU0 */ + &snd_ulcb2 /* (B) CPU1 */ >; }; }; @@ -58,14 +58,18 @@ ak4613_ep2: endpoint@1 { }; &rcar_sound { - ports { + #address-cells = <1>; + #size-cells = <0>; + + ports@0 { #address-cells = <1>; #size-cells = <0>; + reg = <0>; /* * (A) CPU0 */ - rsnd_port0: port@0 { + snd_ulcb1: port@0 { reg = <0>; rsnd_for_ak4613_1: endpoint { remote-endpoint = <&ak4613_ep1>; @@ -78,7 +82,7 @@ rsnd_for_ak4613_1: endpoint { /* * (B) CPU1 */ - rsnd_port1: port@1 { + snd_ulcb2: port@1 { reg = <1>; rsnd_for_ak4613_2: endpoint { remote-endpoint = <&ak4613_ep2>; diff --git a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi index 3be54df645e6..3f1df6ee17ea 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi @@ -18,10 +18,10 @@ / { sound_card: sound { compatible = "audio-graph-card"; - label = "rcar-sound"; + label = "snd-ulcb"; - dais = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */ - &rsnd_port1 /* (B) CPU1 -> HDMI */ + dais = <&snd_ulcb1 /* (A) CPU0 <-> ak4613 */ + &snd_ulcb2 /* (B) CPU1 -> HDMI */ >; }; }; @@ -53,10 +53,15 @@ dw_hdmi0_snd_in: endpoint { }; &rcar_sound { - ports { + #address-cells = <1>; + #size-cells = <0>; + + ports@0 { #address-cells = <1>; #size-cells = <0>; - rsnd_port0: port@0 { + reg = <0>; + + snd_ulcb1: port@0 { /* * (A) CPU0 <-> ak4613 */ @@ -69,7 +74,7 @@ rsnd_for_ak4613: endpoint { capture = <&ssi1>, <&src1>, <&dvc1>; }; }; - rsnd_port1: port@1 { + snd_ulcb2: port@1 { /* * (B) CPU1 -> HDMI */ diff --git a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2-mix+split.dtsi index 75b024e3fef1..8966e6a7d28b 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2-mix+split.dtsi @@ -20,13 +20,12 @@ / { sound_card: sound { compatible = "audio-graph-card2"; - label = "rcar-sound"; + label = "snd-ulcb-mix"; routing = "ak4613 Playback", "DAI0 Playback", "ak4613 Playback", "DAI1 Playback", "DAI0 Capture", "ak4613 Capture"; - /delete-property/ dais; links = <&fe_a /* (A) CPU0 */ &fe_b /* (B) CPU1 */ &be_x /* (X) ak4613 */ @@ -50,14 +49,12 @@ ports@0 { }; ports@1 { - #address-cells = <1>; - #size-cells = <0>; reg = <1>; /* * BE * (X) ak4613 */ - be_x: port@0 { reg = <0>; be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; }; + be_x: port { be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; }; }; }; }; @@ -78,9 +75,13 @@ ak4613_x_ep: endpoint { }; &rcar_sound { - ports { + #address-cells = <1>; + #size-cells = <0>; + + ports@0 { #address-cells = <1>; #size-cells = <0>; + reg = <0>; /* * (A) CPU0 diff --git a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2.dtsi b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2.dtsi index 5ebec1235843..19fa6e102995 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2.dtsi @@ -20,7 +20,7 @@ &sound_card { compatible = "audio-graph-card2"; /delete-property/ dais; - links = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */ - &rsnd_port1 /* (B) CPU1 -> HDMI */ + links = <&snd_ulcb1 /* (A) CPU0 <-> ak4613 */ + &snd_ulcb2 /* (B) CPU1 -> HDMI */ >; }; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card-mix+split.dtsi index 9b01354940fd..8ae6af1af094 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card-mix+split.dtsi @@ -19,32 +19,31 @@ * * (A) aplay -D plughw:0,0 xxx.wav (MIX-0) * (B) aplay -D plughw:0,1 xxx.wav (MIX-1) - * (C) aplay -D plughw:0,2 xxx.wav (TDM-0) - * (D) aplay -D plughw:0,3 xxx.wav (TDM-1) - * (E) aplay -D plughw:0,4 xxx.wav (TDM-2) - * (F) aplay -D plughw:0,5 xxx.wav (TDM-3) + * (C) aplay -D plughw:1,0 xxx.wav (TDM-0) + * (D) aplay -D plughw:1,1 xxx.wav (TDM-1) + * (E) aplay -D plughw:1,2 xxx.wav (TDM-2) + * (F) aplay -D plughw:1,3 xxx.wav (TDM-3) * * (A) arecord -D plughw:0,0 xxx.wav - * (G) arecord -D plughw:0,6 xxx.wav + * (G) arecord -D plughw:1,4 xxx.wav */ +/ { + sound_card_kf: expand-sound { + compatible = "audio-graph-scu-card"; + label = "snd-kf-split"; -&sound_card { - routing = "ak4613 Playback", "DAI0 Playback", - "ak4613 Playback", "DAI1 Playback", - "DAI0 Capture", "ak4613 Capture", - "pcm3168a Playback", "DAI2 Playback", - "pcm3168a Playback", "DAI3 Playback", - "pcm3168a Playback", "DAI4 Playback", - "pcm3168a Playback", "DAI5 Playback"; + routing = "pcm3168a Playback", "DAI2 Playback", + "pcm3168a Playback", "DAI3 Playback", + "pcm3168a Playback", "DAI4 Playback", + "pcm3168a Playback", "DAI5 Playback"; - dais = <&rsnd_port0 /* (A) CPU0 */ - &rsnd_port1 /* (B) CPU1 */ - &rsnd_port2 /* (C) CPU2 */ - &rsnd_port3 /* (D) CPU3 */ - &rsnd_port4 /* (E) CPU4 */ - &rsnd_port5 /* (F) CPU5 */ - &rsnd_port6 /* (G) GPU6 */ - >; + dais = <&snd_kf1 /* (C) CPU2 */ + &snd_kf2 /* (D) CPU3 */ + &snd_kf3 /* (E) CPU4 */ + &snd_kf4 /* (F) CPU5 */ + &snd_kf5 /* (G) GPU6 */ + >; + }; }; &pcm3168a { @@ -103,13 +102,15 @@ pcm3168a_endpoint_c: endpoint { }; &rcar_sound { - ports { - /* rsnd_port0-1 are defined in ulcb.dtsi */ + ports@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; /* * (C) CPU2 */ - rsnd_port2: port@2 { + snd_kf1: port@2 { reg = <2>; rsnd_for_pcm3168a_play1: endpoint { remote-endpoint = <&pcm3168a_endpoint_p1>; @@ -121,7 +122,7 @@ rsnd_for_pcm3168a_play1: endpoint { /* * (D) CPU3 */ - rsnd_port3: port@3 { + snd_kf2: port@3 { reg = <3>; rsnd_for_pcm3168a_play2: endpoint { remote-endpoint = <&pcm3168a_endpoint_p2>; @@ -133,7 +134,7 @@ rsnd_for_pcm3168a_play2: endpoint { /* * (E) CPU4 */ - rsnd_port4: port@4 { + snd_kf3: port@4 { reg = <4>; rsnd_for_pcm3168a_play3: endpoint { remote-endpoint = <&pcm3168a_endpoint_p3>; @@ -145,7 +146,7 @@ rsnd_for_pcm3168a_play3: endpoint { /* * (F) CPU5 */ - rsnd_port5: port@5 { + snd_kf4: port@5 { reg = <5>; rsnd_for_pcm3168a_play4: endpoint { remote-endpoint = <&pcm3168a_endpoint_p4>; @@ -157,7 +158,7 @@ rsnd_for_pcm3168a_play4: endpoint { /* * (G) CPU6 */ - rsnd_port6: port@6 { + snd_kf5: port@6 { reg = <6>; rsnd_for_pcm3168a_capture: endpoint { remote-endpoint = <&pcm3168a_endpoint_c>; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi index 1db99b7608f0..5fbd4ca83e20 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi @@ -13,18 +13,20 @@ * * (A) aplay -D plughw:0,0 xxx.wav * (B) aplay -D plughw:0,1 xxx.wav - * (C) aplay -D plughw:0,2 xxx.wav + * (C) aplay -D plughw:1,0 xxx.wav * * (A) arecord -D plughw:0,0 xxx.wav - * (D) arecord -D plughw:0,3 xxx.wav + * (D) arecord -D plughw:1,1 xxx.wav */ +/ { + sound_card_kf: expand-sound { + compatible = "audio-graph-card"; + label = "snd-kf"; -&sound_card { - dais = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */ - &rsnd_port1 /* (B) CPU1 -> HDMI */ - &rsnd_port2 /* (C) CPU2 -> PCM3168A-p */ - &rsnd_port3 /* (D) CPU3 <- PCM3168A-c */ + dais = <&snd_kf1 /* (C) CPU2 -> PCM3168A-p */ + &snd_kf2 /* (D) CPU3 <- PCM3168A-c */ >; + }; }; &pcm3168a { @@ -56,12 +58,15 @@ pcm3168a_endpoint_c: endpoint { }; &rcar_sound { - ports { - /* rsnd_port0/1 are defined in ulcb.dtsi */ + ports@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + /* * (C) CPU2 -> PCM3168A-p */ - rsnd_port2: port@2 { + snd_kf1: port@2 { reg = <2>; rsnd_for_pcm3168a_play: endpoint { remote-endpoint = <&pcm3168a_endpoint_p>; @@ -74,7 +79,7 @@ rsnd_for_pcm3168a_play: endpoint { /* * (D) CPU3 <- PCM3168A-c */ - rsnd_port3: port@3 { + snd_kf2: port@3 { reg = <3>; rsnd_for_pcm3168a_capture: endpoint { remote-endpoint = <&pcm3168a_endpoint_c>; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2-mix+split.dtsi index da644128a9ae..4cf632bc4621 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2-mix+split.dtsi @@ -19,61 +19,65 @@ * * (A) aplay -D plughw:0,0 xxx.wav (MIX-0) * (B) aplay -D plughw:0,1 xxx.wav (MIX-1) - * (C) aplay -D plughw:0,2 xxx.wav (TDM-0) - * (D) aplay -D plughw:0,3 xxx.wav (TDM-1) - * (E) aplay -D plughw:0,4 xxx.wav (TDM-2) - * (F) aplay -D plughw:0,5 xxx.wav (TDM-3) + * (C) aplay -D plughw:1,0 xxx.wav (TDM-0) + * (D) aplay -D plughw:1,1 xxx.wav (TDM-1) + * (E) aplay -D plughw:1,2 xxx.wav (TDM-2) + * (F) aplay -D plughw:1,3 xxx.wav (TDM-3) * * (A) arecord -D plughw:0,0 xxx.wav - * (G) arecord -D plughw:0,6 xxx.wav + * (G) arecord -D plughw:1,4 xxx.wav */ -&sound_card { - routing = "ak4613 Playback", "DAI0 Playback", - "ak4613 Playback", "DAI1 Playback", - "DAI0 Capture", "ak4613 Capture", - "pcm3168a Playback", "DAI2 Playback", - "pcm3168a Playback", "DAI3 Playback", - "pcm3168a Playback", "DAI4 Playback", - "pcm3168a Playback", "DAI5 Playback", - "DAI6 Capture", "pcm3168a Capture"; +/ { + sound_card_kf: expand-sound { + compatible = "audio-graph-card2"; + label = "snd-kf-split"; - /delete-property/ dais; - links = <&fe_a /* (A) CPU0 */ - &fe_b /* (B) CPU1 */ - &fe_c /* (C) CPU2 */ - &fe_d /* (D) CPU3 */ - &fe_e /* (E) CPU4 */ - &fe_f /* (F) CPU5 */ - &rsnd_g /* (G) CPU6 */ - &be_x /* (X) ak4613 */ - &be_y /* (Y) PCM3168A-p */ - >; + routing = "pcm3168a Playback", "DAI2 Playback", + "pcm3168a Playback", "DAI3 Playback", + "pcm3168a Playback", "DAI4 Playback", + "pcm3168a Playback", "DAI5 Playback", + "DAI6 Capture", "pcm3168a Capture"; - dpcm { - ports@0 { - /* - * FE - * - * (A)/(B) are defined on ulcb - * (C) CPU2 - * (D) CPU3 - * (E) CPU4 - * (F) CPU5 - */ - fe_c: port@2 { reg = <2>; fe_c_ep: endpoint { remote-endpoint = <&rsnd_c_ep>; }; }; - fe_d: port@3 { reg = <3>; fe_d_ep: endpoint { remote-endpoint = <&rsnd_d_ep>; }; }; - fe_e: port@4 { reg = <4>; fe_e_ep: endpoint { remote-endpoint = <&rsnd_e_ep>; }; }; - fe_f: port@5 { reg = <5>; fe_f_ep: endpoint { remote-endpoint = <&rsnd_f_ep>; }; }; - }; + links = <&fe_c /* (C) CPU2 */ + &fe_d /* (D) CPU3 */ + &fe_e /* (E) CPU4 */ + &fe_f /* (F) CPU5 */ + &rsnd_g /* (G) CPU6 */ + &be_y /* (Y) PCM3168A-p */ + >; - ports@1 { - /* - * BE - * - * (X) is defined on ulcb - * (Y) PCM3168A-p - */ - be_y: port@1 { reg = <1>; be_y_ep: endpoint { remote-endpoint = <&pcm3168a_y_ep>; }; }; + dpcm { + #address-cells = <1>; + #size-cells = <0>; + + ports@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + /* + * FE + * + * (C) CPU2 + * (D) CPU3 + * (E) CPU4 + * (F) CPU5 + */ + fe_c: port@2 { reg = <2>; fe_c_ep: endpoint { remote-endpoint = <&rsnd_c_ep>; }; }; + fe_d: port@3 { reg = <3>; fe_d_ep: endpoint { remote-endpoint = <&rsnd_d_ep>; }; }; + fe_e: port@4 { reg = <4>; fe_e_ep: endpoint { remote-endpoint = <&rsnd_e_ep>; }; }; + fe_f: port@5 { reg = <5>; fe_f_ep: endpoint { remote-endpoint = <&rsnd_f_ep>; }; }; + }; + + ports@1 { + reg = <1>; + /* + * BE + * + * (Y) PCM3168A-p + */ + be_y: port { be_y_ep: endpoint { remote-endpoint = <&pcm3168a_y_ep>; }; }; + }; }; }; }; @@ -111,8 +115,10 @@ pcm3168a_z_ep: endpoint { }; &rcar_sound { - ports { - /* (A)/(B) are defined in ulcb.dtsi */ + ports@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; /* * (C) CPU2 diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2.dtsi index c30e056538e4..4fc229418dd7 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2.dtsi @@ -13,18 +13,18 @@ * * (A) aplay -D plughw:0,0 xxx.wav * (B) aplay -D plughw:0,1 xxx.wav - * (C) aplay -D plughw:0,2 xxx.wav + * (C) aplay -D plughw:1,0 xxx.wav * * (A) arecord -D plughw:0,0 xxx.wav - * (D) arecord -D plughw:0,3 xxx.wav + * (D) arecord -D plughw:1,1 xxx.wav */ #include "ulcb-kf-audio-graph-card.dtsi" -&sound_card { +&sound_card_kf { + compatible = "audio-graph-card2"; + /delete-property/ dais; - links = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */ - &rsnd_port1 /* (B) CPU1 -> HDMI */ - &rsnd_port2 /* (C) CPU2 -> PCM3168A-p */ - &rsnd_port3 /* (D) CPU3 <- PCM3168A-c */ + links = <&snd_kf1 /* (C) CPU2 -> PCM3168A-p */ + &snd_kf2 /* (D) CPU3 <- PCM3168A-c */ >; }; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card-mix+split.dtsi index bc221f994473..f01d91aaadf3 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card-mix+split.dtsi @@ -19,89 +19,92 @@ * * (A) aplay -D plughw:0,0 xxx.wav (MIX-0) * (B) aplay -D plughw:0,1 xxx.wav (MIX-1) - * (C) aplay -D plughw:0,2 xxx.wav (TDM-0) - * (D) aplay -D plughw:0,3 xxx.wav (TDM-1) - * (E) aplay -D plughw:0,4 xxx.wav (TDM-2) - * (F) aplay -D plughw:0,5 xxx.wav (TDM-3) + * (C) aplay -D plughw:1,0 xxx.wav (TDM-0) + * (D) aplay -D plughw:1,1 xxx.wav (TDM-1) + * (E) aplay -D plughw:1,2 xxx.wav (TDM-2) + * (F) aplay -D plughw:1,3 xxx.wav (TDM-3) * * (A) arecord -D plughw:0,0 xxx.wav - * (G) arecord -D plughw:0,6 xxx.wav + * (G) arecord -D plughw:1,4 xxx.wav */ -&sound_card { - - simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback", - "ak4613 Playback", "DAI1 Playback", - "DAI0 Capture", "ak4613 Capture", - "pcm3168a Playback", "DAI2 Playback", - "pcm3168a Playback", "DAI3 Playback", - "pcm3168a Playback", "DAI4 Playback", - "pcm3168a Playback", "DAI5 Playback"; - - /* dai-link@0 is defined in ulcb.dtsi */ - - simple-audio-card,dai-link@1 { +/ { + sound_card_kf: expand-sound { #address-cells = <1>; #size-cells = <0>; - reg = <1>; - convert-channels = <8>; /* to 8ch TDM */ - /* - * (C) CPU2 - */ - cpu@0 { + compatible = "simple-scu-audio-card"; + label = "snd-kf-split"; + + simple-audio-card,routing = "pcm3168a Playback", "DAI2 Playback", + "pcm3168a Playback", "DAI3 Playback", + "pcm3168a Playback", "DAI4 Playback", + "pcm3168a Playback", "DAI5 Playback"; + + simple-audio-card,dai-link@0 { + #address-cells = <1>; + #size-cells = <0>; reg = <0>; - bitclock-master; - frame-master; - sound-dai = <&rcar_sound 2>; + convert-channels = <8>; /* to 8ch TDM */ + + /* + * (C) CPU2 + */ + cpu@0 { + reg = <0>; + bitclock-master; + frame-master; + sound-dai = <&rcar_sound 2>; + }; + /* + * (D) CPU3 + */ + cpu@1 { + reg = <1>; + sound-dai = <&rcar_sound 3>; + }; + /* + * (E) CPU4 + */ + cpu@2 { + reg = <2>; + sound-dai = <&rcar_sound 4>; + }; + /* + * (F) CPU5 + */ + cpu@3 { + reg = <3>; + sound-dai = <&rcar_sound 5>; + }; + /* + * (Y) PCM3168A-p + */ + codec { + prefix = "pcm3168a"; + mclk-fs = <512>; + sound-dai = <&pcm3168a 0>; + }; }; - /* - * (D) CPU3 - */ - cpu@1 { + + simple-audio-card,dai-link@1 { reg = <1>; - sound-dai = <&rcar_sound 3>; - }; - /* - * (E) CPU4 - */ - cpu@2 { - reg = <2>; - sound-dai = <&rcar_sound 4>; - }; - /* - * (F) CPU5 - */ - cpu@3 { - reg = <3>; - sound-dai = <&rcar_sound 5>; - }; - /* - * (Y) PCM3168A-p - */ - codec { - prefix = "pcm3168a"; - mclk-fs = <512>; - sound-dai = <&pcm3168a 0>; - }; - }; - simple-audio-card,dai-link@2 { - reg = <2>; - /* - * (G) CPU6 - */ - cpu { - bitclock-master; - frame-master; - sound-dai = <&rcar_sound 6>; - }; - /* - * (Z) PCM3168A-c - */ - codec { - prefix = "pcm3168a"; - mclk-fs = <512>; - sound-dai = <&pcm3168a 1>; + /* + * (G) CPU6 + */ + cpu { + bitclock-master; + frame-master; + sound-dai = <&rcar_sound 6>; + }; + /* + * (Z) PCM3168A-c + */ + codec { + prefix = "pcm3168a"; + mclk-fs = <512>; + sound-dai = <&pcm3168a 1>; + }; }; }; }; @@ -115,7 +118,8 @@ &pcm3168a { }; &rcar_sound { - rcar_sound,dai { + rcar_sound,dai@1 { + reg = <1>; /* dai0-1 are defined in ulcb.dtsi */ diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi index 2010e8ac7fdc..28d29ecfb395 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi @@ -13,45 +13,51 @@ * * (A) aplay -D plughw:0,0 xxx.wav * (B) aplay -D plughw:0,1 xxx.wav - * (C) aplay -D plughw:0,2 xxx.wav + * (C) aplay -D plughw:1,0 xxx.wav * * (A) arecord -D plughw:0,0 xxx.wav - * (D) arecord -D plughw:0,3 xxx.wav + * (D) arecord -D plughw:1,1 xxx.wav */ -&sound_card { - /* dai-link@0/1 are defined in ulcb.dtsi */ +/ { + sound_card_kf: expand-sound { + compatible = "simple-audio-card"; + label = "snd-kf"; - /* - * (C) CPU2 -> PCM3168A-p - */ - simple-audio-card,dai-link@2 { - reg = <2>; - cpu { - bitclock-master; - frame-master; - dai-tdm-slot-num = <8>; - sound-dai = <&rcar_sound 2>; + #address-cells = <1>; + #size-cells = <0>; + + /* + * (C) CPU2 -> PCM3168A-p + */ + simple-audio-card,dai-link@0 { + reg = <0>; + cpu { + bitclock-master; + frame-master; + dai-tdm-slot-num = <8>; + sound-dai = <&rcar_sound 2>; + }; + codec { + mclk-fs = <512>; + sound-dai = <&pcm3168a 0>; + }; }; - codec { - mclk-fs = <512>; - sound-dai = <&pcm3168a 0>; - }; - }; - /* - * (D) CPU3 <- PCM3168A-c - */ - simple-audio-card,dai-link@3 { - reg = <3>; - cpu { - bitclock-master; - frame-master; - dai-tdm-slot-num = <6>; - sound-dai = <&rcar_sound 3>; - }; - codec { - mclk-fs = <512>; - sound-dai = <&pcm3168a 1>; + /* + * (D) CPU3 <- PCM3168A-c + */ + simple-audio-card,dai-link@1 { + reg = <1>; + cpu { + bitclock-master; + frame-master; + dai-tdm-slot-num = <6>; + sound-dai = <&rcar_sound 3>; + }; + codec { + mclk-fs = <512>; + sound-dai = <&pcm3168a 1>; + }; }; }; }; @@ -65,9 +71,8 @@ &pcm3168a { }; &rcar_sound { - - rcar_sound,dai { - /* dai0-1 are defined in ulcb.dtsi */ + rcar_sound,dai@1 { + reg = <1>; /* * (C) CPU2 -> PCM3168A-p diff --git a/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card-mix+split.dtsi b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card-mix+split.dtsi index 217d89019845..9b955510e38e 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card-mix+split.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card-mix+split.dtsi @@ -24,7 +24,7 @@ sound_card: sound { #size-cells = <0>; compatible = "simple-scu-audio-card"; - label = "rcar-sound"; + label = "snd-ulcb-mix"; simple-audio-card,prefix = "ak4613"; simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback", @@ -72,9 +72,13 @@ &ak4613 { }; &rcar_sound { + #address-cells = <1>; + #size-cells = <0>; #sound-dai-cells = <1>; - rcar_sound,dai { + rcar_sound,dai@0 { + reg = <0>; + /* * (A) CPU0 */ diff --git a/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi index 751cfd8c5257..ba0e188e7b21 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi @@ -18,7 +18,7 @@ / { sound_card: sound { compatible = "simple-audio-card"; - label = "rcar-sound"; + label = "snd-ulcb"; #address-cells = <1>; #size-cells = <0>; @@ -69,9 +69,13 @@ &hdmi0 { }; &rcar_sound { + #address-cells = <1>; + #size-cells = <0>; #sound-dai-cells = <1>; - rcar_sound,dai { + rcar_sound,dai@0 { + reg = <0>; + /* * (A) CPU0 <-> ak4613 */