How can I enable audio (i2s) with a LCD screen?

Hi,

I have a BBB wireless with the lastest IoT Debian image.
When I don’t have an HDMI screen connected to my board I can take a sound output via i2s on the pins P9.28, P9.29, and P9.31, and ALSA lists a sound device:

[ 2.913839] ALSA device list:
[ 2.916851] #0: TI BeagleBone Black

When I connect my LCD cape to the board the sound device disappears, even when I disable the cape on uEnv.txt with: disable_uboot_overlay_addr0=1

I would like to know how can I force enable an i2s audio output with my LCD screen attached. Originally my cape uses the pins P9.28, P9.29, and P9.31 (BB-CAPE-DISP-CT4-00A0.dts) to control the touch and the backlight, but I slightly modified the dts to not use these pins. But even with the cape completely disabled in the uEnv.txt I don’t have sound. Am I disabling it correctly? How to force enable audio out?

Best regards,

I could get the i2s with my LCD adding this line to uEnv.txt:

uboot_overlay_addr0=/lib/firmware/BB-HDMI-TDA998x-00A0.dtbo

Doing this, I am making the LCD-HDMI converter work, and not allow the BB-CAPE-DISP-CT4 load. As my LCD is connected to the same pins that the HDMI converter is connected, my LCD just works.

I now have an HDMI output, and the LCD working at the same time with i2s audio on the right pins.

I don’t think that this is the best solution, this is just a turn around to make it works. I also forced a resolution to match with my LCD with the line:

cmdline=coherent_pool=1M net.ifnames=0 quiet video=HDMI-A-1:480x272M@60e

With this, my HDMI video doesn’t work, because the resolution is not compatible, but my LCD still working, and I still have i2s audio.

If someone knows a better solution for this, please, let me know.

I tried to recompile the dtbo of my LCD adding some of the fragments from the HDMI overlay mentioned, but I couldn’t make it work. I couldn’t find a good documentation about how these overlays, and device trees works on the board.

If someone can point me good documentation about it I will appreciate.

I’m posting it because I think that there is so little documentation for beginners about the BeagleBoard that anything can help someone that is a bit lost. Even simple things on this board are complicated and the documentation that you can find are most of them outdated with the old cape system, that doesn’t work anymore. This just confuses the people.

Thank you

IDK, you did pretty good for someone who took a cape that utilized the
audio pins for the i2c based touch-controller on the BB-CAPE-DISP-CT4
lcd, and made it work for your application..

Another option would have been gotten a different lcd.

Do a direct comparision of these two overlays:

https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-NHDMI-TDA998x-00A0.dts

https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-HDMI-TDA998x-00A0.dts

To see what you need to modify in:

https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-CAPE-DISP-CT4-00A0.dts

Regards,