Is there a way to write new EDID through the HDMI connector on BeagleBone

Is there a way to write new EDID through the HDMI connector on BeagleBone Black? I see that EDID reading is handled by the TDA19988 kernel driver through the NXP chip, but no write_edid function has been implemented (not strange since it is very uncommon to need it). But I don’t suppose there is a bypass driver hooking the EEPROM on the HDMI cable into userspace? I know it’s a long shot, perhaps @Rob_Clark1 knows since his name is on the TDA19988 kernel driver? :slight_smile:

no way that I know of. From what I remember, the tda998x doesn’t even directly expose the ddc i2c, so I don’t think it is possible to read/write arbitrary i2c addresses…

OK, thanks a lot for the fast response!

It depends on your “monitor”, but probably not via the BBB and the TDA19988. Most of the typical eBay series 7"-10" HDMI /DVI panels with an adapter board that I’ve worked with can be programmed through their VGA port using an adapter board and a PC with a parallel port. You could probably also program them via any I2C bus master, but I haven’t actually tried this to see if there’s anything proprietary going on or if everything is standard I2C bus writes.

As a fallback, if you compile the kernel with the proper settings, you can provide an alternate EDID ROM to the video drivers instead of using the version read from the actual video port.

@Charles_Steinkuehler thanks for the info! This is for programming the EDID on the Manga Screens. I found a solution where they are programmed through the SDA and SCL breakout pins, but that is a way more error prone and time demanding solution than programming it through the HDMI cable.

You should probably just hack an HDMI cable to hook the HDMI I2C up to a standard bus master (on the BeagleBone or elsewhere). I don’t have full specs on the TDA19988, but all the HDMI Tx chips I’ve used in designs have a small embedded uC that’s talking to the monitor, with no (documented) way to directly talk to the monitor I2C bus.

@Charles_Steinkuehler I’ve seen all three cases… designs where ddc is hooked up to a standard SoC i2c, designs where hdmi block has it’s own fully featured/exposed i2c, and designs where hdmi block has some sort of i2c but doesn’t expose it generically (ie. more like a “read me the edid” type interface)… iirc tda998x is in the last category.

But yeah maybe find an hdmi connector somewhere and solder that up to one of am33xx’s i2c’s and make an edid programmer cape :stuck_out_tongue: