# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/sprd/sprd,display-subsystem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Unisoc DRM master device

maintainers:
  - Kevin Tang <kevin.tang@unisoc.com>

description: |
  The Unisoc DRM master device is a virtual device needed to list all
  DPU devices or other display interface nodes that comprise the
  graphics subsystem.

  Unisoc's display pipeline have several components as below description,
  multi display controllers and corresponding physical interfaces.
  For different display scenarios, dpu0 and dpu1 maybe binding to different
  encoder.

  E.g:
  dpu0 and dpu1 both binding to DSI for dual mipi-dsi display;
  dpu0 binding to DSI for primary display, and dpu1 binding to DP for external display;

          +-----------------------------------------+
          |                                         |
          |                            +---------+  |
  +----+  |   +----+    +---------+    |DPHY/CPHY|  |   +------+
  |    +----->+dpu0+--->+MIPI|DSI +--->+Combo    +----->+Panel0|
  |AXI |  |   +----+    +---------+    +---------+  |   +------+
  |    |  |                  ^                      |
  |    |  |                  |                      |
  |    |  |      +-----------+                      |
  |    |  |      |                                  |
  |APB |  |   +--+-+    +-----------+    +---+      |   +------+
  |    +----->+dpu1+--->+DisplayPort+--->+PHY+--------->+Panel1|
  |    |  |   +----+    +-----------+    +---+      |   +------+
  +----+  |                                         |
          +-----------------------------------------+

properties:
  compatible:
    const: sprd,display-subsystem

  ports:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      maxItems: 1
    description:
      Should contain a list of phandles pointing to display interface port
      of DPU devices.

required:
  - compatible
  - ports

additionalProperties: false

examples:
  - |
    display-subsystem {
        compatible = "sprd,display-subsystem";
        ports = <&dpu_out>;
    };