Hi Jonathan,
I modified the dai-link, added the component driver parameter in driver, retained the audio routing configuration in device tree as such. It looks like its working now.
nvidia,audio-routing =
"x Headphone", "x OUT",
"x IN", "x Mic",
"y Headphone", "y OUT",
"y IN", "y Mic",
"z Headphone", "z OUT",
"z IN", "z Mic",
"m Headphone", "m OUT",
"m IN", "m Mic",
"n Headphone", "n OUT",
"n IN", "n Mic",
"o Headphone", "o OUT",
"o IN", "o Mic",
"a IN", "a Mic",
"b IN", "b Mic",
"c IN", "c Mic",
"d IN", "d Mic",
"d1 Headphone", "d1 OUT",
"d2 Headphone", "d2 OUT";
nvidia,dai-link-3 {
link-name = "zl380tw0-playback";
codec-dai = <&codec>;
codec-dai-name = "zl380tw0-hifi";
cpu-dai-name = "I2S3";
};
static const struct snd_soc_dapm_widget dit_widgets = {
SND_SOC_DAPM_OUTPUT(“OUT”),
SND_SOC_DAPM_INPUT(“IN”),
};
static const struct snd_soc_dapm_route dit_routes = {
{ “OUT”, NULL, “Playback” },
{ “Capture”, NULL, “IN” },
};
static struct snd_soc_codec_driver soc_codec_dev_zl380tw = {
.component_driver = {
.dapm_widgets = dit_widgets,
.num_dapm_widgets = ARRAY_SIZE(dit_widgets),
.dapm_routes = dit_routes,
.num_dapm_routes = ARRAY_SIZE(dit_routes),
},
We tried probing the I2S lines while aplaying. We get clock,ws and data.
But while recording, we get a blank wav file. Tried probing the I2S lines. We get only the clock and ws. No data is obtained.