Colibri iMX6ULL AC97 or audio

Hi.

a. I’m using Colibri iMX6ULL and Colibri Evaluation Board which has audio jacks and I want to test playing audio. Do you think iMX6ULL is possible to play audio? I found that iMX6ULL support AC97 in datasheet. I can’t fine the sound card in iMX6ULL Kernel. Please let know how to play the audio. If I have to add a Kernel option, please let me know. I can change the Kernel at the moment.

alt text

b. I saw the following article today. Please let me know how to use this.

Best regards,
Hans.

You have to modify the kernel config and DTS to make MQS work.
Here I am attaching the Patch and Readme file. Could you please try and let me know.

Best regards,
Deven

Please note that Col Eval Board Jacks are directly connected with different SODIMM pin number. (see schematics here.)

So there is no option to use it. However, you can solder an external Jack female connector and try. I didn’t try at my end. But it should work.

Dear deven,

Do I need any USB speaker for testing? Can I hear a sound through Colibri Evaluation board jack without any speaker?

Hi @HansKim72 ,

I am able to reproduce the issue.
I will check and update you by the end of this week.

Hi. I’m waiting…

Hi @HansKim72 ,

There is some mismatch in config file.
Could you please try with the below patch.link text

Hi deven,
Thank you for the final patch. It works fine. Do you know how to change the volume? I want to increase the volume. Is there any way to control a volume by software?

There is a compile error of gpio if I apply the patch file. Please check the following error.

  CC      net/core/request_sock.o
  CC      drivers/input/evdev.o
  CC      fs/nfs/nfs42proc.o
  CC      drivers/input/keyboard/gpio_keys.o
  CC      net/core/skbuff.o
drivers/input/keyboard/gpio_keys.c: In function ‘gpio_keys_suspend’:
drivers/input/keyboard/gpio_keys.c:852:2: error: implicit declaration of function ‘pinctrl_pm_select_sleep_state’ [-Werror=implicit-function-declaration]
  pinctrl_pm_select_sleep_state(dev);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/input/keyboard/gpio_keys.c: In function ‘gpio_keys_resume’:
drivers/input/keyboard/gpio_keys.c:864:2: error: implicit declaration of function ‘pinctrl_pm_select_default_state’; did you mean ‘irq_set_default_host’? [-Werror=implicit-function-declaration]
  pinctrl_pm_select_default_state(dev);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  irq_set_default_host
cc1: some warnings being treated as errors
scripts/Makefile.build:304: recipe for target 'drivers/input/keyboard/gpio_keys.o' failed
make[3]: *** [drivers/input/keyboard/gpio_keys.o] Error 1
scripts/Makefile.build:555: recipe for target 'drivers/input/keyboard' failed
make[2]: *** [drivers/input/keyboard] Error 2
scripts/Makefile.build:555: recipe for target 'drivers/input' failed
make[1]: *** [drivers/input] Error 2
Makefile:1022: recipe for target 'drivers' failed
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
  CC      net/core/datagram.o
  CC      fs/nfs/filelayout/filelayout.o

If I don’t apply the patch file, there is no problem and I can see zImage.

The following is my process. Please let me know the problem.

git clone -b toradex_4.9-2.3.x-imx git://git.toradex.com/linux-toradex.git 
git am 0001-MQS-Audio-i.MX6ULL-Audio-support-for-i.MX6ULL.patch
make colibri-imx6ull_defconfig

I’ve checked “imx6ull-colibri.dtsi” and “colibri-imx6ull_defconfig” are different.

make -j3 zImage 2>&1 | tee build.log

Dear @HansKim72,

As section 5.14 from datasheet derives,

The Colibri iMX6ULL does not feature an audio codec on the module. Therefore, the analog audio
interface pins (MIC, HEADPHONE, and LINE_IN) are left unconnected. However, for simple audio
reproduction, there is a medium quality sound (MQS) interface available, see chapter 5.16. For
higher quality audio, an external audio codec can be placed on the carrier board.

I have already checked MQS but have not implemented it. Someone else has already asked Toradex community questions, but he has not solved them either. In my memory, Chapter 5.16 had no detailed explanation. Should Kernel be modified for MQS? Please let me know how to modify it if I have to.

Dear @HansKim72,

Please note that MQS is using PWM for audio. Hence you can not control volume from s/w. However, you can do some arrangements to control amplifier.

Or you can also interface external codec.

Thanks.

Hi,
Settled. Thank you for your support.