new file mode 100644
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree for ULCB + Kingfisher + Simple Audio Card (MIX + TDM Split)
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/*
+ * Note:
+ * Because there is subdevice maximum, it will ignore HDMI output
+ *
+ * (A) CPU0 ------ ak4613 (MIX-0)
+ * (B) CPU1 --/ (MIX-1)
+ * (C) CPU2 ------ PCM3168A-p (TDM-0 : 0,1ch)
+ * (D) CPU3 ------ PCM3168A-p (TDM-1 : 2,3ch)
+ * (E) CPU4 ------ PCM3168A-p (TDM-2 : 4,5ch)
+ * (F) CPU5 ------ PCM3168A-p (TDM-3 : 6,7ch)
+ * (G) CPU6 ------ PCM3168A-c
+ *
+ * (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)
+ *
+ * (A) arecord -D plughw:0,0 xxx.wav
+ * (G) arecord -D plughw:0,6 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 */
+
+ /*
+ * (C) CPU2 <-> PCM3168A-p (TDM-0 : 0,1ch)
+ * (D) CPU3 <-> PCM3168A-p (TDM-1 : 2,3ch)
+ * (E) CPU4 <-> PCM3168A-p (TDM-2 : 4,5ch)
+ * (F) CPU5 <-> PCM3168A-p (TDM-3 : 6,7ch)
+ */
+ simple-audio-card,dai-link@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+ convert-channels = <8>; /* to 8ch TDM */
+
+ cpu@0 {
+ reg = <0>;
+ bitclock-master;
+ frame-master;
+ sound-dai = <&rcar_sound 2>;
+ };
+ cpu@1 {
+ reg = <1>;
+ sound-dai = <&rcar_sound 3>;
+ };
+ cpu@2 {
+ reg = <2>;
+ sound-dai = <&rcar_sound 4>;
+ };
+ cpu@3 {
+ reg = <3>;
+ sound-dai = <&rcar_sound 5>;
+ };
+ codec {
+ prefix = "pcm3168a";
+ mclk-fs = <512>;
+ sound-dai = <&pcm3168a 0>;
+ };
+ };
+ /*
+ * (G) CPU6 <-> PCM3168A-c
+ */
+ simple-audio-card,dai-link@2 {
+ reg = <2>;
+ cpu {
+ bitclock-master;
+ frame-master;
+ sound-dai = <&rcar_sound 6>;
+ };
+ codec {
+ prefix = "pcm3168a";
+ mclk-fs = <512>;
+ sound-dai = <&pcm3168a 1>;
+ };
+ };
+};
+
+&pcm3168a {
+ /*
+ * (C) CPU2 <-> PCM3168A-p (TDM-0 : 0,1ch)
+ * (D) CPU3 <-> PCM3168A-p (TDM-1 : 2,3ch)
+ * (E) CPU4 <-> PCM3168A-p (TDM-2 : 4,5ch)
+ * (F) CPU5 <-> PCM3168A-p (TDM-3 : 6,7ch)
+ * (G) CPU6 <-> PCM3168A-c
+ */
+ #sound-dai-cells = <1>;
+};
+
+&rcar_sound {
+
+ /* dai0-1 are defined in ulcb.dtsi */
+
+ rcar_sound,dai {
+ /*
+ * (C) CPU2 <-> PCM3168A-p (TDM-0 : 0,1ch)
+ * (D) CPU3 <-> PCM3168A-p (TDM-1 : 2,3ch)
+ * (E) CPU4 <-> PCM3168A-p (TDM-2 : 4,5ch)
+ * (F) CPU5 <-> PCM3168A-p (TDM-3 : 6,7ch)
+ */
+ dai2 {
+ playback = <&ssiu30 &ssi3>;
+ };
+ dai3 {
+ playback = <&ssiu31 &ssi3>;
+ };
+ dai4 {
+ playback = <&ssiu32 &ssi3>;
+ };
+ dai5 {
+ playback = <&ssiu33 &ssi3>;
+ };
+ /*
+ * (G) CPU6 <-> PCM3168A-c
+ */
+ dai6 {
+ capture = <&ssi4>;
+ }; };
+};
@@ -454,6 +454,7 @@ &xhci0 {
* see also ulcb.dtsi
*
* #include "ulcb-kf-simple-audio-card.dtsi"
+ * #include "ulcb-kf-simple-audio-card-mix+split.dtsi"
* #include "ulcb-kf-audio-graph-card.dtsi"
* #include "ulcb-kf-audio-graph-card-mix+split.dtsi"
* #include "ulcb-kf-audio-graph-card2-mix+split.dtsi"
new file mode 100644
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree for ULCB + Simple Audio Card (MIXer)
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/*
+ * Note:
+ * Because there is subdevice maximum, it will ignore HDMI output
+ *
+ * (A) CPU0 ------ ak4613 (MIX-0)
+ * (B) CPU1 --/ (MIX-1)
+ *
+ * (A) aplay -D plughw:0,0 xxx.wav
+ * (B) aplay -D plughw:0,1 xxx.wav
+ *
+ * (A) arecord -D plughw:0,0 xxx.wav
+ */
+
+/ {
+ sound_card: sound {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compatible = "simple-scu-audio-card";
+ label = "rcar-sound";
+
+ simple-audio-card,prefix = "ak4613";
+ simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback",
+ "ak4613 Playback", "DAI1 Playback",
+ "DAI0 Capture", "ak4613 Capture";
+
+ simple-audio-card,dai-link@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ convert-rate = <48000>;
+
+ /*
+ * (A) CPU0 <-> ak4613
+ */
+ cpu@0 {
+ reg = <0>;
+ bitclock-master;
+ frame-master;
+ sound-dai = <&rcar_sound 0>;
+ };
+ /*
+ * (B) CPU1 <-> ak4613
+ */
+ cpu@1 {
+ reg = <1>;
+ sound-dai = <&rcar_sound 1>;
+ };
+ codec {
+ prefix = "ak4613";
+ sound-dai = <&ak4613>;
+ };
+ };
+ };
+};
+
+&ak4613 {
+ /*
+ * (A) CPU0 <-> ak4613
+ */
+ #sound-dai-cells = <0>;
+};
+
+&rcar_sound {
+ #sound-dai-cells = <1>;
+
+ rcar_sound,dai {
+ /*
+ * (A) CPU0 <-> ak4613
+ */
+ dai0 {
+ playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
+ capture = <&ssi1 &src0 &dvc1>;
+ };
+ dai1 {
+ playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
+ };
+ };
+};
@@ -496,12 +496,14 @@ &usb2_phy1 {
status = "okay";
};
+
/*
* For sound-test.
*
* We can switch Audio Card for testing
*
* #include "ulcb-simple-audio-card.dtsi"
+ * #include "ulcb-simple-audio-card-mix+split.dtsi"
* #include "ulcb-audio-graph-card.dtsi"
* #include "ulcb-audio-graph-card-mix+split.dtsi"
* #include "ulcb-audio-graph-card2-mix+split.dtsi"