Hello
I’m hoping you could help in setting up our audio solution.
We have a DSP connected to the TX2-NX which has up to 4 i2s I/O. We talk to the DSP for configuration and fw-loading over SPI bus.
We use tegra.i2s0 connected to the dsp for playback, and tegra.i2s1 connected to the dsp for recording microphones which are connected to the dsp.
The DSP has its 3rd i2s connected to an amplifier.
We use the DSP for echo-cancellation, noise-reduction, etc.
The problem is that we can’t get the sound to work because the dai-link-3
in the device tree does not seem to be configured properly by the nvidia code. (cpu-dai[-name] gets overridden with a tegra-i2s DAP name)
Is my assumption correct that the nvidia code does not support codec-to-codec configurations?
How would be go about getting our setup to work?
Snippets of our device-tree:
i2c@3160000 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
amplifier: bd28723@41 {
compatible = "rohm,bd28723";
reg = <0x41>;
status = "okay";
stereo = <0>;
#sound-dai-cells = <0>;
interrupt-parent = <&io_expander>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
mute-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
reset-gpios = <&io_expander 2 GPIO_ACTIVE_HIGH>;
};
};
&tegra_i2s1 {
status = "okay";
};
&tegra_i2s2 {
status = "okay";
};
&tegra_sound {
nvidia,dai-link-1 {
link-name = "clsic-playback-i2s1";
cpu-dai = <&tegra_i2s1>;
codec-dai = <&cs48lv41 0>;
cpu-dai-name = "I2S1";
codec-dai-name = "clsic-asp1";
format = "i2s";
bitclock-slave;
frame-slave;
bitclock-noninversion;
frame-noninversion;
bclk-ratio = <0>;
srate = <48000>;
bit-format = "s16_le";
num-channel = <2>;
ignore_suspend;
name-prefix = "z";
status = "okay";
};
nvidia,dai-link-2 {
link-name = "clsic-record-i2s2";
cpu-dai = <&tegra_i2s2>;
codec-dai = <&cs48lv41 1>;
cpu-dai-name = "I2S2";
codec-dai-name = "clsic-asp2";
format = "i2s";
bitclock-slave;
frame-slave;
bitclock-noninversion;
frame-noninversion;
bclk_ratio = <0>;
bit-format = "s16_le";
srate = <48000>;
num-channel = <2>;
ignore_suspend;
name-prefix = "y";
status = "okay";
};
nvidia,dai-link-3 {
link-name = "clsic-amp";
cpu-dai = <&cs48lv41 3>;
codec-dai = <&lifer>;
cpu-dai-name = "clsic-asp3";
codec-dai-name = "bd28723";
format = "i2s";
bitclock-master;
frame-master;
bclk-ratio = <0>;
bit-format = "s16_le";
srate = <48000>;
num-channel = <2>;
name-prefix = "z";
ignore_suspend;
status = "okay";
};
};
All components individually are working ok; we can configure the DSP and amplifier and have done measurements on their GPIO’s, reset-lines etc.
Thanks for any insight you can offer.