1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2430e11f4SRobert Foss%YAML 1.2 3430e11f4SRobert Foss--- 4430e11f4SRobert Foss$id: http://devicetree.org/schemas/display/msm/qcom,sm8350-mdss.yaml# 5430e11f4SRobert Foss$schema: http://devicetree.org/meta-schemas/core.yaml# 6430e11f4SRobert Foss 7430e11f4SRobert Fosstitle: Qualcomm SM8350 Display MDSS 8430e11f4SRobert Foss 9430e11f4SRobert Fossmaintainers: 10430e11f4SRobert Foss - Robert Foss <robert.foss@linaro.org> 11430e11f4SRobert Foss 12430e11f4SRobert Fossdescription: 13430e11f4SRobert Foss MSM Mobile Display Subsystem(MDSS) that encapsulates sub-blocks like 14430e11f4SRobert Foss DPU display controller, DSI and DP interfaces etc. 15430e11f4SRobert Foss 16430e11f4SRobert Foss$ref: /schemas/display/msm/mdss-common.yaml# 17430e11f4SRobert Foss 18430e11f4SRobert Fossproperties: 19430e11f4SRobert Foss compatible: 20430e11f4SRobert Foss items: 21430e11f4SRobert Foss - const: qcom,sm8350-mdss 22430e11f4SRobert Foss 23430e11f4SRobert Foss clocks: 24430e11f4SRobert Foss items: 25430e11f4SRobert Foss - description: Display AHB clock from gcc 26430e11f4SRobert Foss - description: Display hf axi clock 27430e11f4SRobert Foss - description: Display sf axi clock 28430e11f4SRobert Foss - description: Display core clock 29430e11f4SRobert Foss 30430e11f4SRobert Foss clock-names: 31430e11f4SRobert Foss items: 32430e11f4SRobert Foss - const: iface 33430e11f4SRobert Foss - const: bus 34430e11f4SRobert Foss - const: nrt_bus 35430e11f4SRobert Foss - const: core 36430e11f4SRobert Foss 37430e11f4SRobert Foss iommus: 38430e11f4SRobert Foss maxItems: 1 39430e11f4SRobert Foss 40430e11f4SRobert Foss interconnects: 41430e11f4SRobert Foss maxItems: 2 42430e11f4SRobert Foss 43430e11f4SRobert Foss interconnect-names: 44430e11f4SRobert Foss items: 45430e11f4SRobert Foss - const: mdp0-mem 46430e11f4SRobert Foss - const: mdp1-mem 47430e11f4SRobert Foss 48430e11f4SRobert FosspatternProperties: 49430e11f4SRobert Foss "^display-controller@[0-9a-f]+$": 50430e11f4SRobert Foss type: object 51430e11f4SRobert Foss properties: 52430e11f4SRobert Foss compatible: 53430e11f4SRobert Foss const: qcom,sm8350-dpu 54430e11f4SRobert Foss 55648c40bbSNeil Armstrong "^displayport-controller@[0-9a-f]+$": 56648c40bbSNeil Armstrong type: object 57648c40bbSNeil Armstrong properties: 58648c40bbSNeil Armstrong compatible: 59648c40bbSNeil Armstrong const: qcom,sm8350-dp 60648c40bbSNeil Armstrong 61430e11f4SRobert Foss "^dsi@[0-9a-f]+$": 62430e11f4SRobert Foss type: object 63430e11f4SRobert Foss properties: 64430e11f4SRobert Foss compatible: 650c0f65c6SBryan O'Donoghue items: 660c0f65c6SBryan O'Donoghue - const: qcom,sm8350-dsi-ctrl 670c0f65c6SBryan O'Donoghue - const: qcom,mdss-dsi-ctrl 68430e11f4SRobert Foss 69430e11f4SRobert Foss "^phy@[0-9a-f]+$": 70430e11f4SRobert Foss type: object 71430e11f4SRobert Foss properties: 72430e11f4SRobert Foss compatible: 7358fab797SKonrad Dybcio const: qcom,sm8350-dsi-phy-5nm 74430e11f4SRobert Foss 75430e11f4SRobert FossunevaluatedProperties: false 76430e11f4SRobert Foss 77430e11f4SRobert Fossexamples: 78430e11f4SRobert Foss - | 79430e11f4SRobert Foss #include <dt-bindings/clock/qcom,dispcc-sm8350.h> 80430e11f4SRobert Foss #include <dt-bindings/clock/qcom,gcc-sm8350.h> 81430e11f4SRobert Foss #include <dt-bindings/clock/qcom,rpmh.h> 82430e11f4SRobert Foss #include <dt-bindings/interrupt-controller/arm-gic.h> 83430e11f4SRobert Foss #include <dt-bindings/interconnect/qcom,sm8350.h> 84014f3272SRohit Agarwal #include <dt-bindings/power/qcom,rpmhpd.h> 85430e11f4SRobert Foss 86430e11f4SRobert Foss display-subsystem@ae00000 { 87430e11f4SRobert Foss compatible = "qcom,sm8350-mdss"; 88430e11f4SRobert Foss reg = <0x0ae00000 0x1000>; 89430e11f4SRobert Foss reg-names = "mdss"; 90430e11f4SRobert Foss 91430e11f4SRobert Foss interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>, 92430e11f4SRobert Foss <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>; 93430e11f4SRobert Foss interconnect-names = "mdp0-mem", "mdp1-mem"; 94430e11f4SRobert Foss 95430e11f4SRobert Foss power-domains = <&dispcc MDSS_GDSC>; 96430e11f4SRobert Foss resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; 97430e11f4SRobert Foss 98430e11f4SRobert Foss clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 99430e11f4SRobert Foss <&gcc GCC_DISP_HF_AXI_CLK>, 100430e11f4SRobert Foss <&gcc GCC_DISP_SF_AXI_CLK>, 101430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_MDP_CLK>; 102430e11f4SRobert Foss clock-names = "iface", "bus", "nrt_bus", "core"; 103430e11f4SRobert Foss 104430e11f4SRobert Foss iommus = <&apps_smmu 0x820 0x402>; 105430e11f4SRobert Foss 106430e11f4SRobert Foss interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 107430e11f4SRobert Foss interrupt-controller; 108430e11f4SRobert Foss #interrupt-cells = <1>; 109430e11f4SRobert Foss 110430e11f4SRobert Foss #address-cells = <1>; 111430e11f4SRobert Foss #size-cells = <1>; 112430e11f4SRobert Foss ranges; 113430e11f4SRobert Foss 114430e11f4SRobert Foss display-controller@ae01000 { 115430e11f4SRobert Foss compatible = "qcom,sm8350-dpu"; 116430e11f4SRobert Foss reg = <0x0ae01000 0x8f000>, 117430e11f4SRobert Foss <0x0aeb0000 0x2008>; 118430e11f4SRobert Foss reg-names = "mdp", "vbif"; 119430e11f4SRobert Foss 120430e11f4SRobert Foss clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 121430e11f4SRobert Foss <&gcc GCC_DISP_SF_AXI_CLK>, 122430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_AHB_CLK>, 123430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 124430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_MDP_CLK>, 125430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 126430e11f4SRobert Foss clock-names = "bus", 127430e11f4SRobert Foss "nrt_bus", 128430e11f4SRobert Foss "iface", 129430e11f4SRobert Foss "lut", 130430e11f4SRobert Foss "core", 131430e11f4SRobert Foss "vsync"; 132430e11f4SRobert Foss 133430e11f4SRobert Foss assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 134430e11f4SRobert Foss assigned-clock-rates = <19200000>; 135430e11f4SRobert Foss 136430e11f4SRobert Foss operating-points-v2 = <&mdp_opp_table>; 137014f3272SRohit Agarwal power-domains = <&rpmhpd RPMHPD_MMCX>; 138430e11f4SRobert Foss 139430e11f4SRobert Foss interrupt-parent = <&mdss>; 140430e11f4SRobert Foss interrupts = <0>; 141430e11f4SRobert Foss 142430e11f4SRobert Foss ports { 143430e11f4SRobert Foss #address-cells = <1>; 144430e11f4SRobert Foss #size-cells = <0>; 145430e11f4SRobert Foss 146430e11f4SRobert Foss port@0 { 147430e11f4SRobert Foss reg = <0>; 148430e11f4SRobert Foss dpu_intf1_out: endpoint { 149430e11f4SRobert Foss remote-endpoint = <&dsi0_in>; 150430e11f4SRobert Foss }; 151430e11f4SRobert Foss }; 152430e11f4SRobert Foss }; 153430e11f4SRobert Foss 154430e11f4SRobert Foss mdp_opp_table: opp-table { 155430e11f4SRobert Foss compatible = "operating-points-v2"; 156430e11f4SRobert Foss 157430e11f4SRobert Foss opp-200000000 { 158430e11f4SRobert Foss opp-hz = /bits/ 64 <200000000>; 159430e11f4SRobert Foss required-opps = <&rpmhpd_opp_low_svs>; 160430e11f4SRobert Foss }; 161430e11f4SRobert Foss 162430e11f4SRobert Foss opp-300000000 { 163430e11f4SRobert Foss opp-hz = /bits/ 64 <300000000>; 164430e11f4SRobert Foss required-opps = <&rpmhpd_opp_svs>; 165430e11f4SRobert Foss }; 166430e11f4SRobert Foss 167430e11f4SRobert Foss opp-345000000 { 168430e11f4SRobert Foss opp-hz = /bits/ 64 <345000000>; 169430e11f4SRobert Foss required-opps = <&rpmhpd_opp_svs_l1>; 170430e11f4SRobert Foss }; 171430e11f4SRobert Foss 172430e11f4SRobert Foss opp-460000000 { 173430e11f4SRobert Foss opp-hz = /bits/ 64 <460000000>; 174430e11f4SRobert Foss required-opps = <&rpmhpd_opp_nom>; 175430e11f4SRobert Foss }; 176430e11f4SRobert Foss }; 177430e11f4SRobert Foss }; 178430e11f4SRobert Foss 179430e11f4SRobert Foss dsi0: dsi@ae94000 { 1800c0f65c6SBryan O'Donoghue compatible = "qcom,sm8350-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 181430e11f4SRobert Foss reg = <0x0ae94000 0x400>; 182430e11f4SRobert Foss reg-names = "dsi_ctrl"; 183430e11f4SRobert Foss 184430e11f4SRobert Foss interrupt-parent = <&mdss>; 185430e11f4SRobert Foss interrupts = <4>; 186430e11f4SRobert Foss 187430e11f4SRobert Foss clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 188430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 189430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 190430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_ESC0_CLK>, 191430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_AHB_CLK>, 192430e11f4SRobert Foss <&gcc GCC_DISP_HF_AXI_CLK>; 193430e11f4SRobert Foss clock-names = "byte", 194430e11f4SRobert Foss "byte_intf", 195430e11f4SRobert Foss "pixel", 196430e11f4SRobert Foss "core", 197430e11f4SRobert Foss "iface", 198430e11f4SRobert Foss "bus"; 199430e11f4SRobert Foss 200430e11f4SRobert Foss assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 201430e11f4SRobert Foss <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 202430e11f4SRobert Foss assigned-clock-parents = <&mdss_dsi0_phy 0>, 203430e11f4SRobert Foss <&mdss_dsi0_phy 1>; 204430e11f4SRobert Foss 205430e11f4SRobert Foss operating-points-v2 = <&dsi_opp_table>; 206014f3272SRohit Agarwal power-domains = <&rpmhpd RPMHPD_MMCX>; 207430e11f4SRobert Foss 208430e11f4SRobert Foss phys = <&mdss_dsi0_phy>; 209430e11f4SRobert Foss 210430e11f4SRobert Foss ports { 211430e11f4SRobert Foss #address-cells = <1>; 212430e11f4SRobert Foss #size-cells = <0>; 213430e11f4SRobert Foss 214430e11f4SRobert Foss port@0 { 215430e11f4SRobert Foss reg = <0>; 216430e11f4SRobert Foss dsi0_in: endpoint { 217430e11f4SRobert Foss remote-endpoint = <&dpu_intf1_out>; 218430e11f4SRobert Foss }; 219430e11f4SRobert Foss }; 220430e11f4SRobert Foss 221430e11f4SRobert Foss port@1 { 222430e11f4SRobert Foss reg = <1>; 223430e11f4SRobert Foss dsi0_out: endpoint { 224430e11f4SRobert Foss }; 225430e11f4SRobert Foss }; 226430e11f4SRobert Foss }; 227430e11f4SRobert Foss }; 228430e11f4SRobert Foss }; 229430e11f4SRobert Foss... 230