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 87f7d46c5eSDmitry Baryshkovrequired: 88f7d46c5eSDmitry Baryshkov - compatible 89f7d46c5eSDmitry Baryshkov - reg 90f7d46c5eSDmitry Baryshkov - reg-names 91f7d46c5eSDmitry Baryshkov - interrupts 92f7d46c5eSDmitry Baryshkov - interrupt-controller 93f7d46c5eSDmitry Baryshkov - "#interrupt-cells" 94f7d46c5eSDmitry Baryshkov - power-domains 95f7d46c5eSDmitry Baryshkov - clocks 96f7d46c5eSDmitry Baryshkov - clock-names 97f7d46c5eSDmitry Baryshkov - "#address-cells" 98f7d46c5eSDmitry Baryshkov - "#size-cells" 99f7d46c5eSDmitry Baryshkov - ranges 100f7d46c5eSDmitry Baryshkov 101f7d46c5eSDmitry BaryshkovpatternProperties: 102798cc8f0SDmitry Baryshkov "^display-controller@[1-9a-f][0-9a-f]*$": 103f7d46c5eSDmitry Baryshkov type: object 104e62fc182SRob Herring additionalProperties: true 105f7d46c5eSDmitry Baryshkov properties: 106f7d46c5eSDmitry Baryshkov compatible: 1075c719967SDmitry Baryshkov contains: 108f7d46c5eSDmitry Baryshkov const: qcom,mdp5 109f7d46c5eSDmitry Baryshkov 110f7d46c5eSDmitry Baryshkov "^dsi@[1-9a-f][0-9a-f]*$": 111f7d46c5eSDmitry Baryshkov type: object 112e62fc182SRob Herring additionalProperties: true 113f7d46c5eSDmitry Baryshkov properties: 114f7d46c5eSDmitry Baryshkov compatible: 1150c0f65c6SBryan O'Donoghue contains: 116f7d46c5eSDmitry Baryshkov const: qcom,mdss-dsi-ctrl 117f7d46c5eSDmitry Baryshkov 118f7d46c5eSDmitry Baryshkov "^phy@[1-9a-f][0-9a-f]*$": 119f7d46c5eSDmitry Baryshkov type: object 120e62fc182SRob Herring additionalProperties: true 121f7d46c5eSDmitry Baryshkov properties: 122f7d46c5eSDmitry Baryshkov compatible: 123f7d46c5eSDmitry Baryshkov enum: 124f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm 125f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-660 126f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-8953 127f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-20nm 128d01eb342SLuca Weiss - qcom,dsi-phy-28nm-8226 129f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-hpm 130*3b63880dSAdam Skladowski - qcom,dsi-phy-28nm-hpm-fam-b 131f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-lp 132f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8084 133f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8660 134f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8960 135f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8974 136f7d46c5eSDmitry Baryshkov - qcom,hdmi-phy-8996 137f7d46c5eSDmitry Baryshkov 138f7d46c5eSDmitry Baryshkov "^hdmi-tx@[1-9a-f][0-9a-f]*$": 139f7d46c5eSDmitry Baryshkov type: object 140e62fc182SRob Herring additionalProperties: true 141f7d46c5eSDmitry Baryshkov properties: 142f7d46c5eSDmitry Baryshkov compatible: 143f7d46c5eSDmitry Baryshkov enum: 144f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8084 145f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8660 146f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8960 147f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8974 148f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8994 149f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8996 150f7d46c5eSDmitry Baryshkov 151f7d46c5eSDmitry BaryshkovadditionalProperties: false 152f7d46c5eSDmitry Baryshkov 153f7d46c5eSDmitry Baryshkovexamples: 154f7d46c5eSDmitry Baryshkov - | 155f7d46c5eSDmitry Baryshkov #include <dt-bindings/clock/qcom,gcc-msm8916.h> 156f7d46c5eSDmitry Baryshkov #include <dt-bindings/interrupt-controller/arm-gic.h> 1571413ef55SDmitry Baryshkov display-subsystem@1a00000 { 158f7d46c5eSDmitry Baryshkov compatible = "qcom,mdss"; 159f7d46c5eSDmitry Baryshkov reg = <0x1a00000 0x1000>, 160f7d46c5eSDmitry Baryshkov <0x1ac8000 0x3000>; 161f7d46c5eSDmitry Baryshkov reg-names = "mdss_phys", "vbif_phys"; 162f7d46c5eSDmitry Baryshkov 163f7d46c5eSDmitry Baryshkov power-domains = <&gcc MDSS_GDSC>; 164f7d46c5eSDmitry Baryshkov 165f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 166f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 167f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 168f7d46c5eSDmitry Baryshkov clock-names = "iface", 169f7d46c5eSDmitry Baryshkov "bus", 170f7d46c5eSDmitry Baryshkov "vsync"; 171f7d46c5eSDmitry Baryshkov 172f7d46c5eSDmitry Baryshkov interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 173f7d46c5eSDmitry Baryshkov 174f7d46c5eSDmitry Baryshkov interrupt-controller; 175f7d46c5eSDmitry Baryshkov #interrupt-cells = <1>; 176f7d46c5eSDmitry Baryshkov 177f7d46c5eSDmitry Baryshkov #address-cells = <1>; 178f7d46c5eSDmitry Baryshkov #size-cells = <1>; 179f7d46c5eSDmitry Baryshkov ranges; 180f7d46c5eSDmitry Baryshkov 181798cc8f0SDmitry Baryshkov display-controller@1a01000 { 182798cc8f0SDmitry Baryshkov compatible = "qcom,msm8916-mdp5", "qcom,mdp5"; 183f7d46c5eSDmitry Baryshkov reg = <0x01a01000 0x89000>; 184f7d46c5eSDmitry Baryshkov reg-names = "mdp_phys"; 185f7d46c5eSDmitry Baryshkov 186f7d46c5eSDmitry Baryshkov interrupt-parent = <&mdss>; 187f7d46c5eSDmitry Baryshkov interrupts = <0>; 188f7d46c5eSDmitry Baryshkov 189f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 190f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 191f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_MDP_CLK>, 192f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 193f7d46c5eSDmitry Baryshkov clock-names = "iface", 194f7d46c5eSDmitry Baryshkov "bus", 195f7d46c5eSDmitry Baryshkov "core", 196f7d46c5eSDmitry Baryshkov "vsync"; 197f7d46c5eSDmitry Baryshkov 198f7d46c5eSDmitry Baryshkov iommus = <&apps_iommu 4>; 199f7d46c5eSDmitry Baryshkov 200f7d46c5eSDmitry Baryshkov ports { 201f7d46c5eSDmitry Baryshkov #address-cells = <1>; 202f7d46c5eSDmitry Baryshkov #size-cells = <0>; 203f7d46c5eSDmitry Baryshkov 204f7d46c5eSDmitry Baryshkov port@0 { 205f7d46c5eSDmitry Baryshkov reg = <0>; 206f7d46c5eSDmitry Baryshkov mdp5_intf1_out: endpoint { 207f7d46c5eSDmitry Baryshkov remote-endpoint = <&dsi0_in>; 208f7d46c5eSDmitry Baryshkov }; 209f7d46c5eSDmitry Baryshkov }; 210f7d46c5eSDmitry Baryshkov }; 211f7d46c5eSDmitry Baryshkov }; 212f7d46c5eSDmitry Baryshkov }; 213f7d46c5eSDmitry Baryshkov... 214