mbox series

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

Message ID 20200907081825.1654-1-narmstrong@baylibre.com (mailing list archive)
Headers show
Series drm/meson: add support for AXG & MIPI-DSI | expand

Message

Neil Armstrong Sept. 7, 2020, 8:18 a.m. UTC
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