Documentation / devicetree / bindings / display / mediatek / mediatek,dpi.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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/mediatek/mediatek,dpi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek DPI and DP_INTF Controller

maintainers:
  - CK Hu <ck.hu@mediatek.com>
  - Jitao shi <jitao.shi@mediatek.com>

description: |
  The MediaTek DPI and DP_INTF function blocks are a sink of the display
  subsystem and provides 8-bit RGB/YUV444 or 8/10/10-bit YUV422 pixel data on a
  parallel output bus.

properties:
  compatible:
    oneOf:
      - enum:
          - mediatek,mt2701-dpi
          - mediatek,mt7623-dpi
          - mediatek,mt8173-dpi
          - mediatek,mt8183-dpi
          - mediatek,mt8186-dpi
          - mediatek,mt8188-dp-intf
          - mediatek,mt8192-dpi
          - mediatek,mt8195-dp-intf
          - mediatek,mt8195-dpi
      - items:
          - enum:
              - mediatek,mt6795-dpi
          - const: mediatek,mt8183-dpi
      - items:
          - enum:
              - mediatek,mt8365-dpi
          - const: mediatek,mt8192-dpi
      - items:
          - enum:
              - mediatek,mt8188-dpi
          - const: mediatek,mt8195-dpi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Pixel Clock
      - description: Engine Clock
      - description: DPI PLL

  clock-names:
    items:
      - const: pixel
      - const: engine
      - const: pll

  pinctrl-0: true
  pinctrl-1: true

  pinctrl-names:
    items:
      - const: default
      - const: sleep

  power-domains:
    description: |
      The MediaTek DPI module is typically associated with one of the
      following multimedia power domains:
        POWER_DOMAIN_DISPLAY
        POWER_DOMAIN_VDOSYS
        POWER_DOMAIN_MM
      The specific power domain used varies depending on the SoC design.
 
      It is recommended to explicitly add the appropriate power domain
      property to the DPI node in the device tree.
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      Output port node. This port should be connected to the input port of an
      attached HDMI, LVDS or DisplayPort encoder chip.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: DPI input port

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: DPI output to an HDMI, LVDS or DisplayPort encoder input

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

oneOf:
  - required:
      - port
  - required:
      - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/mt8173-clk.h>
    #include <dt-bindings/power/mt8173-power.h>
 
    dpi: dpi@1401d000 {
        compatible = "mediatek,mt8173-dpi";
        reg = <0x1401d000 0x1000>;
        interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
        clocks = <&mmsys CLK_MM_DPI_PIXEL>,
             <&mmsys CLK_MM_DPI_ENGINE>,
             <&apmixedsys CLK_APMIXED_TVDPLL>;
        clock-names = "pixel", "engine", "pll";
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&dpi_pin_func>;
        pinctrl-1 = <&dpi_pin_idle>;
 
        port {
            dpi0_out: endpoint {
                remote-endpoint = <&hdmi0_in>;
            };
        };
    };

...