HDMI Driver
The display subsystem, named as dom_vout_top in the JH-7110 system, includes front-end video data capture, display controller and display interface, such as RGB IF, HDMI and MIPI.
In the display subsystem, High Definition Multimedia Interface (HDMI) is used to transmit high-quality video and audio data, with the transmission speed up to 5 Gbps. Before HDMI data transmission, no analog/digital data transformation is required, its simplicity ensures the highest quality signal transmission especially for high definition movies and musics.
Block Diagram
The block diagram of the display subsystem is displayed in following diagram.
HDMI Device Tree Source Code
hdmi: hdmi@29590000 { compatible = "starfive,jh7100-hdmi","inno,hdmi"; reg = <0x0 0x29590000 0x0 0x4000>; interrupts = <99>; status = "disabled"; clocks = <&clkvout JH7110_U0_HDMI_TX_CLK_SYS>, <&clkvout JH7110_U0_HDMI_TX_CLK_MCLK>, <&clkvout JH7110_U0_HDMI_TX_CLK_BCLK>, <&hdmitx0_pixelclk>; clock-names = "sysclk", "mclk","bclk","pclk"; resets = <&rstgen RSTN_U0_HDMI_TX_HDMI>; reset-names = "hdmi_tx"; };The following table describes the DT parameters:
| Parameter | Description |
|---|---|
| compatible | Compatibility information, used to associate the driver and its target device |
| reg | Register base address "0x29590000" and range "0x4000". |
| interrupts | Hardware interrupt ID |
| status |
The work status of the HDMII module. To enable the module, set this bit to okay. To disable the module, set this bit to disabled. |
| clocks | The clocks used by the HDMI module |
| clock-names | The names of the clocks used by the HDMI module |
| resets | The reset signals used by the HDMI module |
| reset_names | The names of the reset signals |
Source Code Structure
linux
└-- drivers
└-- | --gpu
| -- | -- | -- drm
| -- | -- | -- |-- verisilicon
| -- | -- | -- | -- | -- inno_hdmi.c
| -- | -- | -- | -- | -- inno_hdmi.h