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,sa8775p-mdss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Technologies, Inc. SA87755P Display MDSS 8 9maintainers: 10 - Mahadevan <[email protected]> 11 12description: 13 SA8775P MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like 14 DPU display controller, DP interfaces and EDP etc. 15 16$ref: /schemas/display/msm/mdss-common.yaml# 17 18properties: 19 compatible: 20 const: qcom,sa8775p-mdss 21 22 clocks: 23 items: 24 - description: Display AHB 25 - description: Display hf AXI 26 - description: Display core 27 28 iommus: 29 maxItems: 1 30 31 interconnects: 32 maxItems: 3 33 34 interconnect-names: 35 maxItems: 3 36 37patternProperties: 38 "^display-controller@[0-9a-f]+$": 39 type: object 40 additionalProperties: true 41 42 properties: 43 compatible: 44 const: qcom,sa8775p-dpu 45 46 "^displayport-controller@[0-9a-f]+$": 47 type: object 48 additionalProperties: true 49 50 properties: 51 compatible: 52 items: 53 - const: qcom,sa8775p-dp 54 55required: 56 - compatible 57 58unevaluatedProperties: false 59 60examples: 61 - | 62 #include <dt-bindings/interconnect/qcom,icc.h> 63 #include <dt-bindings/interrupt-controller/arm-gic.h> 64 #include <dt-bindings/clock/qcom,sa8775p-gcc.h> 65 #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h> 66 #include <dt-bindings/power/qcom,rpmhpd.h> 67 #include <dt-bindings/power/qcom-rpmpd.h> 68 69 display-subsystem@ae00000 { 70 compatible = "qcom,sa8775p-mdss"; 71 reg = <0x0ae00000 0x1000>; 72 reg-names = "mdss"; 73 74 interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>, 75 <&mmss_noc MASTER_MDP1 &mc_virt SLAVE_EBI1>, 76 <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; 77 interconnect-names = "mdp0-mem", 78 "mdp1-mem", 79 "cpu-cfg"; 80 81 resets = <&dispcc_core_bcr>; 82 power-domains = <&dispcc_gdsc>; 83 84 clocks = <&dispcc_ahb_clk>, 85 <&gcc GCC_DISP_HF_AXI_CLK>, 86 <&dispcc_mdp_clk>; 87 88 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 89 interrupt-controller; 90 #interrupt-cells = <1>; 91 92 iommus = <&apps_smmu 0x1000 0x402>; 93 94 #address-cells = <1>; 95 #size-cells = <1>; 96 ranges; 97 98 display-controller@ae01000 { 99 compatible = "qcom,sa8775p-dpu"; 100 reg = <0x0ae01000 0x8f000>, 101 <0x0aeb0000 0x2008>; 102 reg-names = "mdp", "vbif"; 103 104 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 105 <&dispcc_ahb_clk>, 106 <&dispcc_mdp_lut_clk>, 107 <&dispcc_mdp_clk>, 108 <&dispcc_mdp_vsync_clk>; 109 clock-names = "nrt_bus", 110 "iface", 111 "lut", 112 "core", 113 "vsync"; 114 115 assigned-clocks = <&dispcc_mdp_vsync_clk>; 116 assigned-clock-rates = <19200000>; 117 118 operating-points-v2 = <&mdss0_mdp_opp_table>; 119 power-domains = <&rpmhpd RPMHPD_MMCX>; 120 121 interrupt-parent = <&mdss0>; 122 interrupts = <0>; 123 124 ports { 125 #address-cells = <1>; 126 #size-cells = <0>; 127 128 port@0 { 129 reg = <0>; 130 dpu_intf0_out: endpoint { 131 remote-endpoint = <&mdss0_dp0_in>; 132 }; 133 }; 134 }; 135 136 mdss0_mdp_opp_table: opp-table { 137 compatible = "operating-points-v2"; 138 139 opp-375000000 { 140 opp-hz = /bits/ 64 <375000000>; 141 required-opps = <&rpmhpd_opp_svs_l1>; 142 }; 143 144 opp-500000000 { 145 opp-hz = /bits/ 64 <500000000>; 146 required-opps = <&rpmhpd_opp_nom>; 147 }; 148 149 opp-575000000 { 150 opp-hz = /bits/ 64 <575000000>; 151 required-opps = <&rpmhpd_opp_turbo>; 152 }; 153 154 opp-650000000 { 155 opp-hz = /bits/ 64 <650000000>; 156 required-opps = <&rpmhpd_opp_turbo_l1>; 157 }; 158 }; 159 }; 160 161 displayport-controller@af54000 { 162 compatible = "qcom,sa8775p-dp"; 163 164 pinctrl-0 = <&dp_hot_plug_det>; 165 pinctrl-names = "default"; 166 167 reg = <0xaf54000 0x104>, 168 <0xaf54200 0x0c0>, 169 <0xaf55000 0x770>, 170 <0xaf56000 0x09c>, 171 <0xaf57000 0x09c>; 172 173 interrupt-parent = <&mdss0>; 174 interrupts = <12>; 175 176 clocks = <&dispcc_mdss_ahb_clk>, 177 <&dispcc_dptx0_aux_clk>, 178 <&dispcc_dptx0_link_clk>, 179 <&dispcc_dptx0_link_intf_clk>, 180 <&dispcc_dptx0_pixel0_clk>; 181 clock-names = "core_iface", 182 "core_aux", 183 "ctrl_link", 184 "ctrl_link_iface", 185 "stream_pixel"; 186 187 assigned-clocks = <&dispcc_mdss_dptx0_link_clk_src>, 188 <&dispcc_mdss_dptx0_pixel0_clk_src>; 189 assigned-clock-parents = <&mdss0_edp_phy 0>, <&mdss0_edp_phy 1>; 190 191 phys = <&mdss0_edp_phy>; 192 phy-names = "dp"; 193 194 operating-points-v2 = <&dp_opp_table>; 195 power-domains = <&rpmhpd SA8775P_MMCX>; 196 197 #sound-dai-cells = <0>; 198 199 ports { 200 #address-cells = <1>; 201 #size-cells = <0>; 202 203 port@0 { 204 reg = <0>; 205 mdss0_dp0_in: endpoint { 206 remote-endpoint = <&dpu_intf0_out>; 207 }; 208 }; 209 210 port@1 { 211 reg = <1>; 212 mdss0_dp_out: endpoint { }; 213 }; 214 }; 215 216 dp_opp_table: opp-table { 217 compatible = "operating-points-v2"; 218 219 opp-160000000 { 220 opp-hz = /bits/ 64 <160000000>; 221 required-opps = <&rpmhpd_opp_low_svs>; 222 }; 223 224 opp-270000000 { 225 opp-hz = /bits/ 64 <270000000>; 226 required-opps = <&rpmhpd_opp_svs>; 227 }; 228 229 opp-540000000 { 230 opp-hz = /bits/ 64 <540000000>; 231 required-opps = <&rpmhpd_opp_svs_l1>; 232 }; 233 234 opp-810000000 { 235 opp-hz = /bits/ 64 <810000000>; 236 required-opps = <&rpmhpd_opp_nom>; 237 }; 238 }; 239 }; 240 }; 241... 242