xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/msm/qcom,mdp5.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2cb7aa33aSEmmanuel Vadot%YAML 1.2
3cb7aa33aSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,mdp5.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6cb7aa33aSEmmanuel Vadot
7cb7aa33aSEmmanuel Vadottitle: Qualcomm Adreno/Snapdragon Mobile Display controller (MDP5)
8cb7aa33aSEmmanuel Vadot
9cb7aa33aSEmmanuel Vadotdescription:
10cb7aa33aSEmmanuel Vadot  MDP5 display controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994
11cb7aa33aSEmmanuel Vadot  and MSM8996.
12cb7aa33aSEmmanuel Vadot
13cb7aa33aSEmmanuel Vadotmaintainers:
14cb7aa33aSEmmanuel Vadot  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
15cb7aa33aSEmmanuel Vadot  - Rob Clark <robdclark@gmail.com>
16cb7aa33aSEmmanuel Vadot
17cb7aa33aSEmmanuel Vadotproperties:
18cb7aa33aSEmmanuel Vadot  compatible:
19cb7aa33aSEmmanuel Vadot    oneOf:
20cb7aa33aSEmmanuel Vadot      - const: qcom,mdp5
21cb7aa33aSEmmanuel Vadot        deprecated: true
22cb7aa33aSEmmanuel Vadot      - items:
23cb7aa33aSEmmanuel Vadot          - enum:
24cb7aa33aSEmmanuel Vadot              - qcom,apq8084-mdp5
25f126890aSEmmanuel Vadot              - qcom,msm8226-mdp5
26cb7aa33aSEmmanuel Vadot              - qcom,msm8916-mdp5
27cb7aa33aSEmmanuel Vadot              - qcom,msm8917-mdp5
28*0e8011faSEmmanuel Vadot              - qcom,msm8937-mdp5
29cb7aa33aSEmmanuel Vadot              - qcom,msm8953-mdp5
30cb7aa33aSEmmanuel Vadot              - qcom,msm8974-mdp5
31cb7aa33aSEmmanuel Vadot              - qcom,msm8976-mdp5
32cb7aa33aSEmmanuel Vadot              - qcom,msm8994-mdp5
33cb7aa33aSEmmanuel Vadot              - qcom,msm8996-mdp5
34cb7aa33aSEmmanuel Vadot              - qcom,sdm630-mdp5
35cb7aa33aSEmmanuel Vadot              - qcom,sdm660-mdp5
36cb7aa33aSEmmanuel Vadot          - const: qcom,mdp5
37cb7aa33aSEmmanuel Vadot
38cb7aa33aSEmmanuel Vadot  $nodename:
39cb7aa33aSEmmanuel Vadot    pattern: '^display-controller@[0-9a-f]+$'
40cb7aa33aSEmmanuel Vadot
41cb7aa33aSEmmanuel Vadot  reg:
42cb7aa33aSEmmanuel Vadot    maxItems: 1
43cb7aa33aSEmmanuel Vadot
44cb7aa33aSEmmanuel Vadot  reg-names:
45cb7aa33aSEmmanuel Vadot    items:
46cb7aa33aSEmmanuel Vadot      - const: mdp_phys
47cb7aa33aSEmmanuel Vadot
48cb7aa33aSEmmanuel Vadot  interrupts:
49cb7aa33aSEmmanuel Vadot    maxItems: 1
50cb7aa33aSEmmanuel Vadot
51cb7aa33aSEmmanuel Vadot  clocks:
52cb7aa33aSEmmanuel Vadot    minItems: 4
53cb7aa33aSEmmanuel Vadot    maxItems: 7
54cb7aa33aSEmmanuel Vadot
55cb7aa33aSEmmanuel Vadot  clock-names:
56cb7aa33aSEmmanuel Vadot    oneOf:
57cb7aa33aSEmmanuel Vadot      - minItems: 4
58cb7aa33aSEmmanuel Vadot        items:
59cb7aa33aSEmmanuel Vadot          - const: iface
60cb7aa33aSEmmanuel Vadot          - const: bus
61cb7aa33aSEmmanuel Vadot          - const: core
62cb7aa33aSEmmanuel Vadot          - const: vsync
63cb7aa33aSEmmanuel Vadot          - const: lut
64cb7aa33aSEmmanuel Vadot          - const: tbu
65cb7aa33aSEmmanuel Vadot          - const: tbu_rt
66cb7aa33aSEmmanuel Vadot        # MSM8996 has additional iommu clock
67cb7aa33aSEmmanuel Vadot      - items:
68cb7aa33aSEmmanuel Vadot          - const: iface
69cb7aa33aSEmmanuel Vadot          - const: bus
70cb7aa33aSEmmanuel Vadot          - const: core
71cb7aa33aSEmmanuel Vadot          - const: iommu
72cb7aa33aSEmmanuel Vadot          - const: vsync
73cb7aa33aSEmmanuel Vadot
74cb7aa33aSEmmanuel Vadot  interconnects:
75cb7aa33aSEmmanuel Vadot    minItems: 1
76cb7aa33aSEmmanuel Vadot    items:
77cb7aa33aSEmmanuel Vadot      - description: Interconnect path from mdp0 (or a single mdp) port to the data bus
78cb7aa33aSEmmanuel Vadot      - description: Interconnect path from mdp1 port to the data bus
79cb7aa33aSEmmanuel Vadot      - description: Interconnect path from rotator port to the data bus
80cb7aa33aSEmmanuel Vadot
81cb7aa33aSEmmanuel Vadot  interconnect-names:
82cb7aa33aSEmmanuel Vadot    minItems: 1
83cb7aa33aSEmmanuel Vadot    items:
84cb7aa33aSEmmanuel Vadot      - const: mdp0-mem
85cb7aa33aSEmmanuel Vadot      - const: mdp1-mem
86cb7aa33aSEmmanuel Vadot      - const: rotator-mem
87cb7aa33aSEmmanuel Vadot
88cb7aa33aSEmmanuel Vadot  iommus:
89cb7aa33aSEmmanuel Vadot    items:
90cb7aa33aSEmmanuel Vadot      - description: apps SMMU with the Stream-ID mask for Hard-Fail port0
91cb7aa33aSEmmanuel Vadot
92cb7aa33aSEmmanuel Vadot  power-domains:
93cb7aa33aSEmmanuel Vadot    maxItems: 1
94cb7aa33aSEmmanuel Vadot
95cb7aa33aSEmmanuel Vadot  operating-points-v2: true
96cb7aa33aSEmmanuel Vadot  opp-table:
97cb7aa33aSEmmanuel Vadot    type: object
98cb7aa33aSEmmanuel Vadot
99cb7aa33aSEmmanuel Vadot  ports:
100cb7aa33aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
101cb7aa33aSEmmanuel Vadot    description: >
102cb7aa33aSEmmanuel Vadot      Contains the list of output ports from DPU device. These ports
103cb7aa33aSEmmanuel Vadot      connect to interfaces that are external to the DPU hardware,
104cb7aa33aSEmmanuel Vadot      such as DSI, DP etc. MDP5 devices support up to 4 ports:
105cb7aa33aSEmmanuel Vadot      one or two DSI ports, HDMI and eDP.
106cb7aa33aSEmmanuel Vadot
107cb7aa33aSEmmanuel Vadot    patternProperties:
108cb7aa33aSEmmanuel Vadot      "^port@[0-3]+$":
109cb7aa33aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
110cb7aa33aSEmmanuel Vadot
111cb7aa33aSEmmanuel Vadot    # at least one port is required
112cb7aa33aSEmmanuel Vadot    required:
113cb7aa33aSEmmanuel Vadot      - port@0
114cb7aa33aSEmmanuel Vadot
115cb7aa33aSEmmanuel Vadotrequired:
116cb7aa33aSEmmanuel Vadot  - compatible
117cb7aa33aSEmmanuel Vadot  - reg
118cb7aa33aSEmmanuel Vadot  - reg-names
119cb7aa33aSEmmanuel Vadot  - clocks
120cb7aa33aSEmmanuel Vadot  - clock-names
121cb7aa33aSEmmanuel Vadot  - ports
122cb7aa33aSEmmanuel Vadot
123cb7aa33aSEmmanuel VadotadditionalProperties: false
124cb7aa33aSEmmanuel Vadot
125cb7aa33aSEmmanuel Vadotexamples:
126cb7aa33aSEmmanuel Vadot  - |
127cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
128cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
129cb7aa33aSEmmanuel Vadot    display-controller@1a01000 {
130cb7aa33aSEmmanuel Vadot        compatible = "qcom,mdp5";
131cb7aa33aSEmmanuel Vadot        reg = <0x1a01000 0x90000>;
132cb7aa33aSEmmanuel Vadot        reg-names = "mdp_phys";
133cb7aa33aSEmmanuel Vadot
134cb7aa33aSEmmanuel Vadot        interrupt-parent = <&mdss>;
135cb7aa33aSEmmanuel Vadot        interrupts = <0>;
136cb7aa33aSEmmanuel Vadot
137cb7aa33aSEmmanuel Vadot        clocks = <&gcc GCC_MDSS_AHB_CLK>,
138cb7aa33aSEmmanuel Vadot                 <&gcc GCC_MDSS_AXI_CLK>,
139cb7aa33aSEmmanuel Vadot                 <&gcc GCC_MDSS_MDP_CLK>,
140cb7aa33aSEmmanuel Vadot                 <&gcc GCC_MDSS_VSYNC_CLK>;
141cb7aa33aSEmmanuel Vadot        clock-names = "iface",
142cb7aa33aSEmmanuel Vadot                      "bus",
143cb7aa33aSEmmanuel Vadot                      "core",
144cb7aa33aSEmmanuel Vadot                      "vsync";
145cb7aa33aSEmmanuel Vadot
146cb7aa33aSEmmanuel Vadot        ports {
147cb7aa33aSEmmanuel Vadot            #address-cells = <1>;
148cb7aa33aSEmmanuel Vadot            #size-cells = <0>;
149cb7aa33aSEmmanuel Vadot
150cb7aa33aSEmmanuel Vadot            port@0 {
151cb7aa33aSEmmanuel Vadot                reg = <0>;
152cb7aa33aSEmmanuel Vadot                endpoint {
153cb7aa33aSEmmanuel Vadot                    remote-endpoint = <&dsi0_in>;
154cb7aa33aSEmmanuel Vadot                };
155cb7aa33aSEmmanuel Vadot            };
156cb7aa33aSEmmanuel Vadot        };
157cb7aa33aSEmmanuel Vadot    };
158cb7aa33aSEmmanuel Vadot...
159