Other Parts Discussed in Thread: TLV320AIC3106
Hello Mr/Mrs,
We are trying to make the 3 JAMR3 tlv320aic3106 codecs to be working at the same time. We are facing problems with "jamr3_sound" device-tree definition (dra7xx-jamr3.dtsi).
We are able to manage each one of the 3 codecs, but individually (I mean by generating a different dtb file each time). To achieve it, what we do it is to change "simple-audio-card,routing" tags and the "sound-dai" of the codec side.
jamr3_sound {
compatible = "simple-audio-card";
simple-audio-card,name = "DRA7xx-JAMR3";
simple-audio-card,widgets =
"Line", "Line Out",
"Line", "Line In";
simple-audio-card,routing =
"Line Out", "J3A LLOUT",
"Line Out", "J3A RLOUT",
"J3A LINE1L", "Line In",
"J3A LINE1R", "Line In";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&jamr3_sound_master>;
simple-audio-card,frame-master = <&jamr3_sound_master>;
simple-audio-card,bitclock-inversion;
jamr3_sound_master: simple-audio-card,cpu {
sound-dai = <&mcasp6>;
system-clock-frequency = <11289600>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3106a>;
clocks = <&atl_clkin1_ck>;
};
};
But when we try to define a link between CPU and the 3 codecs at a time, we are not succeeding. We have tried:
- Several dai-links definition:
jamr3_sound {
compatible = "simple-audio-card";
simple-audio-card,name = "DRA7xx-JAMR3-CODECA";
simple-audio-card,widgets =
"Line", "Line Out B",
"Line", "Line In B",
"Line", "Line Out A",
"Line", "Line In A";
simple-audio-card,routing =
"Line Out A", "J3A LLOUT",
"Line Out A", "J3A RLOUT",
"J3A LINE1L", "Line In A",
"J3A LINE1R", "Line In A",
"Line Out B", "J3B LLOUT",
"Line Out B", "J3B RLOUT",
"J3B LINE1L", "Line In B",
"J3B LINE1R", "Line In B";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&jamr3_sound_master>;
simple-audio-card,frame-master = <&jamr3_sound_master>;
simple-audio-card,bitclock-inversion;
//jamr3_sound_master: simple-audio-card,cpu {
// sound-dai = <&mcasp6>;
// system-clock-frequency = <11289600>;
//};
simple-audio-card,dai-link@0{
simple-audio-card,cpu {
sound-dai = <&mcasp6>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3106a>;
clocks = <&atl_clkin1_ck>;
};
};
simple-audio-card,dai-link@1{
simple-audio-card,cpu {
sound-dai = <&mcasp6>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3106b>;
clocks = <&atl_clkin1_ck>;
};
};
};
- Several codec definition;
jamr3_sound {
compatible = "simple-audio-card";
simple-audio-card,name = "DRA7xx-JAMR3-CODECA";
simple-audio-card,widgets =
"Line", "Line Out B",
"Line", "Line In B",
"Line", "Line Out A",
"Line", "Line In A";
simple-audio-card,routing =
"Line Out A", "J3A LLOUT",
"Line Out A", "J3A RLOUT",
"J3A LINE1L", "Line In A",
"J3A LINE1R", "Line In A",
"Line Out B", "J3B LLOUT",
"Line Out B", "J3B RLOUT",
"J3B LINE1L", "Line In B",
"J3B LINE1R", "Line In B";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&jamr3_sound_master>;
simple-audio-card,frame-master = <&jamr3_sound_master>;
simple-audio-card,bitclock-inversion;
jamr3_sound_master: simple-audio-card,cpu {
sound-dai = <&mcasp6>;
system-clock-frequency = <11289600>;
};
simple-audio-card,codec@0 {
sound-dai = <&tlv320aic3106a>;
clocks = <&atl_clkin1_ck>;
};
simple-audio-card,codec@1 {
sound-dai = <&tlv320aic3106b>;
clocks = <&atl_clkin1_ck>;
};
};
- Several "cards" definition (if jamr3_sound_b is first defined, DRA7xx-JAMR3_B is mounted. If jamr3_sound_a is first defined, DRA7xx-JAMR3_A is mounted):
jamr3_sound_b {
compatible = "simple-audio-card";
simple-audio-card,name = "DRA7xx-JAMR3_B";
simple-audio-card,widgets =
"Line", "Line Out",
"Line", "Line In";
simple-audio-card,routing =
"Line Out", "J3B LLOUT",
"Line Out", "J3B RLOUT",
"J3B LINE1L", "Line In",
"J3B LINE1R", "Line In";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&jamr3_sound_master_b>;
simple-audio-card,frame-master = <&jamr3_sound_master_b>;
simple-audio-card,bitclock-inversion;
jamr3_sound_master_b: simple-audio-card,cpu {
sound-dai = <&mcasp6>;
system-clock-frequency = <11289600>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3106b>;
clocks = <&atl_clkin1_ck>;
};
};
jamr3_sound_a {
compatible = "simple-audio-card";
simple-audio-card,name = "DRA7xx-JAMR3_A";
simple-audio-card,widgets =
"Line", "Line Out",
"Line", "Line In";
simple-audio-card,routing =
"Line Out", "J3A LLOUT",
"Line Out", "J3A RLOUT",
"J3A LINE1L", "Line In",
"J3A LINE1R", "Line In";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&jamr3_sound_master>;
simple-audio-card,frame-master = <&jamr3_sound_master>;
simple-audio-card,bitclock-inversion;
jamr3_sound_master: simple-audio-card,cpu {
sound-dai = <&mcasp6>;
system-clock-frequency = <11289600>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3106a>;
clocks = <&atl_clkin1_ck>;
};
};
Anyone could help us to well define the jamr3_sound to be able to manage the 3 codecs at the same time?
Thank you very much!