Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
驱动文件:
dw-hdmi.c: HDMI驱动,包括内部I2C接口实现。
drm_edid.c: edid相关。
dw_hdmi-rockchip.c: drm框架部分。
探测引脚
HPD(Hotplug Dectect)用于监测HDMI设备是否存在,为high那么可以通过DDC去读EDID,HDMI有规定在HDMI 5vAC断电时source device可以读reciever device的EDID,也就是需要Hotplug为High。其中有两种Hotplug相关的情况会导致HDMI被识别为DVI:
- Hotplug为High,不过EDID并没有准备好,那么信号源设备会由于无法读到EDID而认为接收设备为DVI,这样会导致HDMI有图像无声的问题。
- Hotplug为Low,也会导致信号源无法读到EDID而认为接收设备为DVI,从而导致HDMI有图无声。
插拔是否成功可以在check_hdmi_irq()@dw-hdmi.c中打印log。
I2C部分:
I2C主要用于读取EDID,内部框图如下:
分内部I2C和普通I2C两种。
普通的I2C可以配置到任何一路,和正常外设