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

24 views
Skip to first unread message

João Manoel

unread,
Jul 21, 2019, 1:08:50 PM7/21/19
to BeagleBoard
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,



João Manoel

unread,
Jul 21, 2019, 3:38:46 PM7/21/19
to BeagleBoard
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

Robert Nelson

unread,
Jul 21, 2019, 5:35:30 PM7/21/19
to Beagle Board, joa...@gmail.com
On Sun, Jul 21, 2019 at 2:38 PM João Manoel <joa...@gmail.com> wrote:
>
> 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.

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,

--
Robert Nelson
https://rcn-ee.com/
Reply all
Reply to author
Forward
0 new messages