Commit Graph

7 Commits

Author SHA1 Message Date
Sorgelig
35f916da50 CEC: check interrupt availability, cleanup. 2026-05-15 19:59:03 +08:00
Sorgelig
f4fe35f9db CEC: cleanup. 2026-05-15 17:25:12 +08:00
Sorgelig
88f76083c9 CEC: reorganize input. 2026-05-15 05:57:18 +08:00
Sorgelig
7ac719fb8c CEC: remove redundant debug check. 2026-05-15 03:46:42 +08:00
Sorgelig
31936534cd Option for non-standard CEC clock. 2026-05-15 03:34:35 +08:00
Sorgelig
643c60b601 Fixes and tweaks. 2026-05-14 18:20:33 +08:00
Alexey Melnikov
615a69b616 Support for CEC
* hdmi_cec

* Improve HDMI CEC startup

* hdmi_cec

* Improve HDMI CEC startup

* Use ADV7513 interrupt registers for CEC

Set ADV7513 main 0xE1 to the CEC I2C map address, 0xE2 to 0x00 to power the CEC block, and 0xE3 |= 0x0E for CEC control setup.

Keep HPD forced high through main 0xD6 = 0xC0 after the startup pulse, but clear main 0x94[7] so HPD does not drive the shared HDMI interrupt line.

Clear main 0xA1[6] so the monitor-sense/video-active block stays powered; ADV7513 interrupt status registers 0x94-0x97 are only valid while that block is alive.

Set main 0x95 = 0x07 to enable only CEC RX-ready interrupts, use main 0x97 to clear RX/TX interrupt latches, and clear 0x96/0x97 at init.

Read CEC RX-ready from CEC map 0x49, keep CEC RX enabled with 0x4A = 0x08, release consumed RX slots through 0x4A, and remove fallback polling of RX length registers 0x25/0x37/0x48.

Use main 0x97 bits for CEC TX done/retry/arbitration status, keep CEC TX disabled through 0x11 except while sending, and set the CEC clock divider 0x4E = 0x3D.

Gate RX handling on fpga_get_hdmi_int() so normal CEC polling no longer performs DDC/CEC I2C reads unless the FPGA HDMI interrupt bit is asserted.

Reply to CEC vendor/name discovery so displays can identify MiSTer after registration.

---------

Co-authored-by: misteraddons <51079966+misteraddons@users.noreply.github.com>
2026-05-14 17:57:10 +08:00