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

title: Arm Mali Display Processor (Mali-DP)

maintainers:
  - Liviu Dudau <Liviu.Dudau@arm.com>
  - Andre Przywara <andre.przywara@arm.com>

description:
  The following bindings apply to a family of Display Processors sold as
  licensable IP by ARM Ltd. The bindings describe the Mali DP500, DP550 and
  DP650 processors that offer multiple composition layers, support for
  rotation and scaling output.

properties:
  compatible:
    enum:
      - arm,mali-dp500
      - arm,mali-dp550
      - arm,mali-dp650

  reg:
    maxItems: 1

  interrupts:
    items:
      - description:
          The interrupt used by the Display Engine (DE). Can be shared with
          the interrupt for the Scaling Engine (SE), but it will have to be
          listed individually.
      - description:
          The interrupt used by the Scaling Engine (SE). Can be shared with
          the interrupt for the Display Engine (DE), but it will have to be
          listed individually.

  interrupt-names:
    items:
      - const: DE
      - const: SE

  clock-names:
    items:
      - const: pxlclk
      - const: mclk
      - const: aclk
      - const: pclk

  clocks:
    items:
      - description: the pixel clock feeding the output PLL of the processor
      - description: the main processor clock
      - description: the AXI interface clock
      - description: the APB interface clock

  memory-region:
    maxItems: 1
    description:
      Phandle to a node describing memory to be used for the framebuffer.
      If not present, the framebuffer may be located anywhere in memory.

  arm,malidp-output-port-lines:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Number of output lines/bits for each colour channel.
    items:
      - description: number of output lines for the red channel (R)
      - description: number of output lines for the green channel (G)
      - description: number of output lines for the blue channel (B)

  arm,malidp-arqos-value:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Quality-of-Service value for the display engine FIFOs, to write
      into the RQOS register of the DP500.
      See the ARM Mali-DP500 TRM for details on the encoding.
      If omitted, the RQOS register will not be changed.

  port:
    $ref: /schemas/graph.yaml#/properties/port
    unevaluatedProperties: false
    description:
      Output endpoint of the controller, connecting the LCD panel signals.

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - port
  - arm,malidp-output-port-lines

examples:
  - |
    dp0: malidp@6f200000 {
        compatible = "arm,mali-dp650";
        reg = <0x6f200000 0x20000>;
        memory-region = <&display_reserved>;
        interrupts = <168>, <168>;
        interrupt-names = "DE", "SE";
        clocks = <&oscclk2>, <&fpgaosc0>, <&fpgaosc1>, <&fpgaosc1>;
        clock-names = "pxlclk", "mclk", "aclk", "pclk";
        arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
        arm,malidp-arqos-value = <0xd000d000>;

        port {
            dp0_output: endpoint {
                remote-endpoint = <&tda998x_2_input>;
            };
        };
    };
...
