TX1 - Audio codec integration issue

Hi All,

We are trying to integrate Audio codec to TX1. TX1 is in I2S Mater mode and Audio codec is in I2S Slave mode. Card/Codec registration is successful and appears in the ALSA device list.

In U-boot, Pin muxing for I2S1 is done.

Below is the required kernel device tree information edited by us-

=================================================================================
i2s@702d1000 {
pinctrl-names = “dap_active”, “dap_inactive”;
pinctrl-0 = <>;
pinctrl-1 = <>;
regulator-supplies = “vdd-1v8-audio-hv”, “vdd-1v8-audio-hv-bias”;
vdd-1v8-audio-hv-supply = <&max77620_sd3>;
vdd-1v8-audio-hv-bias-supply = <&max77620_sd3>;
status=“okay”;
};

sound_card: sound {
compatible = “nvidia,tegra-audio-t210ref”;
nvidia,model = “tegra-snd-t210ref”;

            nvidia,num-codec-link = <1>;

           /* nvidia,audio-routing= NOT USED*/

            nvidia,xbar = <&tegra_axbar>;

            nvidia,dai-link-1 {
              	  link-name = "tlv320adc3101-capture";
      	  	  cpu-dai = <&tegra_i2s1>;
        		  codec-dai = <&tlv320adc3101>;
        		  cpu-dai-name = "I2S1";
        		  codec-dai-name = "tlv320adc3101-asi";
        		  format = "i2s";
        		  bitclock-slave;
        		  frame-slave;
        		  bitclock-noninversion;
        		  frame-noninversion;
        		  bit-format = "s16_le";
        		  bclk_ratio = <0>;
        		  srate = <44100>;
        		  num-channel = <2>;
        		  ignore_suspend;
        		  name-prefix = "x";
    	};
};

===============================================================

Observation:

  1. AUD_MCLK is generated.
  2. I2S BCLK and WCLK from TX1 is NOT generated

Questions:

  1. Even after setting TX1 in I2S master mode, I2S BCLK and WCLK are not generated. What are the various settings that affects CLK generation?
  2. How can we confirm TX1 is in I2S master mode ?

Thanks
Mohan

Hi All,
We struck with this issue, Due to this we can’t proceed further. Can any one help us?

Has your DAPM path complete. Unless it is complete the playback/capture will not work. For this you need to set alsa mixer controls.
I2S registers can be dumped to check settings which can be found in,
sudo cat /sys/kernel/debug/regmap/tegra210-i2s.0/registers

Hi rlokhande,
Thanks for the response… we checked I2S registers and found its seems okay…
We have not got any errors when widgets are added… From this can we conclude, our DAPM routing is proper ?? Or is there any means through which we can confirm that?

Looks like you are using capture path only. So atleast you need to set mixer controls
amixer -c 1 cset name=“I2S1 Mux” “ADMAIF1”

Also have you added routing between codec widgets and machine widgets in dts file.
If dapm path is not complete, you won’t get any error but there will be no audio captured. In case of playback, it finishes very early than expected.

Hi Riokhande,
We have resolved the issue. The problem was with the audio routing. Now we are trying to integrated ADC codec and DAC codec on the same card(dai-link-0 for ADC and dai-link-1 for DAC).

Now we are facing issue on amixer like “operation not permitted”. Is it possible to integrated two audio codecs on the same card.

Hi mohanprasath_12,

Is it possible to integrated two audio codecs on the same card.
We don’t have the experience internally, hope other developers in forum could share the thoughts on this case.

Thanks

Hi kayccc,

Yes, under the sound card, we can integrate this.