Skip to content

Commit 24c61d5

Browse files
committed
Merge tag 'drm-msm-next-2025-01-07' of gitlab.freedesktop.org:drm/msm into drm-next
Updates for v6.14 MDSS: - properly described UBWC registers - added SM6150 (aka QCS615) support MDP4: - several small fixes DPU: - added SM6150 (aka QCS615) support - enabled wide planes if virtual planes are enabled (by using two SSPPs for a single plane) - fixed modes filtering for platforms w/o 3DMux - fixed DSPP DSPP_2 / _3 links on several platforms - corrected DSPP definitions on SDM670 - added CWB hardware blocks support - added VBIF to DPU snapshots - dropped struct dpu_rm_requirements DP: - reworked DP audio support DSI: - added SM6150 (aka QCS615) support GPU: - Print GMU core fw version - GMU bandwidth voting for a740 and a750 - Expose uche trap base via uapi - UAPI error reporting Signed-off-by: Dave Airlie <[email protected]> From: Rob Clark <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGsutUu4ff6OpXNXxqf1xaV0rV6oV23VXNRiF0_OEfe72Q@mail.gmail.com
2 parents c3d590f + 866e43b commit 24c61d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+2137
-704
lines changed

Documentation/devicetree/bindings/display/msm/dp-controller.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ title: MSM Display Port Controller
88

99
maintainers:
1010
- Kuogee Hsieh <[email protected]>
11+
- Abhinav Kumar <[email protected]>
1112

1213
description: |
1314
Device tree bindings for DisplayPort host controller for MSM targets

Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ properties:
3030
- qcom,sdm845-dsi-ctrl
3131
- qcom,sm6115-dsi-ctrl
3232
- qcom,sm6125-dsi-ctrl
33+
- qcom,sm6150-dsi-ctrl
3334
- qcom,sm6350-dsi-ctrl
3435
- qcom,sm6375-dsi-ctrl
3536
- qcom,sm7150-dsi-ctrl
@@ -349,6 +350,7 @@ allOf:
349350
enum:
350351
- qcom,sc7180-dsi-ctrl
351352
- qcom,sc7280-dsi-ctrl
353+
- qcom,sm6150-dsi-ctrl
352354
- qcom,sm7150-dsi-ctrl
353355
- qcom,sm8150-dsi-ctrl
354356
- qcom,sm8250-dsi-ctrl

Documentation/devicetree/bindings/display/msm/dsi-phy-14nm.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ properties:
2020
- qcom,dsi-phy-14nm-660
2121
- qcom,dsi-phy-14nm-8953
2222
- qcom,sm6125-dsi-phy-14nm
23+
- qcom,sm6150-dsi-phy-14nm
2324

2425
reg:
2526
items:

Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ examples:
168168
reg = <0xaf54000 0x104>,
169169
<0xaf54200 0x0c0>,
170170
<0xaf55000 0x770>,
171-
<0xaf56000 0x09c>;
171+
<0xaf56000 0x09c>,
172+
<0xaf57000 0x09c>;
172173
173174
interrupt-parent = <&mdss0>;
174175
interrupts = <12>;
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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,sm6150-dpu.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm SM6150 Display DPU
8+
9+
maintainers:
10+
- Abhinav Kumar <[email protected]>
11+
- Dmitry Baryshkov <[email protected]>
12+
13+
$ref: /schemas/display/msm/dpu-common.yaml#
14+
15+
properties:
16+
compatible:
17+
const: qcom,sm6150-dpu
18+
19+
reg:
20+
items:
21+
- description: Address offset and size for mdp register set
22+
- description: Address offset and size for vbif register set
23+
24+
reg-names:
25+
items:
26+
- const: mdp
27+
- const: vbif
28+
29+
clocks:
30+
items:
31+
- description: Display ahb clock
32+
- description: Display hf axi clock
33+
- description: Display core clock
34+
- description: Display vsync clock
35+
36+
clock-names:
37+
items:
38+
- const: iface
39+
- const: bus
40+
- const: core
41+
- const: vsync
42+
43+
unevaluatedProperties: false
44+
45+
examples:
46+
- |
47+
#include <dt-bindings/interrupt-controller/arm-gic.h>
48+
#include <dt-bindings/power/qcom,rpmhpd.h>
49+
50+
display-controller@ae01000 {
51+
compatible = "qcom,sm6150-dpu";
52+
reg = <0x0ae01000 0x8f000>,
53+
<0x0aeb0000 0x2008>;
54+
reg-names = "mdp", "vbif";
55+
56+
clocks = <&dispcc_mdss_ahb_clk>,
57+
<&gcc_disp_hf_axi_clk>,
58+
<&dispcc_mdss_mdp_clk>,
59+
<&dispcc_mdss_vsync_clk>;
60+
clock-names = "iface", "bus", "core", "vsync";
61+
62+
assigned-clocks = <&dispcc_mdss_vsync_clk>;
63+
assigned-clock-rates = <19200000>;
64+
65+
operating-points-v2 = <&mdp_opp_table>;
66+
power-domains = <&rpmhpd RPMHPD_CX>;
67+
68+
interrupt-parent = <&mdss>;
69+
interrupts = <0>;
70+
71+
ports {
72+
#address-cells = <1>;
73+
#size-cells = <0>;
74+
75+
port@0 {
76+
reg = <0>;
77+
dpu_intf0_out: endpoint {
78+
};
79+
};
80+
81+
port@1 {
82+
reg = <1>;
83+
dpu_intf1_out: endpoint {
84+
remote-endpoint = <&mdss_dsi0_in>;
85+
};
86+
};
87+
};
88+
89+
mdp_opp_table: opp-table {
90+
compatible = "operating-points-v2";
91+
92+
opp-19200000 {
93+
opp-hz = /bits/ 64 <19200000>;
94+
required-opps = <&rpmhpd_opp_low_svs>;
95+
};
96+
97+
opp-25600000 {
98+
opp-hz = /bits/ 64 <25600000>;
99+
required-opps = <&rpmhpd_opp_svs>;
100+
};
101+
102+
opp-307200000 {
103+
opp-hz = /bits/ 64 <307200000>;
104+
required-opps = <&rpmhpd_opp_nom>;
105+
};
106+
};
107+
};
108+
...
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
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,sm6150-mdss.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm SM6150 Display MDSS
8+
9+
maintainers:
10+
- Abhinav Kumar <[email protected]>
11+
- Dmitry Baryshkov <[email protected]>
12+
13+
description:
14+
Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
15+
sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
16+
bindings of MDSS are mentioned for SM6150 target.
17+
18+
$ref: /schemas/display/msm/mdss-common.yaml#
19+
20+
properties:
21+
compatible:
22+
items:
23+
- const: qcom,sm6150-mdss
24+
25+
clocks:
26+
items:
27+
- description: Display AHB clock from gcc
28+
- description: Display hf axi clock
29+
- description: Display core clock
30+
31+
clock-names:
32+
items:
33+
- const: iface
34+
- const: bus
35+
- const: core
36+
37+
iommus:
38+
maxItems: 1
39+
40+
interconnects:
41+
maxItems: 2
42+
43+
interconnect-names:
44+
maxItems: 2
45+
46+
patternProperties:
47+
"^display-controller@[0-9a-f]+$":
48+
type: object
49+
additionalProperties: true
50+
properties:
51+
compatible:
52+
const: qcom,sm6150-dpu
53+
54+
"^dsi@[0-9a-f]+$":
55+
type: object
56+
additionalProperties: true
57+
properties:
58+
compatible:
59+
items:
60+
- const: qcom,sm6150-dsi-ctrl
61+
- const: qcom,mdss-dsi-ctrl
62+
63+
"^phy@[0-9a-f]+$":
64+
type: object
65+
additionalProperties: true
66+
properties:
67+
compatible:
68+
const: qcom,sm6150-dsi-phy-14nm
69+
70+
unevaluatedProperties: false
71+
72+
examples:
73+
- |
74+
#include <dt-bindings/clock/qcom,rpmh.h>
75+
#include <dt-bindings/interconnect/qcom,icc.h>
76+
#include <dt-bindings/interconnect/qcom,qcs615-rpmh.h>
77+
#include <dt-bindings/interrupt-controller/arm-gic.h>
78+
#include <dt-bindings/power/qcom,rpmhpd.h>
79+
80+
display-subsystem@ae00000 {
81+
#address-cells = <1>;
82+
#size-cells = <1>;
83+
compatible = "qcom,sm6150-mdss";
84+
reg = <0x0ae00000 0x1000>;
85+
reg-names = "mdss";
86+
87+
interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ALWAYS
88+
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
89+
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
90+
&config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
91+
interconnect-names = "mdp0-mem", "cpu-cfg";
92+
93+
power-domains = <&dispcc_mdss_gdsc>;
94+
95+
clocks = <&dispcc_mdss_ahb_clk>,
96+
<&gcc_disp_hf_axi_clk>,
97+
<&dispcc_mdss_mdp_clk>;
98+
99+
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
100+
interrupt-controller;
101+
#interrupt-cells = <1>;
102+
103+
iommus = <&apps_smmu 0x800 0x0>;
104+
105+
ranges;
106+
107+
display-controller@ae01000 {
108+
compatible = "qcom,sm6150-dpu";
109+
reg = <0x0ae01000 0x8f000>,
110+
<0x0aeb0000 0x2008>;
111+
reg-names = "mdp", "vbif";
112+
113+
clocks = <&dispcc_mdss_ahb_clk>,
114+
<&gcc_disp_hf_axi_clk>,
115+
<&dispcc_mdss_mdp_clk>,
116+
<&dispcc_mdss_vsync_clk>;
117+
clock-names = "iface", "bus", "core", "vsync";
118+
119+
assigned-clocks = <&dispcc_mdss_vsync_clk>;
120+
assigned-clock-rates = <19200000>;
121+
122+
operating-points-v2 = <&mdp_opp_table>;
123+
power-domains = <&rpmhpd RPMHPD_CX>;
124+
125+
interrupt-parent = <&mdss>;
126+
interrupts = <0>;
127+
128+
ports {
129+
#address-cells = <1>;
130+
#size-cells = <0>;
131+
132+
port@0 {
133+
reg = <0>;
134+
dpu_intf0_out: endpoint {
135+
};
136+
};
137+
138+
port@1 {
139+
reg = <1>;
140+
dpu_intf1_out: endpoint {
141+
remote-endpoint = <&mdss_dsi0_in>;
142+
};
143+
};
144+
};
145+
146+
mdp_opp_table: opp-table {
147+
compatible = "operating-points-v2";
148+
149+
opp-19200000 {
150+
opp-hz = /bits/ 64 <19200000>;
151+
required-opps = <&rpmhpd_opp_low_svs>;
152+
};
153+
154+
opp-25600000 {
155+
opp-hz = /bits/ 64 <25600000>;
156+
required-opps = <&rpmhpd_opp_svs>;
157+
};
158+
159+
opp-307200000 {
160+
opp-hz = /bits/ 64 <307200000>;
161+
required-opps = <&rpmhpd_opp_nom>;
162+
};
163+
};
164+
};
165+
166+
dsi@ae94000 {
167+
compatible = "qcom,sm6150-dsi-ctrl",
168+
"qcom,mdss-dsi-ctrl";
169+
reg = <0x0ae94000 0x400>;
170+
reg-names = "dsi_ctrl";
171+
172+
interrupt-parent = <&mdss>;
173+
interrupts = <4>;
174+
175+
clocks = <&dispcc_mdss_byte0_clk>,
176+
<&dispcc_mdss_byte0_intf_clk>,
177+
<&dispcc_mdss_pclk0_clk>,
178+
<&dispcc_mdss_esc0_clk>,
179+
<&dispcc_mdss_ahb_clk>,
180+
<&gcc_disp_hf_axi_clk>;
181+
clock-names = "byte",
182+
"byte_intf",
183+
"pixel",
184+
"core",
185+
"iface",
186+
"bus";
187+
188+
assigned-clocks = <&dispcc_mdss_byte0_clk_src>,
189+
<&dispcc_mdss_pclk0_clk_src>;
190+
assigned-clock-parents = <&mdss_dsi0_phy 0>,
191+
<&mdss_dsi0_phy 1>;
192+
193+
operating-points-v2 = <&dsi0_opp_table>;
194+
195+
phys = <&mdss_dsi0_phy>;
196+
197+
#address-cells = <1>;
198+
#size-cells = <0>;
199+
200+
ports {
201+
#address-cells = <1>;
202+
#size-cells = <0>;
203+
204+
port@0 {
205+
reg = <0>;
206+
mdss_dsi0_in: endpoint {
207+
remote-endpoint = <&dpu_intf1_out>;
208+
};
209+
};
210+
211+
port@1 {
212+
reg = <1>;
213+
mdss_dsi0_out: endpoint {
214+
};
215+
};
216+
};
217+
218+
dsi0_opp_table: opp-table {
219+
compatible = "operating-points-v2";
220+
221+
opp-164000000 {
222+
opp-hz = /bits/ 64 <164000000>;
223+
required-opps = <&rpmhpd_opp_low_svs>;
224+
};
225+
};
226+
};
227+
228+
mdss_dsi0_phy: phy@ae94400 {
229+
compatible = "qcom,sm6150-dsi-phy-14nm";
230+
reg = <0x0ae94400 0x100>,
231+
<0x0ae94500 0x300>,
232+
<0x0ae94800 0x188>;
233+
reg-names = "dsi_phy",
234+
"dsi_phy_lane",
235+
"dsi_pll";
236+
237+
#clock-cells = <1>;
238+
#phy-cells = <0>;
239+
240+
clocks = <&dispcc_mdss_ahb_clk>,
241+
<&rpmhcc RPMH_CXO_CLK>;
242+
clock-names = "iface", "ref";
243+
};
244+
};
245+
...

0 commit comments

Comments
 (0)