Skip to content

Commit f7d46c5

Browse files
committed
dt-bindings: display/msm: split qcom, mdss bindings
Split Mobile Display SubSystem (MDSS) root node bindings to the separate yaml file. Changes to the existing (txt) schema: - Added optional "vbif_nrt_phys" region used by msm8996 - Made "bus" and "vsync" clocks optional (they are not used by some platforms) - Added optional resets property referencing MDSS reset - Defined child nodes pointing to corresponding reference schema. - Dropped the "lut" clock. It was added to the schema by mistake (it is a part of mdp4 schema, not the mdss). Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Dmitry Baryshkov <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/508378/ Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Baryshkov <[email protected]>
1 parent fa0cf3e commit f7d46c5

File tree

2 files changed

+197
-29
lines changed

2 files changed

+197
-29
lines changed

Documentation/devicetree/bindings/display/msm/mdp5.txt

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,9 @@ Qualcomm adreno/snapdragon MDP5 display controller
22

33
Description:
44

5-
This is the bindings documentation for the Mobile Display Subsytem(MDSS) that
6-
encapsulates sub-blocks like MDP5, DSI, HDMI, eDP etc, and the MDP5 display
5+
This is the bindings documentation for the MDP5 display
76
controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994 and MSM8996.
87

9-
MDSS:
10-
Required properties:
11-
- compatible:
12-
* "qcom,mdss" - MDSS
13-
- reg: Physical base address and length of the controller's registers.
14-
- reg-names: The names of register regions. The following regions are required:
15-
* "mdss_phys"
16-
* "vbif_phys"
17-
- interrupts: The interrupt signal from MDSS.
18-
- interrupt-controller: identifies the node as an interrupt controller.
19-
- #interrupt-cells: specifies the number of cells needed to encode an interrupt
20-
source, should be 1.
21-
- power-domains: a power domain consumer specifier according to
22-
Documentation/devicetree/bindings/power/power_domain.txt
23-
- clocks: device clocks. See ../clocks/clock-bindings.txt for details.
24-
- clock-names: the following clocks are required.
25-
* "iface"
26-
* "bus"
27-
* "vsync"
28-
- #address-cells: number of address cells for the MDSS children. Should be 1.
29-
- #size-cells: Should be 1.
30-
- ranges: parent bus address space is the same as the child bus address space.
31-
32-
Optional properties:
33-
- clock-names: the following clocks are optional:
34-
* "lut"
35-
368
MDP5:
379
Required properties:
3810
- compatible:
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/display/msm/qcom,mdss.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Mobile Display SubSystem (MDSS)
8+
9+
maintainers:
10+
- Dmitry Baryshkov <[email protected]>
11+
- Rob Clark <[email protected]>
12+
13+
description:
14+
This is the bindings documentation for the Mobile Display Subsytem(MDSS) that
15+
encapsulates sub-blocks like MDP5, DSI, HDMI, eDP, etc.
16+
17+
properties:
18+
compatible:
19+
enum:
20+
- qcom,mdss
21+
22+
reg:
23+
minItems: 2
24+
maxItems: 3
25+
26+
reg-names:
27+
minItems: 2
28+
items:
29+
- const: mdss_phys
30+
- const: vbif_phys
31+
- const: vbif_nrt_phys
32+
33+
interrupts:
34+
maxItems: 1
35+
36+
interrupt-controller: true
37+
38+
"#interrupt-cells":
39+
const: 1
40+
41+
power-domains:
42+
maxItems: 1
43+
description: |
44+
The MDSS power domain provided by GCC
45+
46+
clocks:
47+
minItems: 1
48+
items:
49+
- description: Display abh clock
50+
- description: Display axi clock
51+
- description: Display vsync clock
52+
53+
clock-names:
54+
minItems: 1
55+
items:
56+
- const: iface
57+
- const: bus
58+
- const: vsync
59+
60+
"#address-cells":
61+
const: 1
62+
63+
"#size-cells":
64+
const: 1
65+
66+
ranges: true
67+
68+
resets:
69+
items:
70+
- description: MDSS_CORE reset
71+
72+
required:
73+
- compatible
74+
- reg
75+
- reg-names
76+
- interrupts
77+
- interrupt-controller
78+
- "#interrupt-cells"
79+
- power-domains
80+
- clocks
81+
- clock-names
82+
- "#address-cells"
83+
- "#size-cells"
84+
- ranges
85+
86+
patternProperties:
87+
"^mdp@[1-9a-f][0-9a-f]*$":
88+
type: object
89+
properties:
90+
compatible:
91+
const: qcom,mdp5
92+
93+
"^dsi@[1-9a-f][0-9a-f]*$":
94+
type: object
95+
properties:
96+
compatible:
97+
const: qcom,mdss-dsi-ctrl
98+
99+
"^phy@[1-9a-f][0-9a-f]*$":
100+
type: object
101+
properties:
102+
compatible:
103+
enum:
104+
- qcom,dsi-phy-14nm
105+
- qcom,dsi-phy-14nm-660
106+
- qcom,dsi-phy-14nm-8953
107+
- qcom,dsi-phy-20nm
108+
- qcom,dsi-phy-28nm-hpm
109+
- qcom,dsi-phy-28nm-lp
110+
111+
"^hdmi-phy@[1-9a-f][0-9a-f]*$":
112+
type: object
113+
properties:
114+
compatible:
115+
enum:
116+
- qcom,hdmi-phy-8084
117+
- qcom,hdmi-phy-8660
118+
- qcom,hdmi-phy-8960
119+
- qcom,hdmi-phy-8974
120+
- qcom,hdmi-phy-8996
121+
122+
"^hdmi-tx@[1-9a-f][0-9a-f]*$":
123+
type: object
124+
properties:
125+
compatible:
126+
enum:
127+
- qcom,hdmi-tx-8084
128+
- qcom,hdmi-tx-8660
129+
- qcom,hdmi-tx-8960
130+
- qcom,hdmi-tx-8974
131+
- qcom,hdmi-tx-8994
132+
- qcom,hdmi-tx-8996
133+
134+
additionalProperties: false
135+
136+
examples:
137+
- |
138+
#include <dt-bindings/clock/qcom,gcc-msm8916.h>
139+
#include <dt-bindings/interrupt-controller/arm-gic.h>
140+
mdss@1a00000 {
141+
compatible = "qcom,mdss";
142+
reg = <0x1a00000 0x1000>,
143+
<0x1ac8000 0x3000>;
144+
reg-names = "mdss_phys", "vbif_phys";
145+
146+
power-domains = <&gcc MDSS_GDSC>;
147+
148+
clocks = <&gcc GCC_MDSS_AHB_CLK>,
149+
<&gcc GCC_MDSS_AXI_CLK>,
150+
<&gcc GCC_MDSS_VSYNC_CLK>;
151+
clock-names = "iface",
152+
"bus",
153+
"vsync";
154+
155+
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
156+
157+
interrupt-controller;
158+
#interrupt-cells = <1>;
159+
160+
#address-cells = <1>;
161+
#size-cells = <1>;
162+
ranges;
163+
164+
mdp@1a01000 {
165+
compatible = "qcom,mdp5";
166+
reg = <0x01a01000 0x89000>;
167+
reg-names = "mdp_phys";
168+
169+
interrupt-parent = <&mdss>;
170+
interrupts = <0>;
171+
172+
clocks = <&gcc GCC_MDSS_AHB_CLK>,
173+
<&gcc GCC_MDSS_AXI_CLK>,
174+
<&gcc GCC_MDSS_MDP_CLK>,
175+
<&gcc GCC_MDSS_VSYNC_CLK>;
176+
clock-names = "iface",
177+
"bus",
178+
"core",
179+
"vsync";
180+
181+
iommus = <&apps_iommu 4>;
182+
183+
ports {
184+
#address-cells = <1>;
185+
#size-cells = <0>;
186+
187+
port@0 {
188+
reg = <0>;
189+
mdp5_intf1_out: endpoint {
190+
remote-endpoint = <&dsi0_in>;
191+
};
192+
};
193+
};
194+
};
195+
};
196+
...

0 commit comments

Comments
 (0)