[PATCH 00/13] mediatek: add HDMI pipeline support for MT8188 based boards

Julien Stephan <[email protected]>
Newsgroups gmane.comp.boot-loaders.u-boot
Message-ID <20260728-add-genio-510-and-genio-700-hdmi-v1-0-ac54bd75f960@baylibre.com>
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-4278457fe2cb@baylibre.com/
[2]: https://patchwork.ozlabs.org/project/uboot/cover/20260717-mt8188-add-ddc-i2c-driver-v1-0-e89ccd173567@baylibre.com/
[3]: https://patchwork.ozlabs.org/project/uboot/patch/20260715-mt8188-add-clk-add-display-related-clocks-v2-1-0aaf7accaeb0@baylibre.com/
[4]: https://patchwork.ozlabs.org/project/uboot/patch/20260728-mt8188-clk-fix-top0-gate-polarity-v1-1-56bc92ba6055@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]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.