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 MT8365 power domain support [2],
- the MIPI DSI PHY driver [3],
- the MediaTek clock cleanups [4], gate lookup fixes [5], single
clk_ops [6], the MT8365 multimedia clock driver [7] and the rate
propagation [8],
- the display component helpers introduced by the MT8188 HDMI
series [9].
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: the per-compatible DSI data lists the components of each path.
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/20260915-mt8365-add-phy-mtk-mipi-dsi-driver-v1-0-83707ed52...@baylibre.com/
[4]:
https://lore.kernel.org/u-boot/[email protected]/
[5]:
https://lore.kernel.org/u-boot/[email protected]/
[6]:
https://lore.kernel.org/u-boot/[email protected]/
[7]:
https://lore.kernel.org/u-boot/20260925-mt8365-add-mulimedia-clock-driver-v1-1-5fbb0305e...@baylibre.com/
[8]:
https://lore.kernel.org/u-boot/[email protected]/
[9]:
https://lore.kernel.org/u-boot/20261002-add-genio-510-and-genio-700-hdmi-v8-0-2a6de7cf2...@baylibre.com/
Signed-off-by: Julien Stephan <[email protected]>
---
Changes in v2:
- mtk-smi: only ignore -ENODEV/-ENOENT from the smi_common lookup,
document PA in mtk_smi_larb_port_set_pa(), MT8366 larbs reuse the
MT8188 data.
- mutex: no_clk driver data flag instead of ignoring -ENOENT in the
shared probe, mtk_disp_mutex_ovl_dsi_enable() returns an error,
SoC-named helpers.
- ddp: SoC-named mt8365/mt8366_ddp_ovl_to_dsi().
- dsi: per-SoC component path replaces has_color_pipeline, match
"mediatek,mt8365-dsi", .remove() with DM_FLAG_OS_PREPARE instead of
DM_FLAG_LEAVE_PD_ON so Linux can take over, depend on POWER_DOMAIN,
drop mmu_set_region_dcache_behaviour().
- ovl: align the CLRFMT macros.
- Rebased on mediatek-for-next, dependencies updated, HDMI v8 [9].
- Link to v1:
https://patch.msgid.link/20260928-mt8365-mt8366-add-dsi-support-v1-0-212f51b17...@baylibre.com
---
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 | 6 +
configs/mt8366_genio_360_evk_defconfig | 7 +
drivers/memory/mtk-smi.c | 157 +++-
drivers/video/mediatek/Kconfig | 32 +
drivers/video/mediatek/Makefile | 19 +-
drivers/video/mediatek/mtk_ddp.c | 122 +++
drivers/video/mediatek/mtk_ddp.h | 30 +
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 | 1 +
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 | 133 +++-
drivers/video/mediatek/mtk_disp_mutex.h | 11 +
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 | 1184 ++++++++++++++++++++++++++++++
include/mtk_smi.h | 20 +-
27 files changed, 2642 insertions(+), 30 deletions(-)
---
base-commit: ca1c29c01bbd03f89cd86159b2959b4e72d41aa9
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: 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:
<[email protected]>
prerequisite-patch-id: f7d20fd912a63ecd5f74bf715b9440dc51943b20
prerequisite-patch-id: 17573db457a9724fd00a382b6b47041d1e3925b3
prerequisite-patch-id: af5cedd64f7bba7516ad72ed60495245918ba5ea
prerequisite-patch-id: 1dfdabc642d685aec02e163eaaaf316f013f27cb
prerequisite-patch-id: 01db7b89d970b31f8b7f300182c177ef182e258e
prerequisite-patch-id: 2d62bec1fd01c1aaa374796fc331c81c9b86be91
prerequisite-patch-id: f603047a5fe691eb4768638b1dd2c860fcc1093b
prerequisite-patch-id: cc0884d959385c6eda0b1584b9e76d66be401905
prerequisite-patch-id: cb3934029d3adf3d1c67fa93284229476b589e65
prerequisite-patch-id: 4851327632c9d0e57fa8220b619f2f8da63ab014
prerequisite-patch-id: 818bc3d5cf951c4dd6740a681503c29ca89169c2
prerequisite-message-id:
<[email protected]>
prerequisite-patch-id: 424ba22478c88e835e3b472126a4a9c33cb4f374
prerequisite-patch-id: bbc80265dc298757bf4eedc6b947e2a091218d6f
prerequisite-message-id:
<[email protected]>
prerequisite-patch-id: 46b77492636ad6a60e34f290ed8563dcf4438134
prerequisite-patch-id: 70625bfc712fa2d4b9f27b46c18d4dd58940c5fc
prerequisite-patch-id: 647593cda7ed838507a19315dcd2591c526265e4
prerequisite-patch-id: a56141abdc8666de730c913b072ae174af13217b
prerequisite-patch-id: df75ef6ff7531c8cd25ac2258ac3c5c600886bb4
prerequisite-patch-id: 5e1dc7764ded4b0fd5e999bd75a25884a13ccd0e
prerequisite-patch-id: 92d21ec1e2bdbb1b46f1c74a1917408cfaa865d7
prerequisite-patch-id: 55fb54aebf06acdffcaad16b32560473da088e0d
prerequisite-patch-id: 76645ab8a56e3363ef78c65e59a252a3692e7a86
prerequisite-patch-id: d44379cef68a1817282358087bb4103fd6d86bf5
prerequisite-patch-id: 004b1897736569cf060d929c2d47790edf09a742
prerequisite-patch-id: 0dc729831dc5ebf3f6ce3905db5109e7223db713
prerequisite-patch-id: 88a278a3840d5f9b210f58effe6f5b61126cd5f1
prerequisite-patch-id: 393d77072a0bc5d2cafcb672e6a071226422a253
prerequisite-patch-id: 2b0ea0b5f5e178cf0d2af8c307bc1ffe500f5358
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: 5b807933cc535ddc432eaea7ed1f5efe8c7a34c5
prerequisite-patch-id: 7acb67f4a3807195fa0bfe534283d70fb36265ec
prerequisite-patch-id: a52d13988616fb3fb25f0695dea06092d64dc4ce
prerequisite-message-id:
<20261002-add-genio-510-and-genio-700-hdmi-v8-0-2a6de7cf2...@baylibre.com>
prerequisite-patch-id: 35fb945433e1734704a4cb25ea288d7b5caffb08
prerequisite-patch-id: 88f74bb0bdfb848dc9657970c816837a7d96670e
prerequisite-patch-id: ff4ca6bf61537b47fabb2c7eadfddee5452a384c
prerequisite-patch-id: b4b617dbe24dfc605c886bc53b3748b93d6a9108
prerequisite-patch-id: 5308a23bd0349b5b430b674b607308ab042542b2
prerequisite-patch-id: 0f7148972c2508c27367cd50ef045abbb1a0380b
prerequisite-patch-id: da04e31cc822013abf83eb11e99c96bde6c80789
prerequisite-patch-id: 9230f87412a961d207d93c194c26786b88f2328a
prerequisite-patch-id: dd32ef13b415d318e99dfb82804c2023b215e461
prerequisite-patch-id: 97961b61667804b5e8b4d27554d0eea19f1a7011
prerequisite-patch-id: 5f67de67d6e35a6ff0d6e322fe2aa349d9440723
prerequisite-patch-id: b0a14d18708d59e8cbddbb2c1c29798cae70500e
Best regards,
--
Julien Stephan <[email protected]>