Documentation / devicetree / bindings / display / renesas,rzg2l-du.yaml


Based on kernel version 6.15. Page generated on 2025-05-29 09:08 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/renesas,rzg2l-du.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas RZ/G2L Display Unit (DU)

maintainers:
  - Biju Das <biju.das.jz@bp.renesas.com>
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

description: |
  These DT bindings describe the Display Unit embedded in the Renesas RZ/G2L
  and RZ/V2L SoCs.

properties:
  compatible:
    oneOf:
      - enum:
          - renesas,r9a07g043u-du # RZ/G2UL
          - renesas,r9a07g044-du # RZ/G2{L,LC}
      - items:
          - enum:
              - renesas,r9a07g054-du    # RZ/V2L
          - const: renesas,r9a07g044-du # RZ/G2L fallback

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Main clock
      - description: Register access clock
      - description: Video clock

  clock-names:
    items:
      - const: aclk
      - const: pclk
      - const: vclk

  resets:
    maxItems: 1

  power-domains:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: |
      The connections to the DU output video ports are modeled using the OF
      graph bindings. The number of ports and their assignment are
      model-dependent. Each port shall have a single endpoint.

    patternProperties:
      "^port@[0-1]$":
        $ref: /schemas/graph.yaml#/properties/port
        unevaluatedProperties: false

    unevaluatedProperties: false

  renesas,vsps:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      items:
        - description: phandle to VSP instance that serves the DU channel
        - description: Channel index identifying the LIF instance in that VSP
    description:
      A list of phandle and channel index tuples to the VSPs that handle the
      memory interfaces for the DU channels.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - resets
  - power-domains
  - ports
  - renesas,vsps

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a07g043u-du
    then:
      properties:
        ports:
          properties:
            port@0:
              description: DPI

          required:
            - port@0
    else:
      properties:
        ports:
          properties:
            port@0:
              description: DSI
            port@1:
              description: DPI

          required:
            - port@0
            - port@1

examples:
  # RZ/G2L DU
  - |
    #include <dt-bindings/clock/r9a07g044-cpg.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    display@10890000 {
        compatible = "renesas,r9a07g044-du";
        reg = <0x10890000 0x10000>;
        interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD R9A07G044_LCDC_CLK_A>,
                 <&cpg CPG_MOD R9A07G044_LCDC_CLK_P>,
                 <&cpg CPG_MOD R9A07G044_LCDC_CLK_D>;
        clock-names = "aclk", "pclk", "vclk";
        resets = <&cpg R9A07G044_LCDC_RESET_N>;
        power-domains = <&cpg>;
 
        renesas,vsps = <&vspd0 0>;
 
        ports {
            #address-cells = <1>;
            #size-cells = <0>;
 
            port@0 {
                reg = <0>;
                endpoint {
                    remote-endpoint = <&dsi0_in>;
                };
            };
            port@1 {
                reg = <1>;
            };
        };
    };

...