1440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2f7d46c5eSDmitry Baryshkov%YAML 1.2 3f7d46c5eSDmitry Baryshkov--- 4f7d46c5eSDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,mdss.yaml# 5f7d46c5eSDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml# 6f7d46c5eSDmitry Baryshkov 7f7d46c5eSDmitry Baryshkovtitle: Qualcomm Mobile Display SubSystem (MDSS) 8f7d46c5eSDmitry Baryshkov 9f7d46c5eSDmitry Baryshkovmaintainers: 10f7d46c5eSDmitry Baryshkov - Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 11f7d46c5eSDmitry Baryshkov - Rob Clark <robdclark@gmail.com> 12f7d46c5eSDmitry Baryshkov 13f7d46c5eSDmitry Baryshkovdescription: 1447aab533SBjorn Helgaas This is the bindings documentation for the Mobile Display Subsystem(MDSS) that 15f7d46c5eSDmitry Baryshkov encapsulates sub-blocks like MDP5, DSI, HDMI, eDP, etc. 16f7d46c5eSDmitry Baryshkov 17f7d46c5eSDmitry Baryshkovproperties: 181413ef55SDmitry Baryshkov $nodename: 191413ef55SDmitry Baryshkov pattern: "^display-subsystem@[0-9a-f]+$" 201413ef55SDmitry Baryshkov 21f7d46c5eSDmitry Baryshkov compatible: 22f7d46c5eSDmitry Baryshkov enum: 23f7d46c5eSDmitry Baryshkov - qcom,mdss 24f7d46c5eSDmitry Baryshkov 25f7d46c5eSDmitry Baryshkov reg: 26f7d46c5eSDmitry Baryshkov minItems: 2 27f7d46c5eSDmitry Baryshkov maxItems: 3 28f7d46c5eSDmitry Baryshkov 29f7d46c5eSDmitry Baryshkov reg-names: 30f7d46c5eSDmitry Baryshkov minItems: 2 31f7d46c5eSDmitry Baryshkov items: 32f7d46c5eSDmitry Baryshkov - const: mdss_phys 33f7d46c5eSDmitry Baryshkov - const: vbif_phys 34f7d46c5eSDmitry Baryshkov - const: vbif_nrt_phys 35f7d46c5eSDmitry Baryshkov 36f7d46c5eSDmitry Baryshkov interrupts: 37f7d46c5eSDmitry Baryshkov maxItems: 1 38f7d46c5eSDmitry Baryshkov 39f7d46c5eSDmitry Baryshkov interrupt-controller: true 40f7d46c5eSDmitry Baryshkov 41f7d46c5eSDmitry Baryshkov "#interrupt-cells": 42f7d46c5eSDmitry Baryshkov const: 1 43f7d46c5eSDmitry Baryshkov 44f7d46c5eSDmitry Baryshkov power-domains: 45f7d46c5eSDmitry Baryshkov maxItems: 1 46f7d46c5eSDmitry Baryshkov description: | 47f7d46c5eSDmitry Baryshkov The MDSS power domain provided by GCC 48f7d46c5eSDmitry Baryshkov 49f7d46c5eSDmitry Baryshkov clocks: 502d2d525cSDmitry Baryshkov oneOf: 512d2d525cSDmitry Baryshkov - minItems: 3 52f7d46c5eSDmitry Baryshkov items: 53f7d46c5eSDmitry Baryshkov - description: Display abh clock 54f7d46c5eSDmitry Baryshkov - description: Display axi clock 55f7d46c5eSDmitry Baryshkov - description: Display vsync clock 562d2d525cSDmitry Baryshkov - description: Display core clock 572d2d525cSDmitry Baryshkov - minItems: 1 582d2d525cSDmitry Baryshkov items: 592d2d525cSDmitry Baryshkov - description: Display abh clock 602d2d525cSDmitry Baryshkov - description: Display core clock 61f7d46c5eSDmitry Baryshkov 62f7d46c5eSDmitry Baryshkov clock-names: 632d2d525cSDmitry Baryshkov oneOf: 642d2d525cSDmitry Baryshkov - minItems: 3 65f7d46c5eSDmitry Baryshkov items: 66f7d46c5eSDmitry Baryshkov - const: iface 67f7d46c5eSDmitry Baryshkov - const: bus 68f7d46c5eSDmitry Baryshkov - const: vsync 692d2d525cSDmitry Baryshkov - const: core 702d2d525cSDmitry Baryshkov - minItems: 1 712d2d525cSDmitry Baryshkov items: 722d2d525cSDmitry Baryshkov - const: iface 732d2d525cSDmitry Baryshkov - const: core 74f7d46c5eSDmitry Baryshkov 75f7d46c5eSDmitry Baryshkov "#address-cells": 76f7d46c5eSDmitry Baryshkov const: 1 77f7d46c5eSDmitry Baryshkov 78f7d46c5eSDmitry Baryshkov "#size-cells": 79f7d46c5eSDmitry Baryshkov const: 1 80f7d46c5eSDmitry Baryshkov 81f7d46c5eSDmitry Baryshkov ranges: true 82f7d46c5eSDmitry Baryshkov 83f7d46c5eSDmitry Baryshkov resets: 84f7d46c5eSDmitry Baryshkov items: 85f7d46c5eSDmitry Baryshkov - description: MDSS_CORE reset 86f7d46c5eSDmitry Baryshkov 87*6694d178SLuca Weiss interconnects: 88*6694d178SLuca Weiss minItems: 1 89*6694d178SLuca Weiss items: 90*6694d178SLuca Weiss - description: Interconnect path from mdp0 (or a single mdp) port to the data bus 91*6694d178SLuca Weiss - description: Interconnect path from CPU to the reg bus 92*6694d178SLuca Weiss 93*6694d178SLuca Weiss interconnect-names: 94*6694d178SLuca Weiss minItems: 1 95*6694d178SLuca Weiss items: 96*6694d178SLuca Weiss - const: mdp0-mem 97*6694d178SLuca Weiss - const: cpu-cfg 98*6694d178SLuca Weiss 99f7d46c5eSDmitry Baryshkovrequired: 100f7d46c5eSDmitry Baryshkov - compatible 101f7d46c5eSDmitry Baryshkov - reg 102f7d46c5eSDmitry Baryshkov - reg-names 103f7d46c5eSDmitry Baryshkov - interrupts 104f7d46c5eSDmitry Baryshkov - interrupt-controller 105f7d46c5eSDmitry Baryshkov - "#interrupt-cells" 106f7d46c5eSDmitry Baryshkov - power-domains 107f7d46c5eSDmitry Baryshkov - clocks 108f7d46c5eSDmitry Baryshkov - clock-names 109f7d46c5eSDmitry Baryshkov - "#address-cells" 110f7d46c5eSDmitry Baryshkov - "#size-cells" 111f7d46c5eSDmitry Baryshkov - ranges 112f7d46c5eSDmitry Baryshkov 113f7d46c5eSDmitry BaryshkovpatternProperties: 114798cc8f0SDmitry Baryshkov "^display-controller@[1-9a-f][0-9a-f]*$": 115f7d46c5eSDmitry Baryshkov type: object 116e62fc182SRob Herring additionalProperties: true 117f7d46c5eSDmitry Baryshkov properties: 118f7d46c5eSDmitry Baryshkov compatible: 1195c719967SDmitry Baryshkov contains: 120f7d46c5eSDmitry Baryshkov const: qcom,mdp5 121f7d46c5eSDmitry Baryshkov 122f7d46c5eSDmitry Baryshkov "^dsi@[1-9a-f][0-9a-f]*$": 123f7d46c5eSDmitry Baryshkov type: object 124e62fc182SRob Herring additionalProperties: true 125f7d46c5eSDmitry Baryshkov properties: 126f7d46c5eSDmitry Baryshkov compatible: 1270c0f65c6SBryan O'Donoghue contains: 128f7d46c5eSDmitry Baryshkov const: qcom,mdss-dsi-ctrl 129f7d46c5eSDmitry Baryshkov 130f7d46c5eSDmitry Baryshkov "^phy@[1-9a-f][0-9a-f]*$": 131f7d46c5eSDmitry Baryshkov type: object 132e62fc182SRob Herring additionalProperties: true 133f7d46c5eSDmitry Baryshkov properties: 134f7d46c5eSDmitry Baryshkov compatible: 135f7d46c5eSDmitry Baryshkov enum: 136f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm 137f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-660 138f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-8953 139f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-20nm 140d01eb342SLuca Weiss - qcom,dsi-phy-28nm-8226 14160bdbaafSBarnabás Czémán - qcom,dsi-phy-28nm-8937 142f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-hpm 1433b63880dSAdam Skladowski - qcom,dsi-phy-28nm-hpm-fam-b 144f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-lp 145f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8084 146f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8660 147f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8960 148f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8974 149f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8996 150f7d46c5eSDmitry Baryshkov 151f7d46c5eSDmitry Baryshkov "^hdmi-tx@[1-9a-f][0-9a-f]*$": 152f7d46c5eSDmitry Baryshkov type: object 153e62fc182SRob Herring additionalProperties: true 154f7d46c5eSDmitry Baryshkov properties: 155f7d46c5eSDmitry Baryshkov compatible: 156f7d46c5eSDmitry Baryshkov enum: 157f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8084 158f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8660 159f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8960 160f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8974 161f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8994 162f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8996 163f7d46c5eSDmitry Baryshkov 164f7d46c5eSDmitry BaryshkovadditionalProperties: false 165f7d46c5eSDmitry Baryshkov 166f7d46c5eSDmitry Baryshkovexamples: 167f7d46c5eSDmitry Baryshkov - | 168f7d46c5eSDmitry Baryshkov #include <dt-bindings/clock/qcom,gcc-msm8916.h> 169f7d46c5eSDmitry Baryshkov #include <dt-bindings/interrupt-controller/arm-gic.h> 1701413ef55SDmitry Baryshkov display-subsystem@1a00000 { 171f7d46c5eSDmitry Baryshkov compatible = "qcom,mdss"; 172f7d46c5eSDmitry Baryshkov reg = <0x1a00000 0x1000>, 173f7d46c5eSDmitry Baryshkov <0x1ac8000 0x3000>; 174f7d46c5eSDmitry Baryshkov reg-names = "mdss_phys", "vbif_phys"; 175f7d46c5eSDmitry Baryshkov 176f7d46c5eSDmitry Baryshkov power-domains = <&gcc MDSS_GDSC>; 177f7d46c5eSDmitry Baryshkov 178f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 179f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 180f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 181f7d46c5eSDmitry Baryshkov clock-names = "iface", 182f7d46c5eSDmitry Baryshkov "bus", 183f7d46c5eSDmitry Baryshkov "vsync"; 184f7d46c5eSDmitry Baryshkov 185f7d46c5eSDmitry Baryshkov interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 186f7d46c5eSDmitry Baryshkov 187f7d46c5eSDmitry Baryshkov interrupt-controller; 188f7d46c5eSDmitry Baryshkov #interrupt-cells = <1>; 189f7d46c5eSDmitry Baryshkov 190f7d46c5eSDmitry Baryshkov #address-cells = <1>; 191f7d46c5eSDmitry Baryshkov #size-cells = <1>; 192f7d46c5eSDmitry Baryshkov ranges; 193f7d46c5eSDmitry Baryshkov 194798cc8f0SDmitry Baryshkov display-controller@1a01000 { 195798cc8f0SDmitry Baryshkov compatible = "qcom,msm8916-mdp5", "qcom,mdp5"; 196f7d46c5eSDmitry Baryshkov reg = <0x01a01000 0x89000>; 197f7d46c5eSDmitry Baryshkov reg-names = "mdp_phys"; 198f7d46c5eSDmitry Baryshkov 199f7d46c5eSDmitry Baryshkov interrupt-parent = <&mdss>; 200f7d46c5eSDmitry Baryshkov interrupts = <0>; 201f7d46c5eSDmitry Baryshkov 202f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 203f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 204f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_MDP_CLK>, 205f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 206f7d46c5eSDmitry Baryshkov clock-names = "iface", 207f7d46c5eSDmitry Baryshkov "bus", 208f7d46c5eSDmitry Baryshkov "core", 209f7d46c5eSDmitry Baryshkov "vsync"; 210f7d46c5eSDmitry Baryshkov 211f7d46c5eSDmitry Baryshkov iommus = <&apps_iommu 4>; 212f7d46c5eSDmitry Baryshkov 213f7d46c5eSDmitry Baryshkov ports { 214f7d46c5eSDmitry Baryshkov #address-cells = <1>; 215f7d46c5eSDmitry Baryshkov #size-cells = <0>; 216f7d46c5eSDmitry Baryshkov 217f7d46c5eSDmitry Baryshkov port@0 { 218f7d46c5eSDmitry Baryshkov reg = <0>; 219f7d46c5eSDmitry Baryshkov mdp5_intf1_out: endpoint { 220f7d46c5eSDmitry Baryshkov remote-endpoint = <&dsi0_in>; 221f7d46c5eSDmitry Baryshkov }; 222f7d46c5eSDmitry Baryshkov }; 223f7d46c5eSDmitry Baryshkov }; 224f7d46c5eSDmitry Baryshkov }; 225f7d46c5eSDmitry Baryshkov }; 226f7d46c5eSDmitry Baryshkov... 227