xref: /linux/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/mediatek/mediatek,dpi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek DPI and DP_INTF Controller
8
9maintainers:
10  - CK Hu <ck.hu@mediatek.com>
11  - Jitao shi <jitao.shi@mediatek.com>
12
13description: |
14  The MediaTek DPI and DP_INTF function blocks are a sink of the display
15  subsystem and provides 8-bit RGB/YUV444 or 8/10/10-bit YUV422 pixel data on a
16  parallel output bus.
17
18properties:
19  compatible:
20    oneOf:
21      - enum:
22          - mediatek,mt2701-dpi
23          - mediatek,mt7623-dpi
24          - mediatek,mt8173-dpi
25          - mediatek,mt8183-dpi
26          - mediatek,mt8186-dpi
27          - mediatek,mt8188-dp-intf
28          - mediatek,mt8192-dpi
29          - mediatek,mt8195-dp-intf
30      - items:
31          - enum:
32              - mediatek,mt6795-dpi
33          - const: mediatek,mt8183-dpi
34      - items:
35          - enum:
36              - mediatek,mt8365-dpi
37          - const: mediatek,mt8192-dpi
38
39  reg:
40    maxItems: 1
41
42  interrupts:
43    maxItems: 1
44
45  clocks:
46    items:
47      - description: Pixel Clock
48      - description: Engine Clock
49      - description: DPI PLL
50
51  clock-names:
52    items:
53      - const: pixel
54      - const: engine
55      - const: pll
56
57  pinctrl-0: true
58  pinctrl-1: true
59
60  pinctrl-names:
61    items:
62      - const: default
63      - const: sleep
64
65  power-domains:
66    description: |
67      The MediaTek DPI module is typically associated with one of the
68      following multimedia power domains:
69        POWER_DOMAIN_DISPLAY
70        POWER_DOMAIN_VDOSYS
71        POWER_DOMAIN_MM
72      The specific power domain used varies depending on the SoC design.
73
74      It is recommended to explicitly add the appropriate power domain
75      property to the DPI node in the device tree.
76    maxItems: 1
77
78  port:
79    $ref: /schemas/graph.yaml#/properties/port
80    description:
81      Output port node. This port should be connected to the input port of an
82      attached HDMI, LVDS or DisplayPort encoder chip.
83
84  ports:
85    $ref: /schemas/graph.yaml#/properties/ports
86
87    properties:
88      port@0:
89        $ref: /schemas/graph.yaml#/properties/port
90        description: DPI input port
91
92      port@1:
93        $ref: /schemas/graph.yaml#/properties/port
94        description: DPI output to an HDMI, LVDS or DisplayPort encoder input
95
96    required:
97      - port@0
98      - port@1
99
100required:
101  - compatible
102  - reg
103  - interrupts
104  - clocks
105  - clock-names
106
107oneOf:
108  - required:
109      - port
110  - required:
111      - ports
112
113additionalProperties: false
114
115examples:
116  - |
117    #include <dt-bindings/interrupt-controller/arm-gic.h>
118    #include <dt-bindings/clock/mt8173-clk.h>
119
120    dpi: dpi@1401d000 {
121        compatible = "mediatek,mt8173-dpi";
122        reg = <0x1401d000 0x1000>;
123        interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
124        clocks = <&mmsys CLK_MM_DPI_PIXEL>,
125             <&mmsys CLK_MM_DPI_ENGINE>,
126             <&apmixedsys CLK_APMIXED_TVDPLL>;
127        clock-names = "pixel", "engine", "pll";
128        pinctrl-names = "default", "sleep";
129        pinctrl-0 = <&dpi_pin_func>;
130        pinctrl-1 = <&dpi_pin_idle>;
131
132        port {
133            dpi0_out: endpoint {
134                remote-endpoint = <&hdmi0_in>;
135            };
136        };
137    };
138
139...
140