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 <kuninori.morimoto.gx@renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/87fs382yhk.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
parent
98537eb77d
commit
d70be079c3
@ -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 @@
|
||||
};
|
||||
|
||||
&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 @@
|
||||
/*
|
||||
* (B) CPU1
|
||||
*/
|
||||
rsnd_port1: port@1 {
|
||||
snd_ulcb2: port@1 {
|
||||
reg = <1>;
|
||||
rsnd_for_ak4613_2: endpoint {
|
||||
remote-endpoint = <&ak4613_ep2>;
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&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 @@
|
||||
capture = <&ssi1>, <&src1>, <&dvc1>;
|
||||
};
|
||||
};
|
||||
rsnd_port1: port@1 {
|
||||
snd_ulcb2: port@1 {
|
||||
/*
|
||||
* (B) CPU1 -> HDMI
|
||||
*/
|
||||
|
@ -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@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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ports@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
/*
|
||||
* (A) CPU0
|
||||
|
@ -20,7 +20,7 @@
|
||||
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 */
|
||||
>;
|
||||
};
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&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 @@
|
||||
/*
|
||||
* (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 @@
|
||||
/*
|
||||
* (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 @@
|
||||
/*
|
||||
* (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 @@
|
||||
/*
|
||||
* (G) CPU6
|
||||
*/
|
||||
rsnd_port6: port@6 {
|
||||
snd_kf5: port@6 {
|
||||
reg = <6>;
|
||||
rsnd_for_pcm3168a_capture: endpoint {
|
||||
remote-endpoint = <&pcm3168a_endpoint_c>;
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&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 @@
|
||||
/*
|
||||
* (D) CPU3 <- PCM3168A-c
|
||||
*/
|
||||
rsnd_port3: port@3 {
|
||||
snd_kf2: port@3 {
|
||||
reg = <3>;
|
||||
rsnd_for_pcm3168a_capture: endpoint {
|
||||
remote-endpoint = <&pcm3168a_endpoint_c>;
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
ports {
|
||||
/* (A)/(B) are defined in ulcb.dtsi */
|
||||
ports@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
/*
|
||||
* (C) CPU2
|
||||
|
@ -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 */
|
||||
>;
|
||||
};
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
rcar_sound,dai {
|
||||
rcar_sound,dai@1 {
|
||||
reg = <1>;
|
||||
|
||||
/* dai0-1 are defined in ulcb.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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
|
||||
rcar_sound,dai {
|
||||
/* dai0-1 are defined in ulcb.dtsi */
|
||||
rcar_sound,dai@1 {
|
||||
reg = <1>;
|
||||
|
||||
/*
|
||||
* (C) CPU2 -> PCM3168A-p
|
||||
|
@ -24,7 +24,7 @@
|
||||
#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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
rcar_sound,dai {
|
||||
rcar_sound,dai@0 {
|
||||
reg = <0>;
|
||||
|
||||
/*
|
||||
* (A) CPU0
|
||||
*/
|
||||
|
@ -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 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
rcar_sound,dai {
|
||||
rcar_sound,dai@0 {
|
||||
reg = <0>;
|
||||
|
||||
/*
|
||||
* (A) CPU0 <-> ak4613
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user