Problem with HDMI when touchscreen also attached

I’m working on a project where we want a touchscreen always
attached (inside a case), but with the option of using an HDMI
attached monitor when it’s available.

The problem is the HDMI isn’t working if the touchscreen
board is also attached.

We are not trying to hot-plug. Changing the display doesn’t
happen often, so we are fine rebooting, loading a different dtb
for the touchscreen or HDMI. (A script modifies uEnv.txt).

Here’s is what works:

  1. HDMI plugged in, touchscreen plugged in, loading touchscreen dtb, touchscreen works

  2. No HDMI plugged in, touchscreen plugged in, loading touchscreen dtb, touchscreen works

  3. HDMI plugged in, no touchscreen plugged in, loading hdmi dtb, hdmi works

What doesn’t work:

  1. HDMI plugged in, touchscreen plugged in, loading hdmi dtb, NO hdmi

I get the same behavior plugging a BBB into with 3 different touchscreen
boards (4D 7.0 LCD Cape, NewHaven 5.0 Cape, custom board)

If I have an HDMI attached, loading hdmi dtb, the BBB HDMI works fine.

If I boot the very same system, but now with a touchscreen also plugged
in, there is no HDMI output.

First off, should this be working?

If so, any suggestions on what I’ve done wrong or where to start looking?

Maybe some pin I need to change in the hdmi dts?


'should'... It's "possible" only if the touchscreen lcd and hdmi share
the exact same video parameters, because in essence that is what your
doing.. Sharing "1" lcd output between "2" devices.

If you truly want two separate displays, this is NOT the board for you...


You are saying there is no way to disable the touchscreen so that
the BBB ignores it?

We never want both displays active and we are rebooting between
switches. I could even load a different kernel not just a different
dtb if required.

Are you still thinking this won’t work?

Okay, that's different then..

So.. I'm going to assume your using our v3.8.x...

In which case, as long as the lcd cape is connected and has the
eeprom, it'll load the lcd dtbo.

So if you tell the kernel to ignore that and setup your own init
script to decide hdmi or lcd, then it should work..


Using 3.15 for now, but probably upgrading soon and no cape eeprom stuff.
I2C 1 and 2 have been repurposed.

As I mentioned in the original post, a script changes uEnv.txt to switch
the dtb that u-boot will load and then reboots the system.

Well if it’s possible with 3.8, then it must mean I have something wrong in
my hdmi only dts. That’s good news.

Probably something I haven’t disabled/turned off properly when I’m not using
the touchscreen. Just not sure what.