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.

Figure 1. Display Subsystem Block Diagram

HDMI Device Tree Source Code

The following code block shows the device tree source code of the HDMI driver.
   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:
Table 1. HTMI 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

The following code block shows the source code tree structure of the HDMI driver.
linux
└-- drivers
└-- | --gpu
| -- | -- | -- drm
| -- | -- | -- |-- verisilicon
| -- | -- | -- | -- | -- inno_hdmi.c
| -- | -- | -- | -- | -- inno_hdmi.h