This series adds DSI support for MediaTek MT8365 and MT8366 based
boards, such as the Genio 350 and the Genio 360 EVKs, in order to
display a boot logo on a DSI panel. It builds on top of the following
series, all sent earlier:
- the Genio 360 EVK bring-up [1],
- the MediaTek clock cleanups [2] and the MT8365 multimedia clock
driver [3],
- the MT8365 power domain support [4],
- the MIPI DSI PHY driver [5],
- the mipi_dsi write_seq helper macros [6] and the startek
kd070fhfid015 panel driver [7],
- the display component helpers introduced by the MT8188 HDMI
series [8].
As in the HDMI series, the drivers here were inspired by the
corresponding kernel drivers but were largely trimmed down: U-Boot has
no DRM framework and the goal is only to scan out a framebuffer. The DSI
driver locates the pipeline components through the device-tree aliases
the SoC dtsi already provides, the mutex, which has no alias on the
MT8365, through its driver, and the mmsys through the DSI digital clock,
and programs them directly.
The video pipeline looks like this:
video uclass framebuffer (in DRAM)
|
v
ovl0 overlay, the DMA master
| reading the framebuffer
v
rdma0 pass-through, no DRAM access
|
+--------------+--------------+
| |
v |
color0 | MT8365 only: the colour
| | pipeline, every block
v | programmed as pass-through
ccorr0 |
| |
v |
aal0 |
| |
v |
gamma0 |
| |
v |
dither0 |
| |
+--------------+--------------+
v
dsi0 DSI host, and video mode timing
| generator once the panel is up
v
mipi d-phy
|
v
dsi panel ---> backlight
mutex0 : hardware SOF synchronization across the pipeline
mmsys : routing muxes (MOUT/SEL_IN/SOUT) between the blocks above
larb0 : SMI local arbiter gating the overlay's access to DRAM
The MT8366 drives the panel straight out of rdma0, without the colour
pipeline, which the per-compatible driver data selects.
The series adds the smi_common support and the larb port control to the
SMI driver, the pipeline components (overlay, rdma and the colour
blocks), the mmsys routing and the mutex glue, the DSI host itself
(UCLASS_VIDEO), and the configs enabling the pipeline on the Genio 350
and Genio 360 EVKs.
[1]:
https://lore.kernel.org/u-boot/[email protected]/
[2]:
https://lore.kernel.org/u-boot/[email protected]/
[3]:
https://lore.kernel.org/u-boot/20260925-mt8365-add-mulimedia-clock-driver-v1-1-5fbb0305e...@baylibre.com/
[4]:
https://lore.kernel.org/u-boot/[email protected]/
[5]:
https://lore.kernel.org/u-boot/20260915-mt8365-add-phy-mtk-mipi-dsi-driver-v1-0-83707ed52...@baylibre.com/
[6]:
https://lore.kernel.org/u-boot/20260806-add_mipi_dsi_write_seq_helper_macros-v1-0-6b533788d...@baylibre.com/
[7]:
https://lore.kernel.org/u-boot/20260819-add-panel-startek-kd070fhfid015-v2-1-0bdb6c682...@baylibre.com/
[8]:
https://lore.kernel.org/u-boot/20260925-add-genio-510-and-genio-700-hdmi-v6-0-29e626b21...@baylibre.com/
Signed-off-by: Julien Stephan <[email protected]>
---
Julien Stephan (13):
memory: mediatek: mtk-smi: support smi_common and the larb ports
video: mediatek: add ovl component
video: mediatek: add disp rdma component
video: mediatek: add color component
video: mediatek: add ccorr component
video: mediatek: add aal component
video: mediatek: add gamma component
video: mediatek: add dither component
video: mediatek: add ddp component
video: mediatek: mtk_disp_mutex: add the DSI pipeline
video: mediatek: add dsi driver
configs: mediatek: mt8365_evk: enable dsi pipeline
configs: mediatek: mt8366_genio_360_evk: enable dsi pipeline
configs/mt8365_evk_defconfig | 8 +
configs/mt8366_genio_360_evk_defconfig | 7 +
drivers/memory/Kconfig | 1 +
drivers/memory/mtk-smi.c | 223 +++++-
drivers/video/mediatek/Kconfig | 32 +
drivers/video/mediatek/Makefile | 19 +-
drivers/video/mediatek/mtk_ddp.c | 130 ++++
drivers/video/mediatek/mtk_ddp.h | 22 +
drivers/video/mediatek/mtk_disp_aal.c | 54 ++
drivers/video/mediatek/mtk_disp_aal.h | 31 +
drivers/video/mediatek/mtk_disp_ccorr.c | 55 ++
drivers/video/mediatek/mtk_disp_ccorr.h | 31 +
drivers/video/mediatek/mtk_disp_color.c | 50 ++
drivers/video/mediatek/mtk_disp_color.h | 31 +
drivers/video/mediatek/mtk_disp_comp.c | 4 +-
drivers/video/mediatek/mtk_disp_comp.h | 13 +-
drivers/video/mediatek/mtk_disp_dither.c | 89 +++
drivers/video/mediatek/mtk_disp_dither.h | 32 +
drivers/video/mediatek/mtk_disp_gamma.c | 51 ++
drivers/video/mediatek/mtk_disp_gamma.h | 31 +
drivers/video/mediatek/mtk_disp_mutex.c | 120 ++-
drivers/video/mediatek/mtk_disp_mutex.h | 9 +
drivers/video/mediatek/mtk_disp_ovl.c | 253 +++++++
drivers/video/mediatek/mtk_disp_ovl.h | 45 ++
drivers/video/mediatek/mtk_disp_rdma.c | 154 ++++
drivers/video/mediatek/mtk_disp_rdma.h | 30 +
drivers/video/mediatek/mtk_dsi.c | 1220 ++++++++++++++++++++++++++++++
include/mtk_smi.h | 19 +-
28 files changed, 2735 insertions(+), 29 deletions(-)
---
base-commit: 677a768c91b2baaefdf09633d1fdb5c9f758674f
change-id: 20260918-mt8365-mt8366-add-dsi-support-4f0e6cfd7032
prerequisite-message-id:
<[email protected]>
prerequisite-patch-id: 71076a51cdbb0a378913db95aa9ec892aa114510
prerequisite-patch-id: f3c5dac3ef2faa4c107f3972c343798f2890edbd
prerequisite-patch-id: 10d8a4c6afb5d2038385b46eedf6fbff2ff522ce
prerequisite-patch-id: a35f239e99aa1e874cd33547e40a6189f629f2db
prerequisite-message-id:
<[email protected]>
prerequisite-patch-id: f7d20fd912a63ecd5f74bf715b9440dc51943b20
prerequisite-patch-id: b5807d4ac0a15d0f945c09b4635f7c56b3b7930d
prerequisite-patch-id: 949d2176be96c2c32517c3a76422c5f30bb647a0
prerequisite-patch-id: 1dfdabc642d685aec02e163eaaaf316f013f27cb
prerequisite-patch-id: 01db7b89d970b31f8b7f300182c177ef182e258e
prerequisite-patch-id: e23bb502e727a57c7a2da50c358c43031a0362e5
prerequisite-patch-id: f603047a5fe691eb4768638b1dd2c860fcc1093b
prerequisite-patch-id: cc0884d959385c6eda0b1584b9e76d66be401905
prerequisite-patch-id: cb3934029d3adf3d1c67fa93284229476b589e65
prerequisite-patch-id: 4851327632c9d0e57fa8220b619f2f8da63ab014
prerequisite-patch-id: 818bc3d5cf951c4dd6740a681503c29ca89169c2
prerequisite-message-id:
<20260925-mt8365-add-mulimedia-clock-driver-v1-1-5fbb0305e...@baylibre.com>
prerequisite-patch-id: 1a9b3e76a306f0f2a31a4af34439f1203bb6f66c
prerequisite-message-id:
<[email protected]>
prerequisite-patch-id: b507a239269358ce28fd861bfbe83a7e2d37fa4b
prerequisite-patch-id: 3ddafe994065cb677b83cfbc641dd493406c5ebb
prerequisite-patch-id: 6c10fafe32155e48413c3488b0e6ee490c6749ae
prerequisite-message-id:
<20260915-mt8365-add-phy-mtk-mipi-dsi-driver-v1-0-83707ed52...@baylibre.com>
prerequisite-patch-id: 35dc9ab519c2e14dbbe2b154bce4e6507e479aa9
prerequisite-patch-id: fc28319e86784585d682ceabba2b6e02e490f8fe
prerequisite-patch-id: 231ff3bc35bd0836302ca9084e7221f29673729e
prerequisite-message-id:
<20260806-add_mipi_dsi_write_seq_helper_macros-v1-0-6b533788d...@baylibre.com>
prerequisite-patch-id: cf35ac4802976971af68bd0ce1dc0ab872fdb661
prerequisite-patch-id: 9f6aca2bfde84a5d84329b77b3b9af8898b18e4a
prerequisite-patch-id: e7bb7ee54b88b6d6e00f74fe84b1c81d00957051
prerequisite-patch-id: d4a530120b1a93d68e4b17c6e1fcf2878e784454
prerequisite-patch-id: 18b1bbeab6808decceaf5117b3e999baf4495e1d
prerequisite-patch-id: d50e7e28a399c303226ff08c78e60749930a7243
prerequisite-message-id:
<20260819-add-panel-startek-kd070fhfid015-v2-1-0bdb6c682...@baylibre.com>
prerequisite-patch-id: 51445ab9f18ba145a34b2b610d26110a22fcb5b7
prerequisite-message-id:
<20260925-add-genio-510-and-genio-700-hdmi-v6-0-29e626b21...@baylibre.com>
prerequisite-patch-id: 35fb945433e1734704a4cb25ea288d7b5caffb08
prerequisite-patch-id: 348b3295a242695dd16c2527ce8667f57d0fff0b
prerequisite-patch-id: a223f40f31425ce8e432fd0e3260ee88613abcba
prerequisite-patch-id: 38180d82dd86189cfbc33b5cbd324875a687376f
prerequisite-patch-id: 0e2d6678db7887b43b6ffdaa9d4ed24fbc719036
prerequisite-patch-id: 5eb0e3c8d9b298f8ec4435c53743e700be18f5d1
prerequisite-patch-id: da04e31cc822013abf83eb11e99c96bde6c80789
prerequisite-patch-id: ec4a63c80dbeccf5856717bc5e9f8f68ce24aaec
prerequisite-patch-id: dd32ef13b415d318e99dfb82804c2023b215e461
prerequisite-patch-id: 97961b61667804b5e8b4d27554d0eea19f1a7011
prerequisite-patch-id: 5bab7633cfd540d9ac842a8e27549fb9d1b8582e
prerequisite-patch-id: b0a14d18708d59e8cbddbb2c1c29798cae70500e
Best regards,
--
Julien Stephan <[email protected]>