Hi, this is an update to the MT8173 DRM support RFC, now with the connections between display function blocks completely left out of the device tree.
I have included the two patches that add all relevant nodes to the mt8173.dtsi, and two mt8173 clock patches that are needed to support the new clock bindings. So there are a few more patch dependencies now on top of v4.3-rc5. To apply: https://patchwork.kernel.org/patch/6980951/ ("arm64: dts: mt8173: Add subsystem clock controller device nodes"), https://patchwork.kernel.org/patch/6825601/ ("arm64: dts: mt8173: add MT8173 display PWM driver support node"), https://patchwork.kernel.org/patch/7138531/ ("arm64: dts: mediatek: add xHCI & usb phy for mt8173"), https://patchwork.kernel.org/patch/6928651/ ("dts: mt8173: Add iommu/smi nodes for mt8173"), and https://patchwork.kernel.org/patch/6983351/ ("clk: mediatek: Add USB clock support in MT8173 APMIXEDSYS"). And to build, https://patchwork.kernel.org/patch/6914941/ ("iommu: Implement common IOMMU ops for DMA mapping"), https://patchwork.kernel.org/patch/6928621/ ("memory: mediatek: Add SMI driver"), https://patchwork.kernel.org/patch/6928561/ ("dt-bindings: iommu: Add binding for mediatek IOMMU"), https://patchwork.kernel.org/patch/6980911/ ("clk: mediatek: Removed unused dpi_ck clock from MT8173"), https://patchwork.kernel.org/patch/6980981/ ("clk: mediatek: Add __initdata and __init for data and functions"), https://patchwork.kernel.org/patch/6981021/ ("clk: mediatek: Add fixed clocks support for Mediatek SoC."), https://patchwork.kernel.org/patch/6980961/ ("clk: mediatek: Fix rate and dependency of MT8173 clocks"), https://patchwork.kernel.org/patch/6981031/ ("dt-bindings: ARM: Mediatek: Document devicetree bindings for clock controllers"), and https://patchwork.kernel.org/patch/6981041/ ("clk: mediatek: Add subsystem clocks of MT8173"). Changes since v3: - Added device mt8173 dtsi changes - Added clock patches to allow calling clk_set_rate on the dpi0_sel and hdmi_sel muxes, added the hdmi_ref PLL output. - Moved DISP function blocks back out of the group node - Removed intermediate divider and mux clocks from the DPI bindings - Let the DRM driver bind to the mediatek,mt8173-mmsys compatible, find sibling components in the device tree via compatible value, determine component instance from of alias id. - Split the CEC node/driver out of the HDMI bindings/driver, respectively. - Moved hotplug irq handling into the CEC driver, stopped disabling the hotplug irq on hdmi_power_off. - Removed direct apmixedsys register access from the hdmi driver, added a PLL reference clock input to the HDMI PHY. - Dropped DT configurable HDMI min_clock and max_clock - Changed HDMI MMSYS_CONFIG access to syscon/regmap - Changed clock handling of the DPI, HDMI, and HDMI PHY drivers, allowing to drop div and sel clocks from the bindings, and to power down the TVDPLL while HDMI is not in use. - Various fixes Patch 8 still contains a TODO: - The power-domain property should be added to all blocks that are in the MM power domain. I'm not quite sure which those are. All of the nodes in the mmsys region? - The iommus property should be removed from the mmsys node. I have not yet managed to properly attach the drm device to the iommu domain that can be retrieved from the ovl, rdma, and wdma nodes. Those are the only devices connected to the iommu via their local arbiter. regards Philipp CK Hu (5): dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding drm/mediatek: Add DRM Driver for Mediatek SoC MT8173. drm/mediatek: Add DSI sub driver arm64: dts: mt8173: Add display subsystem related nodes arm64: dts: mt8173: Add HDMI related nodes Daniel Kurtz (1): drm/mediatek: Add HDMI support Jie Qiu (2): drm/mediatek: Add DPI sub driver drm/mediatek: enable hdmi output control bit Philipp Zabel (3): dt-bindings: drm/mediatek: Add Mediatek HDMI dts binding clk: mediatek: make dpi0_sel and hdmi_sel not propagate rate changes clk: mediatek: Add hdmi_ref HDMI PHY PLL reference clock output .../bindings/drm/mediatek/mediatek,disp.txt | 182 +++++ .../bindings/drm/mediatek/mediatek,dpi.txt | 35 + .../bindings/drm/mediatek/mediatek,dsi.txt | 53 ++ .../bindings/drm/mediatek/mediatek,hdmi.txt | 127 ++++ arch/arm64/boot/dts/mediatek/mt8173.dtsi | 284 ++++++++ drivers/clk/mediatek/clk-mt8173.c | 9 +- drivers/clk/mediatek/clk-mtk.h | 7 +- drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/mediatek/Kconfig | 22 + drivers/gpu/drm/mediatek/Makefile | 21 + drivers/gpu/drm/mediatek/mtk_cec.c | 252 +++++++ drivers/gpu/drm/mediatek/mtk_cec.h | 25 + drivers/gpu/drm/mediatek/mtk_dpi.c | 683 ++++++++++++++++++ drivers/gpu/drm/mediatek/mtk_dpi.h | 80 +++ drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 228 ++++++ drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 524 ++++++++++++++ drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 84 +++ drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 218 ++++++ drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 39 + drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 409 +++++++++++ drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 86 +++ drivers/gpu/drm/mediatek/mtk_drm_drv.c | 585 +++++++++++++++ drivers/gpu/drm/mediatek/mtk_drm_drv.h | 64 ++ drivers/gpu/drm/mediatek/mtk_drm_fb.c | 151 ++++ drivers/gpu/drm/mediatek/mtk_drm_fb.h | 29 + drivers/gpu/drm/mediatek/mtk_drm_gem.c | 208 ++++++ drivers/gpu/drm/mediatek/mtk_drm_gem.h | 56 ++ drivers/gpu/drm/mediatek/mtk_drm_hdmi_drv.c | 630 ++++++++++++++++ drivers/gpu/drm/mediatek/mtk_drm_plane.c | 175 +++++ drivers/gpu/drm/mediatek/mtk_drm_plane.h | 38 + drivers/gpu/drm/mediatek/mtk_dsi.c | 787 ++++++++++++++++++++ drivers/gpu/drm/mediatek/mtk_dsi.h | 54 ++ drivers/gpu/drm/mediatek/mtk_hdmi.c | 515 ++++++++++++++ drivers/gpu/drm/mediatek/mtk_hdmi.h | 119 ++++ drivers/gpu/drm/mediatek/mtk_hdmi_ddc_drv.c | 362 ++++++++++ drivers/gpu/drm/mediatek/mtk_hdmi_hw.c | 789 +++++++++++++++++++++ drivers/gpu/drm/mediatek/mtk_hdmi_hw.h | 76 ++ drivers/gpu/drm/mediatek/mtk_hdmi_phy.c | 339 +++++++++ drivers/gpu/drm/mediatek/mtk_hdmi_phy.h | 20 + drivers/gpu/drm/mediatek/mtk_hdmi_regs.h | 321 +++++++++ drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 375 ++++++++++ drivers/gpu/drm/mediatek/mtk_mipi_tx.h | 21 + include/drm/mediatek/mtk_hdmi_audio.h | 150 ++++ include/dt-bindings/clock/mt8173-clk.h | 3 +- 45 files changed, 9233 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,disp.txt create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,dpi.txt create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,dsi.txt create mode 100644 Documentation/devicetree/bindings/drm/mediatek/mediatek,hdmi.txt create mode 100644 drivers/gpu/drm/mediatek/Kconfig create mode 100644 drivers/gpu/drm/mediatek/Makefile create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.c create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.h create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi.c create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi.h create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi_regs.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_crtc.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_crtc.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_drv.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_drv.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_fb.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_fb.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_gem.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_gem.h create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_hdmi_drv.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_plane.c create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_plane.h create mode 100644 drivers/gpu/drm/mediatek/mtk_dsi.c create mode 100644 drivers/gpu/drm/mediatek/mtk_dsi.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_ddc_drv.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_hw.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_hw.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_phy.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_phy.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_regs.h create mode 100644 drivers/gpu/drm/mediatek/mtk_mipi_tx.c create mode 100644 drivers/gpu/drm/mediatek/mtk_mipi_tx.h create mode 100644 include/drm/mediatek/mtk_hdmi_audio.h -- 2.6.1