[PATCH 0/6] drm/meson: add support for AXG & MIPI-DSI

From: Neil Armstrong
Date: Mon Sep 07 2020 - 04:19:03 EST


The Amlogic AXG SoC family has a downgraded VPU with the following
changes :
- Only a single OSD plane, no overlay video plane
- The primary plane doesn't support HW scaling
- The pixels are read directly from DDR without any Canvas module
- Doesn't support HDMI or CVBS
- Ouputs only with ENCL encoder to a DPI-to-DSI Synopsys DW-MIPI-DSI transceiver

The Amlogic AXg SoCs embeds a Synopsys DW-MIPI-DSI transceiver (ver 1.21a), with a custom
glue managing the IP resets, clock and data input similar to the DW-HDMI Glue on other
Amlogic SoCs.

This adds support for the Glue managing the transceiver, mimicing the init flow provided
by Amlogic to setup the ENCl encoder, the glue, the transceiver, the digital D-PHY and the
Analog PHY in the proper way.

The DW-MIPI-DSI transceiver + D-PHY are directly clocked by the VCLK2 clock, which pixel clock
is derived and feeds the ENCL encoder and the VIU pixel reader.

An optional "MEAS" clock can be enabled to measure the delay between each vsync feeding the
DW-MIPI-DSI transceiver.

Neil Armstrong (6):
dt-bindings: display: amlogic,meson-vpu: add bindings for VPU found in
AXG SoCs
dt-bindings: display: add Amlogic MIPI DSI Host Controller bindings
drm/meson: add support for VPU found in AXG SoCs
drm/meson: venc: add ENCL encoder setup for MIPI-DSI output
drm/meson: remove useless recursive components matching
drm/meson: add support for MIPI-DSI transceiver

.../display/amlogic,meson-dw-mipi-dsi.yaml | 115 ++++
.../bindings/display/amlogic,meson-vpu.yaml | 36 +-
drivers/gpu/drm/meson/Kconfig | 7 +
drivers/gpu/drm/meson/Makefile | 1 +
drivers/gpu/drm/meson/meson_crtc.c | 8 +-
drivers/gpu/drm/meson/meson_drv.c | 163 ++---
drivers/gpu/drm/meson/meson_drv.h | 10 +-
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c | 562 ++++++++++++++++++
drivers/gpu/drm/meson/meson_plane.c | 74 ++-
drivers/gpu/drm/meson/meson_registers.h | 1 +
drivers/gpu/drm/meson/meson_venc.c | 230 ++++++-
drivers/gpu/drm/meson/meson_venc.h | 6 +
drivers/gpu/drm/meson/meson_viu.c | 50 +-
drivers/gpu/drm/meson/meson_vpp.c | 6 +-
drivers/gpu/drm/meson/meson_vpp.h | 2 +
15 files changed, 1176 insertions(+), 95 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/amlogic,meson-dw-mipi-dsi.yaml
create mode 100644 drivers/gpu/drm/meson/meson_dw_mipi_dsi.c

--
2.22.0