using simple-audio-card imx6 with TLV320AIC3100

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

using simple-audio-card imx6 with TLV320AIC3100

Jump to solution
6,013 Views
tylernol
Contributor IV

hi there , I am trying to write a dts simple-audio-card to bridge audio to an external ti codec. It appears like the audio mux settings are not being parsed by the asoc driver and set in the hw registers. Here is my current configuration:

sound {

    compatible = "simple-audio-card";

    simple-audio-card,name = "foo";

     simple-audio-card,format = "i2s";

     simple-audio-card,widgets =

                        "Speaker", "speakerOut";

     simple-audio-card,routing =

        "speakerOut", "SPK";

     simple-audio-card,cpu {

        sound-dai = <&ssi2 0>;

     };

     simple-audio-card,codec {

          bitclock-master;

          frame-master;

          sound-dai = <&tlv320aic311x>;

          system-clock-frequency = <24000000>;

          system-clock-direction = "out";

     };

  };

&ssi2 {

    #sound-dai-cells = <0>;

    fsl,mux-int-port = <2>;

    fsl,mux-ext-port = <3>;

    fsl,mode = "i2s-master";

    pinctrl-names = "default";

     status = "okay";

};

tlv320aic311x: tlv320aic310x@18 {

      #sound-dai-cells = <0>;

      compatible = "ti,tlv320aic310x";

      reg = <0x18>;

      HPVDD-supply  = <&codec_en_regulator>;

      SPRVDD-supply = <&codec_en_regulator>;

      SPLVDD-supply = <&codec_en_regulator>;

      AVDD-supply   = <&codec_en_regulator>;

      IOVDD-supply  = <&codec_en_regulator>;

      DVDD-supply   = <&codec_en_regulator>;

  };

1 Solution
3,682 Views
igorpadykov
NXP Employee
NXP Employee

Hi Tyler

for aud3&ssi2 example one can look at wm8962 codec configuration on

i.MX6Q Sabre SD board (spf-27392 schematic)  linux/arch/arm/boot/dts/imx6qdl-sabresd.dtsi :

linux-imx.git - i.MX Linux Kernel 

Schematics (1)
i.MX6_SABRE_SDP_DESIGNFILES
SABRE Platform for Smart Devices|NXP 

Best regards
igor

View solution in original post

0 Kudos
6 Replies
3,682 Views
tylernol
Contributor IV

solved the parsing issue (was not updating my dtb properly). So it is parsing my settings out, now I need to confirm the pin mux settings are correct. ssi2 is to AUD3_ pins is source mux 1 to dest group ), correct?

0 Kudos
3,682 Views
igorpadykov
NXP Employee
NXP Employee

could you clarify meaning "..is source mux 1 to dest group" ,

had you checked suggested example ?

0 Kudos
3,683 Views
igorpadykov
NXP Employee
NXP Employee

Hi Tyler

for aud3&ssi2 example one can look at wm8962 codec configuration on

i.MX6Q Sabre SD board (spf-27392 schematic)  linux/arch/arm/boot/dts/imx6qdl-sabresd.dtsi :

linux-imx.git - i.MX Linux Kernel 

Schematics (1)
i.MX6_SABRE_SDP_DESIGNFILES
SABRE Platform for Smart Devices|NXP 

Best regards
igor

0 Kudos
3,682 Views
igorpadykov
NXP Employee
NXP Employee

Hi Tyler

"simple-audio-card" is used on some third party releases

[PATCH v6 2/3] ARM: dts: pbab01: enable I2S audio on phyFLEX-i.MX6 boards 

other option

https://community.nxp.com/thread/380454 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

3,682 Views
tylernol
Contributor IV

current issue I still have is that the device tree node for the audmux still does not seem to be getting parsed, so those registers are still being left in their default state. I have the defconfigs for CONFIG_SND_SOC_IMX_AUDMUX and SSI set, amongst others. Any others that explicitly need to be set for this? thanks!

0 Kudos
3,682 Views
tylernol
Contributor IV

last night I also found this [07/12] ARM: dts: imx6-tx6: convert to using simple-audio-card - Patchwork  which is the same approach as what you suggested in that patch link -- explicitly configuring the audmux rather than using the mux-int-port, mux-ext-port properties which only seem to be be parsed in a non simple-sound-card case. I'll stick with the simple card and see if I can get it to work,  there is ultimately  a more complex audio setup that hopefully can be all solved with simple-sound-card.  thanks!

0 Kudos