1f7d46c5eSDmitry Baryshkov# 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: 14f7d46c5eSDmitry Baryshkov This is the bindings documentation for the Mobile Display Subsytem(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: 102*798cc8f0SDmitry Baryshkov "^display-controller@[1-9a-f][0-9a-f]*$": 103f7d46c5eSDmitry Baryshkov type: object 104f7d46c5eSDmitry Baryshkov properties: 105f7d46c5eSDmitry Baryshkov compatible: 1065c719967SDmitry Baryshkov contains: 107f7d46c5eSDmitry Baryshkov const: qcom,mdp5 108f7d46c5eSDmitry Baryshkov 109f7d46c5eSDmitry Baryshkov "^dsi@[1-9a-f][0-9a-f]*$": 110f7d46c5eSDmitry Baryshkov type: object 111f7d46c5eSDmitry Baryshkov properties: 112f7d46c5eSDmitry Baryshkov compatible: 113f7d46c5eSDmitry Baryshkov const: qcom,mdss-dsi-ctrl 114f7d46c5eSDmitry Baryshkov 115f7d46c5eSDmitry Baryshkov "^phy@[1-9a-f][0-9a-f]*$": 116f7d46c5eSDmitry Baryshkov type: object 117f7d46c5eSDmitry Baryshkov properties: 118f7d46c5eSDmitry Baryshkov compatible: 119f7d46c5eSDmitry Baryshkov enum: 120f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm 121f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-660 122f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-14nm-8953 123f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-20nm 124f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-hpm 125f7d46c5eSDmitry Baryshkov - qcom,dsi-phy-28nm-lp 126f7d46c5eSDmitry Baryshkov 127f7d46c5eSDmitry Baryshkov "^hdmi-phy@[1-9a-f][0-9a-f]*$": 128f7d46c5eSDmitry Baryshkov type: object 129f7d46c5eSDmitry Baryshkov properties: 130f7d46c5eSDmitry Baryshkov compatible: 131f7d46c5eSDmitry Baryshkov enum: 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 140f7d46c5eSDmitry Baryshkov properties: 141f7d46c5eSDmitry Baryshkov compatible: 142f7d46c5eSDmitry Baryshkov enum: 143f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8084 144f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8660 145f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8960 146f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8974 147f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8994 148f7d46c5eSDmitry Baryshkov - qcom,hdmi-tx-8996 149f7d46c5eSDmitry Baryshkov 150f7d46c5eSDmitry BaryshkovadditionalProperties: false 151f7d46c5eSDmitry Baryshkov 152f7d46c5eSDmitry Baryshkovexamples: 153f7d46c5eSDmitry Baryshkov - | 154f7d46c5eSDmitry Baryshkov #include <dt-bindings/clock/qcom,gcc-msm8916.h> 155f7d46c5eSDmitry Baryshkov #include <dt-bindings/interrupt-controller/arm-gic.h> 1561413ef55SDmitry Baryshkov display-subsystem@1a00000 { 157f7d46c5eSDmitry Baryshkov compatible = "qcom,mdss"; 158f7d46c5eSDmitry Baryshkov reg = <0x1a00000 0x1000>, 159f7d46c5eSDmitry Baryshkov <0x1ac8000 0x3000>; 160f7d46c5eSDmitry Baryshkov reg-names = "mdss_phys", "vbif_phys"; 161f7d46c5eSDmitry Baryshkov 162f7d46c5eSDmitry Baryshkov power-domains = <&gcc MDSS_GDSC>; 163f7d46c5eSDmitry Baryshkov 164f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 165f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 166f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 167f7d46c5eSDmitry Baryshkov clock-names = "iface", 168f7d46c5eSDmitry Baryshkov "bus", 169f7d46c5eSDmitry Baryshkov "vsync"; 170f7d46c5eSDmitry Baryshkov 171f7d46c5eSDmitry Baryshkov interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 172f7d46c5eSDmitry Baryshkov 173f7d46c5eSDmitry Baryshkov interrupt-controller; 174f7d46c5eSDmitry Baryshkov #interrupt-cells = <1>; 175f7d46c5eSDmitry Baryshkov 176f7d46c5eSDmitry Baryshkov #address-cells = <1>; 177f7d46c5eSDmitry Baryshkov #size-cells = <1>; 178f7d46c5eSDmitry Baryshkov ranges; 179f7d46c5eSDmitry Baryshkov 180*798cc8f0SDmitry Baryshkov display-controller@1a01000 { 181*798cc8f0SDmitry Baryshkov compatible = "qcom,msm8916-mdp5", "qcom,mdp5"; 182f7d46c5eSDmitry Baryshkov reg = <0x01a01000 0x89000>; 183f7d46c5eSDmitry Baryshkov reg-names = "mdp_phys"; 184f7d46c5eSDmitry Baryshkov 185f7d46c5eSDmitry Baryshkov interrupt-parent = <&mdss>; 186f7d46c5eSDmitry Baryshkov interrupts = <0>; 187f7d46c5eSDmitry Baryshkov 188f7d46c5eSDmitry Baryshkov clocks = <&gcc GCC_MDSS_AHB_CLK>, 189f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_AXI_CLK>, 190f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_MDP_CLK>, 191f7d46c5eSDmitry Baryshkov <&gcc GCC_MDSS_VSYNC_CLK>; 192f7d46c5eSDmitry Baryshkov clock-names = "iface", 193f7d46c5eSDmitry Baryshkov "bus", 194f7d46c5eSDmitry Baryshkov "core", 195f7d46c5eSDmitry Baryshkov "vsync"; 196f7d46c5eSDmitry Baryshkov 197f7d46c5eSDmitry Baryshkov iommus = <&apps_iommu 4>; 198f7d46c5eSDmitry Baryshkov 199f7d46c5eSDmitry Baryshkov ports { 200f7d46c5eSDmitry Baryshkov #address-cells = <1>; 201f7d46c5eSDmitry Baryshkov #size-cells = <0>; 202f7d46c5eSDmitry Baryshkov 203f7d46c5eSDmitry Baryshkov port@0 { 204f7d46c5eSDmitry Baryshkov reg = <0>; 205f7d46c5eSDmitry Baryshkov mdp5_intf1_out: endpoint { 206f7d46c5eSDmitry Baryshkov remote-endpoint = <&dsi0_in>; 207f7d46c5eSDmitry Baryshkov }; 208f7d46c5eSDmitry Baryshkov }; 209f7d46c5eSDmitry Baryshkov }; 210f7d46c5eSDmitry Baryshkov }; 211f7d46c5eSDmitry Baryshkov }; 212f7d46c5eSDmitry Baryshkov... 213