This series adds HDMI support for MT8188 based boards, such as the Genio
510 and Genio 700 EVKs, in order to display a boot logo over HDMI. It
builds on top of the HDMI PHY driver [1], the DDC (I2C) driver [2], the
clock series [3] and a clock fix [4] already sent earlier.
The drivers here, were inspired by the corresponding kernel driver, but
were largely modified, mainly because U-Boot has no DRM framework and
the goal is only to display a framebuffer. The HDMI driver locates each
pipeline component through phandles in the hdmi node and programs them
directly. The framebuffer and splash screen live in dedicated
reserved-memory regions.
The video pipeline looks like this:
reserved-memory (framebuffer, in DRAM)
|
+------------+------------+
v v
mdp_rdma4 mdp_rdma5 two DMA read engines,
(left half) (right half) each fetching one frame half
| |
padding4 padding5 (bypass)
| |
+------------+------------+
v
vpp merge (merge3) recombine the two halves
|
v
ethdr mixer (ethdr0)
|
v
hdr back-end
|
v
vpp merge (merge5)
|
v
dpi1 timing generator -> HDMI TX
|
v
ddc/i2c ---> hdmi tx controller
(read EDID) |
v
hdmi phy
|
v
hdmi connector ---> sink
mutex1 : hardware SOF synchronization across the pipeline
vdosys1 : routing muxes (SEL_IN/SOUT) wiring the blocks above
The series adds the HDMI TX controller (UCLASS_VIDEO), a set of shared
display-component helpers and the individual pipeline components (mixer,
merge, mutex, padding, rdma, vdosys1, dpi1), and the device-tree glue
and config that enable the pipeline.
Tested on Genio 700 EVK: the U-Boot splash logo shows up on an HDMI display.
[1]:
https://patchwork.ozlabs.org/project/uboot/patch/20260717-mt8188-add-hdmi-phy-driver-v1-1-4278457fe...@baylibre.com/
[2]:
https://patchwork.ozlabs.org/project/uboot/cover/20260717-mt8188-add-ddc-i2c-driver-v1-0-e89ccd173...@baylibre.com/
[3]:
https://patchwork.ozlabs.org/project/uboot/patch/20260715-mt8188-add-clk-add-display-related-clocks-v2-1-0aaf7acca...@baylibre.com/
[4]:
https://patchwork.ozlabs.org/project/uboot/patch/20260728-mt8188-clk-fix-top0-gate-polarity-v1-1-56bc92ba6...@baylibre.com/
Signed-off-by: Julien Stephan <[email protected]>
---
Julien Stephan (13):
video: mediatek: add display pipeline component helpers
video: mediatek: add mixer component
video: mediatek: add merge component
video: mediatek: add mutex component
video: mediatek: add padding component
video: mediatek: add rdma component
video: mediatek: add vdosys1 component
video: mediatek: add dpi1 component
video: mediatek: add new hdmi driver
arm: dts: mt8188: add vdosys1-pipeline node
arm: dts: mt8188: add framebuffer and splash reserved-memory
arm: dts: mt8188: add hdmi override node
configs: mediatek: mt8188: enable hdmi pipeline
arch/arm/dts/mt8188-u-boot.dtsi | 52 ++
configs/mt8188.config | 12 +
drivers/video/Kconfig | 1 +
drivers/video/Makefile | 1 +
drivers/video/mediatek/Kconfig | 21 +
drivers/video/mediatek/Makefile | 16 +
drivers/video/mediatek/mtk_disp_comp.c | 68 ++
drivers/video/mediatek/mtk_disp_comp.h | 30 +
drivers/video/mediatek/mtk_disp_merge_mt8188.c | 106 +++
drivers/video/mediatek/mtk_disp_merge_mt8188.h | 19 +
drivers/video/mediatek/mtk_disp_mixer_mt8188.c | 76 ++
drivers/video/mediatek/mtk_disp_mixer_mt8188.h | 16 +
drivers/video/mediatek/mtk_disp_mutex_mt8188.c | 63 ++
drivers/video/mediatek/mtk_disp_mutex_mt8188.h | 14 +
drivers/video/mediatek/mtk_disp_padding_mt8188.c | 37 +
drivers/video/mediatek/mtk_disp_padding_mt8188.h | 16 +
drivers/video/mediatek/mtk_dpi_mt8188.c | 379 ++++++++++
drivers/video/mediatek/mtk_dpi_mt8188.h | 20 +
drivers/video/mediatek/mtk_dpi_regs.h | 113 +++
drivers/video/mediatek/mtk_hdmi.c | 919 +++++++++++++++++++++++
drivers/video/mediatek/mtk_mdp_rdma_mt8188.c | 97 +++
drivers/video/mediatek/mtk_mdp_rdma_mt8188.h | 20 +
drivers/video/mediatek/mtk_mt8188_hdmi_regs.h | 103 +++
drivers/video/mediatek/mtk_vdosys1_mt8188.c | 74 ++
drivers/video/mediatek/mtk_vdosys1_mt8188.h | 16 +
25 files changed, 2289 insertions(+)
---
base-commit: f9e34cbaacfabfc401faf386e4ae1ad88e01255e
change-id: 20260701-add-genio-510-and-genio-700-hdmi-ca62c6b8210c
Best regards,
--
Julien Stephan <[email protected]>