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>;
};
Solved! Go to Solution.
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
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?
could you clarify meaning "..is source mux 1 to dest group" ,
had you checked suggested example ?
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
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!
-----------------------------------------------------------------------------------------------------------------------
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!
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!