devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/39] Add i.MX95 DPU/DSI/LVDS support
@ 2025-10-11 16:51 Marek Vasut
  2025-10-11 16:51 ` [PATCH 01/39] dt-bindings: display: imx: Document i.MX95 Display Controller DomainBlend Marek Vasut
                   ` (40 more replies)
  0 siblings, 41 replies; 113+ messages in thread
From: Marek Vasut @ 2025-10-11 16:51 UTC (permalink / raw)
  To: dri-devel
  Cc: Marek Vasut, Abel Vesa, Conor Dooley, Fabio Estevam,
	Krzysztof Kozlowski, Laurent Pinchart, Liu Ying, Lucas Stach,
	Peng Fan, Pengutronix Kernel Team, Rob Herring, Shawn Guo,
	Thomas Zimmermann, devicetree, imx, linux-arm-kernel, linux-clk

This large series adds support for the i.MX95 display pipeline, including
DPU, DSI and LVDS support. Most of the components extend existin drivers,
DPU is added into DC driver, DSI into iMX93 DSI driver, LVDS into iMX8MP
LDB. Pixel link and pixel interleaver drivers are reworked to work as two
independent channels, since there seems to be no dependency between their
two channels. The i.MX95 DTSI changes are also included.

Since the DPU chapter is missing from the i.MX95 RM, this is based on the
NXP downstream kernel fork code and there might be issues.

Majority of this series are DPU patches on top of the DC driver, I tried
to keep them separate and easy to review. Later part adds LVDS and DSI
support, this can be split into separate series.

Both DSI-to-HDMI path using LT8912 bridge and LVDS single-lane with Logic
Techno LT170410-2WHC panel were tested on Toradex i.MX95 Verdin EVK v1.2 .

Liu Ying (2):
  drm/bridge: imx: Add NXP i.MX95 pixel interleaver support
  drm/bridge: imx: Add NXP i.MX95 pixel link support

Marek Vasut (36):
  dt-bindings: display: imx: Document i.MX95 Display Controller
    DomainBlend
  drm/imx: Add i.MX95 Display Controller DomainBlend
  dt-bindings: display: imx: Document i.MX95 Display Controller
    processing units
  drm/imx: dc: Use bulk clock
  drm/imx: dc: Rework dc_subdev_get_id() to drop ARRAY_SIZE() use
  drm/imx: dc: Rename i.MX8QXP specific Link IDs
  drm/imx: dc: cf: Pass struct dc_subdev_info via OF match data
  drm/imx: dc: de: Pass struct dc_de_subdev_match_data via OF match data
  drm/imx: dc: ed: Rework dc_ed_pec_src_sel() to drop ARRAY_SIZE() use
  drm/imx: dc: ed: Pass struct dc_ed_subdev_match_data via OF match data
  drm/imx: dc: fg: Parametrize register access
  drm/imx: dc: ed: Pass struct dc_fg_subdev_match_data via OF match data
  drm/imx: dc: fu: Describe remaining register offsets
  drm/imx: dc: fu: Inline FRAC_OFFSET into FetchLayer and FetchWrap
  drm/imx: dc: fu: Pass struct dc_fu_subdev_match_data via OF match data
  drm/imx: dc: lb: Pass struct dc_lb_subdev_match_data via OF match data
  drm/imx: dc: tc: Pass struct dc_tc_subdev_match_data via OF match data
  drm/imx: dc: ic: Pass struct dc_ic_subdev_match_data via OF match data
  drm/imx: dc: ic: Use DT node as interrupt controller name
  drm/imx: dc: Configure display CSR clock feed select
  drm/imx: dc: crtc: Do not check disabled CRTCs
  drm/imx: dc: Keep FU unit running on i.MX95
  drm/imx: dc: Add OF match data for i.MX95
  drm/imx: Add more RGB swizzling options
  dt-bindings: display: bridge: Document NXP i.MX95 pixel interleaver
    support
  dt-bindings: display: bridge: Document NXP i.MX95 pixel link support
  dt-bindings: display: bridge: Document Freescale i.MX95 MIPI DSI
  drm/bridge: imx93-mipi-dsi: Add i.MX95 PLL initialization
  dt-bindings: clock: Split support for i.MX95 LVDS CSR
  dt-bindings: display: bridge: Document i.MX95 LVDS display bridge
    binding
  dt-bindings: display: bridge: ldb: Add an i.MX95 entry
  drm/bridge: fsl-ldb: Parse register offsets from DT
  drm/bridge: fsl-ldb: Add i.MX95 support
  dt-bindings: interrupt-controller: fsl,irqsteer: Add i.MX95 support
  dt-bindings: clock: support i.MX95 Display Stream CSR module
  arm64: dts: imx95: Describe display pipeline

Sandor Yu (1):
  drm: bridge: imx: Add i.MX95 LVDS Display Bridge (LDB) driver

 .../bindings/clock/nxp,imx95-blk-ctl.yaml     |   1 -
 .../clock/nxp,imx95-lvds-blk-ctl.yaml         |  80 ++
 .../display/bridge/fsl,imx93-mipi-dsi.yaml    |  48 +-
 .../display/bridge/fsl,imx95-lvds.yaml        | 140 ++++
 .../bridge/fsl,imx95-pixel-interleaver.yaml   |  85 +++
 .../display/bridge/fsl,imx95-pixel-link.yaml  | 101 +++
 .../bindings/display/bridge/fsl,ldb.yaml      |   2 +
 .../imx/fsl,imx8qxp-dc-constframe.yaml        |   4 +-
 .../imx/fsl,imx8qxp-dc-display-engine.yaml    |  45 +-
 .../display/imx/fsl,imx8qxp-dc-extdst.yaml    |   4 +-
 .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml |   1 +
 .../display/imx/fsl,imx8qxp-dc-framegen.yaml  |  13 +-
 .../imx/fsl,imx8qxp-dc-layerblend.yaml        |   4 +-
 .../imx/fsl,imx8qxp-dc-pixel-engine.yaml      |  52 +-
 .../display/imx/fsl,imx8qxp-dc-tcon.yaml      |   5 +-
 .../bindings/display/imx/fsl,imx8qxp-dc.yaml  |  53 +-
 .../display/imx/fsl,imx95-dc-domainblend.yaml |  32 +
 .../imx/nxp,imx95-display-stream-csr.yaml     |  41 +
 .../interrupt-controller/fsl,irqsteer.yaml    |   2 +
 arch/arm64/boot/dts/freescale/imx95.dtsi      | 710 ++++++++++++++++++
 drivers/gpu/drm/bridge/fsl-ldb.c              |  65 +-
 drivers/gpu/drm/bridge/imx/Kconfig            |  28 +
 drivers/gpu/drm/bridge/imx/Makefile           |   3 +
 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h   |   2 +
 drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c   | 612 ++++++++++++++-
 drivers/gpu/drm/bridge/imx/imx95-ldb.c        | 470 ++++++++++++
 .../drm/bridge/imx/imx95-pixel-interleaver.c  | 217 ++++++
 drivers/gpu/drm/bridge/imx/imx95-pixel-link.c | 184 +++++
 drivers/gpu/drm/imx/dc/Kconfig                |   4 +-
 drivers/gpu/drm/imx/dc/Makefile               |   2 +-
 drivers/gpu/drm/imx/dc/dc-cf.c                |  41 +-
 drivers/gpu/drm/imx/dc/dc-crtc.c              |   6 +
 drivers/gpu/drm/imx/dc/dc-db.c                | 227 ++++++
 drivers/gpu/drm/imx/dc/dc-de.c                |  83 +-
 drivers/gpu/drm/imx/dc/dc-de.h                |  14 +
 drivers/gpu/drm/imx/dc/dc-drv.c               |  45 +-
 drivers/gpu/drm/imx/dc/dc-drv.h               |  11 +-
 drivers/gpu/drm/imx/dc/dc-ed.c                |  67 +-
 drivers/gpu/drm/imx/dc/dc-fg.c                | 157 ++--
 drivers/gpu/drm/imx/dc/dc-fl.c                | 145 +++-
 drivers/gpu/drm/imx/dc/dc-fu.c                |  46 +-
 drivers/gpu/drm/imx/dc/dc-fu.h                |   7 +-
 drivers/gpu/drm/imx/dc/dc-fw.c                |  54 +-
 drivers/gpu/drm/imx/dc/dc-ic.c                | 192 +++--
 drivers/gpu/drm/imx/dc/dc-kms.h               |   6 +
 drivers/gpu/drm/imx/dc/dc-lb.c                | 109 ++-
 drivers/gpu/drm/imx/dc/dc-pe.c                |  12 +-
 drivers/gpu/drm/imx/dc/dc-pe.h                |  41 +-
 drivers/gpu/drm/imx/dc/dc-plane.c             |  18 +-
 drivers/gpu/drm/imx/dc/dc-tc.c                |  55 +-
 50 files changed, 4000 insertions(+), 346 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/nxp,imx95-lvds-blk-ctl.yaml
 create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx95-lvds.yaml
 create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx95-pixel-interleaver.yaml
 create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx95-pixel-link.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx95-dc-domainblend.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx95-display-stream-csr.yaml
 create mode 100644 drivers/gpu/drm/bridge/imx/imx95-ldb.c
 create mode 100644 drivers/gpu/drm/bridge/imx/imx95-pixel-interleaver.c
 create mode 100644 drivers/gpu/drm/bridge/imx/imx95-pixel-link.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-db.c

---
Cc: Abel Vesa <abelvesa@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Liu Ying <victor.liu@nxp.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: devicetree@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-clk@vger.kernel.org

-- 
2.51.0


^ permalink raw reply	[flat|nested] 113+ messages in thread

end of thread, other threads:[~2025-10-21  6:52 UTC | newest]

Thread overview: 113+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-11 16:51 [PATCH 00/39] Add i.MX95 DPU/DSI/LVDS support Marek Vasut
2025-10-11 16:51 ` [PATCH 01/39] dt-bindings: display: imx: Document i.MX95 Display Controller DomainBlend Marek Vasut
2025-10-15 13:24   ` Rob Herring
2025-10-16  2:07     ` Liu Ying
2025-10-17 15:15       ` Marek Vasut
2025-10-18  6:09         ` Ying Liu
2025-10-21  6:52       ` Krzysztof Kozlowski
2025-10-11 16:51 ` [PATCH 02/39] drm/imx: Add " Marek Vasut
2025-10-13 16:38   ` Frank Li
2025-10-14 11:50     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 03/39] dt-bindings: display: imx: Document i.MX95 Display Controller processing units Marek Vasut
2025-10-13 16:49   ` Frank Li
2025-10-14 11:52     ` Marek Vasut
2025-10-15  8:59       ` Liu Ying
2025-10-15 10:19         ` Marek Vasut
2025-10-16  2:28           ` Liu Ying
2025-10-16  2:58             ` Liu Ying
2025-10-17 15:18             ` Marek Vasut
2025-10-18  5:44               ` Ying Liu
2025-10-11 16:51 ` [PATCH 04/39] drm/imx: dc: Use bulk clock Marek Vasut
2025-10-13 16:54   ` Frank Li
2025-10-14 12:02     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 05/39] drm/imx: dc: Rework dc_subdev_get_id() to drop ARRAY_SIZE() use Marek Vasut
2025-10-13 16:56   ` Frank Li
2025-10-14 14:03     ` Marek Vasut
2025-10-14 15:11       ` Frank Li
2025-10-14 21:11         ` Marek Vasut
2025-10-15  9:14           ` Liu Ying
2025-10-15 14:31             ` Frank Li
2025-10-16  2:50               ` Liu Ying
2025-10-11 16:51 ` [PATCH 06/39] drm/imx: dc: Rename i.MX8QXP specific Link IDs Marek Vasut
2025-10-13 16:58   ` Frank Li
2025-10-11 16:51 ` [PATCH 07/39] drm/imx: dc: cf: Pass struct dc_subdev_info via OF match data Marek Vasut
2025-10-13 17:01   ` Frank Li
2025-10-11 16:51 ` [PATCH 08/39] drm/imx: dc: de: Pass struct dc_de_subdev_match_data " Marek Vasut
2025-10-13 17:05   ` Frank Li
2025-10-11 16:51 ` [PATCH 09/39] drm/imx: dc: ed: Rework dc_ed_pec_src_sel() to drop ARRAY_SIZE() use Marek Vasut
2025-10-13 18:24   ` Frank Li
2025-10-11 16:51 ` [PATCH 10/39] drm/imx: dc: ed: Pass struct dc_ed_subdev_match_data via OF match data Marek Vasut
2025-10-13 18:26   ` Frank Li
2025-10-11 16:51 ` [PATCH 11/39] drm/imx: dc: fg: Parametrize register access Marek Vasut
2025-10-13 18:29   ` Frank Li
2025-10-11 16:51 ` [PATCH 12/39] drm/imx: dc: ed: Pass struct dc_fg_subdev_match_data via OF match data Marek Vasut
2025-10-13 18:31   ` Frank Li
2025-10-11 16:51 ` [PATCH 13/39] drm/imx: dc: fu: Describe remaining register offsets Marek Vasut
2025-10-13 18:34   ` Frank Li
2025-10-11 16:51 ` [PATCH 14/39] drm/imx: dc: fu: Inline FRAC_OFFSET into FetchLayer and FetchWrap Marek Vasut
2025-10-13 18:39   ` Frank Li
2025-10-11 16:51 ` [PATCH 15/39] drm/imx: dc: fu: Pass struct dc_fu_subdev_match_data via OF match data Marek Vasut
2025-10-13 18:43   ` Frank Li
2025-10-11 16:51 ` [PATCH 16/39] drm/imx: dc: lb: Pass struct dc_lb_subdev_match_data " Marek Vasut
2025-10-13 18:45   ` Frank Li
2025-10-11 16:51 ` [PATCH 17/39] drm/imx: dc: tc: Pass struct dc_tc_subdev_match_data " Marek Vasut
2025-10-11 16:51 ` [PATCH 18/39] drm/imx: dc: ic: Pass struct dc_ic_subdev_match_data " Marek Vasut
2025-10-11 16:51 ` [PATCH 19/39] drm/imx: dc: ic: Use DT node as interrupt controller name Marek Vasut
2025-10-11 16:51 ` [PATCH 20/39] drm/imx: dc: Configure display CSR clock feed select Marek Vasut
2025-10-13 18:48   ` Frank Li
2025-10-17 15:20     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 21/39] drm/imx: dc: crtc: Do not check disabled CRTCs Marek Vasut
2025-10-13 18:50   ` Frank Li
2025-10-14 21:41     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 22/39] drm/imx: dc: Keep FU unit running on i.MX95 Marek Vasut
2025-10-13 18:52   ` Frank Li
2025-10-11 16:51 ` [PATCH 23/39] drm/imx: dc: Add OF match data for i.MX95 Marek Vasut
2025-10-13 18:54   ` Frank Li
2025-10-11 16:51 ` [PATCH 24/39] drm/imx: Add more RGB swizzling options Marek Vasut
2025-10-11 16:51 ` [PATCH 25/39] dt-bindings: display: bridge: Document NXP i.MX95 pixel interleaver support Marek Vasut
2025-10-13 18:57   ` Frank Li
2025-10-17 14:55     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 26/39] drm/bridge: imx: Add " Marek Vasut
2025-10-13 19:02   ` Frank Li
2025-10-11 16:51 ` [PATCH 27/39] dt-bindings: display: bridge: Document NXP i.MX95 pixel link support Marek Vasut
2025-10-13 19:08   ` Frank Li
2025-10-17 15:01     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 28/39] drm/bridge: imx: Add " Marek Vasut
2025-10-13 19:10   ` Frank Li
2025-10-11 16:51 ` [PATCH 29/39] dt-bindings: display: bridge: Document Freescale i.MX95 MIPI DSI Marek Vasut
2025-10-13 19:13   ` Frank Li
2025-10-17 15:37     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 30/39] drm/bridge: imx93-mipi-dsi: Add i.MX95 PLL initialization Marek Vasut
2025-10-11 16:51 ` [PATCH 31/39] dt-bindings: clock: Split support for i.MX95 LVDS CSR Marek Vasut
2025-10-13 19:17   ` Frank Li
2025-10-17 15:49     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 32/39] dt-bindings: display: bridge: Document i.MX95 LVDS display bridge binding Marek Vasut
2025-10-13 19:20   ` Frank Li
2025-10-17 15:04     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 33/39] drm: bridge: imx: Add i.MX95 LVDS Display Bridge (LDB) driver Marek Vasut
2025-10-11 16:51 ` [PATCH 34/39] dt-bindings: display: bridge: ldb: Add an i.MX95 entry Marek Vasut
2025-10-13 11:34   ` Rob Herring (Arm)
2025-10-11 16:51 ` [PATCH 35/39] drm/bridge: fsl-ldb: Parse register offsets from DT Marek Vasut
2025-10-13 19:23   ` Frank Li
2025-10-17 15:39     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 36/39] drm/bridge: fsl-ldb: Add i.MX95 support Marek Vasut
2025-10-13 19:24   ` Frank Li
2025-10-11 16:51 ` [PATCH 37/39] dt-bindings: interrupt-controller: fsl,irqsteer: " Marek Vasut
2025-10-13 19:25   ` Frank Li
2025-10-15 13:31   ` Rob Herring (Arm)
2025-10-11 16:51 ` [PATCH 38/39] dt-bindings: clock: support i.MX95 Display Stream CSR module Marek Vasut
2025-10-13 19:26   ` Frank Li
2025-10-17 15:05     ` Marek Vasut
2025-10-15 13:33   ` Rob Herring
2025-10-17 15:08     ` Marek Vasut
2025-10-11 16:51 ` [PATCH 39/39] arm64: dts: imx95: Describe display pipeline Marek Vasut
2025-10-14  8:51 ` [PATCH 00/39] Add i.MX95 DPU/DSI/LVDS support Liu Ying
2025-10-14 21:55   ` Marek Vasut
2025-10-15 10:00     ` Liu Ying
2025-10-15 16:18       ` Marek Vasut
2025-10-20  2:15         ` Ying Liu
2025-10-14  9:13 ` Liu Ying
2025-10-14 22:09   ` Marek Vasut
2025-10-15 10:09     ` Liu Ying
2025-10-17 15:54       ` Marek Vasut
2025-10-20  2:35         ` Liu Ying

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).