xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,msm8998-mdss.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
29410872fSDmitry Baryshkov%YAML 1.2
39410872fSDmitry Baryshkov---
49410872fSDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,msm8998-mdss.yaml#
59410872fSDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
69410872fSDmitry Baryshkov
79410872fSDmitry Baryshkovtitle: Qualcomm MSM8998 Display MDSS
89410872fSDmitry Baryshkov
99410872fSDmitry Baryshkovmaintainers:
109410872fSDmitry Baryshkov  - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
119410872fSDmitry Baryshkov
129410872fSDmitry Baryshkovdescription:
139410872fSDmitry Baryshkov  Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
149410872fSDmitry Baryshkov  sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
159410872fSDmitry Baryshkov  bindings of MDSS are mentioned for MSM8998 target.
169410872fSDmitry Baryshkov
179410872fSDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml#
189410872fSDmitry Baryshkov
199410872fSDmitry Baryshkovproperties:
209410872fSDmitry Baryshkov  compatible:
217ad65866SKrzysztof Kozlowski    const: qcom,msm8998-mdss
229410872fSDmitry Baryshkov
239410872fSDmitry Baryshkov  clocks:
249410872fSDmitry Baryshkov    items:
259410872fSDmitry Baryshkov      - description: Display AHB clock
269410872fSDmitry Baryshkov      - description: Display AXI clock
279410872fSDmitry Baryshkov      - description: Display core clock
289410872fSDmitry Baryshkov
299410872fSDmitry Baryshkov  clock-names:
309410872fSDmitry Baryshkov    items:
319410872fSDmitry Baryshkov      - const: iface
329410872fSDmitry Baryshkov      - const: bus
339410872fSDmitry Baryshkov      - const: core
349410872fSDmitry Baryshkov
359410872fSDmitry Baryshkov  iommus:
369410872fSDmitry Baryshkov    maxItems: 1
379410872fSDmitry Baryshkov
389410872fSDmitry BaryshkovpatternProperties:
399410872fSDmitry Baryshkov  "^display-controller@[0-9a-f]+$":
409410872fSDmitry Baryshkov    type: object
419410872fSDmitry Baryshkov    properties:
429410872fSDmitry Baryshkov      compatible:
439410872fSDmitry Baryshkov        const: qcom,msm8998-dpu
449410872fSDmitry Baryshkov
454b32e466SDmitry Baryshkov  "^dsi@[0-9a-f]+$":
464b32e466SDmitry Baryshkov    type: object
474b32e466SDmitry Baryshkov    properties:
484b32e466SDmitry Baryshkov      compatible:
490c0f65c6SBryan O'Donoghue        items:
500c0f65c6SBryan O'Donoghue          - const: qcom,msm8998-dsi-ctrl
510c0f65c6SBryan O'Donoghue          - const: qcom,mdss-dsi-ctrl
524b32e466SDmitry Baryshkov
534b32e466SDmitry Baryshkov  "^phy@[0-9a-f]+$":
544b32e466SDmitry Baryshkov    type: object
554b32e466SDmitry Baryshkov    properties:
564b32e466SDmitry Baryshkov      compatible:
574b32e466SDmitry Baryshkov        const: qcom,dsi-phy-10nm-8998
584b32e466SDmitry Baryshkov
59e96150a6SDmitry Baryshkovrequired:
60e96150a6SDmitry Baryshkov  - compatible
61e96150a6SDmitry Baryshkov
629410872fSDmitry BaryshkovunevaluatedProperties: false
639410872fSDmitry Baryshkov
649410872fSDmitry Baryshkovexamples:
659410872fSDmitry Baryshkov  - |
669410872fSDmitry Baryshkov    #include <dt-bindings/clock/qcom,mmcc-msm8998.h>
674b32e466SDmitry Baryshkov    #include <dt-bindings/clock/qcom,rpmcc.h>
689410872fSDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
699410872fSDmitry Baryshkov    #include <dt-bindings/power/qcom-rpmpd.h>
709410872fSDmitry Baryshkov
719410872fSDmitry Baryshkov    display-subsystem@c900000 {
729410872fSDmitry Baryshkov        compatible = "qcom,msm8998-mdss";
739410872fSDmitry Baryshkov        reg = <0x0c900000 0x1000>;
749410872fSDmitry Baryshkov        reg-names = "mdss";
759410872fSDmitry Baryshkov
769410872fSDmitry Baryshkov        clocks = <&mmcc MDSS_AHB_CLK>,
779410872fSDmitry Baryshkov                 <&mmcc MDSS_AXI_CLK>,
789410872fSDmitry Baryshkov                 <&mmcc MDSS_MDP_CLK>;
799410872fSDmitry Baryshkov        clock-names = "iface", "bus", "core";
809410872fSDmitry Baryshkov
819410872fSDmitry Baryshkov        #address-cells = <1>;
829410872fSDmitry Baryshkov        #interrupt-cells = <1>;
839410872fSDmitry Baryshkov        #size-cells = <1>;
849410872fSDmitry Baryshkov
859410872fSDmitry Baryshkov        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
869410872fSDmitry Baryshkov        interrupt-controller;
879410872fSDmitry Baryshkov        iommus = <&mmss_smmu 0>;
889410872fSDmitry Baryshkov
899410872fSDmitry Baryshkov        power-domains = <&mmcc MDSS_GDSC>;
909410872fSDmitry Baryshkov        ranges;
919410872fSDmitry Baryshkov
929410872fSDmitry Baryshkov        display-controller@c901000 {
939410872fSDmitry Baryshkov            compatible = "qcom,msm8998-dpu";
949410872fSDmitry Baryshkov            reg = <0x0c901000 0x8f000>,
959410872fSDmitry Baryshkov                  <0x0c9a8e00 0xf0>,
969410872fSDmitry Baryshkov                  <0x0c9b0000 0x2008>,
979410872fSDmitry Baryshkov                  <0x0c9b8000 0x1040>;
989410872fSDmitry Baryshkov            reg-names = "mdp", "regdma", "vbif", "vbif_nrt";
999410872fSDmitry Baryshkov
1009410872fSDmitry Baryshkov            clocks = <&mmcc MDSS_AHB_CLK>,
1019410872fSDmitry Baryshkov                     <&mmcc MDSS_AXI_CLK>,
1029410872fSDmitry Baryshkov                     <&mmcc MNOC_AHB_CLK>,
1039410872fSDmitry Baryshkov                     <&mmcc MDSS_MDP_CLK>,
1049410872fSDmitry Baryshkov                     <&mmcc MDSS_VSYNC_CLK>;
1059410872fSDmitry Baryshkov            clock-names = "iface", "bus", "mnoc", "core", "vsync";
1069410872fSDmitry Baryshkov
1079410872fSDmitry Baryshkov            interrupt-parent = <&mdss>;
1089410872fSDmitry Baryshkov            interrupts = <0>;
1099410872fSDmitry Baryshkov            operating-points-v2 = <&mdp_opp_table>;
1109410872fSDmitry Baryshkov            power-domains = <&rpmpd MSM8998_VDDMX>;
1119410872fSDmitry Baryshkov
1129410872fSDmitry Baryshkov            ports {
1139410872fSDmitry Baryshkov                #address-cells = <1>;
1149410872fSDmitry Baryshkov                #size-cells = <0>;
1159410872fSDmitry Baryshkov
1169410872fSDmitry Baryshkov                port@0 {
1179410872fSDmitry Baryshkov                    reg = <0>;
1189410872fSDmitry Baryshkov                    dpu_intf1_out: endpoint {
1199410872fSDmitry Baryshkov                        remote-endpoint = <&dsi0_in>;
1209410872fSDmitry Baryshkov                    };
1219410872fSDmitry Baryshkov                };
1229410872fSDmitry Baryshkov
1239410872fSDmitry Baryshkov                port@1 {
1249410872fSDmitry Baryshkov                    reg = <1>;
1259410872fSDmitry Baryshkov                    dpu_intf2_out: endpoint {
1269410872fSDmitry Baryshkov                        remote-endpoint = <&dsi1_in>;
1279410872fSDmitry Baryshkov                    };
1289410872fSDmitry Baryshkov                };
1299410872fSDmitry Baryshkov            };
1309410872fSDmitry Baryshkov        };
1314b32e466SDmitry Baryshkov
1324b32e466SDmitry Baryshkov        dsi@c994000 {
1330c0f65c6SBryan O'Donoghue            compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1344b32e466SDmitry Baryshkov            reg = <0x0c994000 0x400>;
1354b32e466SDmitry Baryshkov            reg-names = "dsi_ctrl";
1364b32e466SDmitry Baryshkov
1374b32e466SDmitry Baryshkov            interrupt-parent = <&mdss>;
1384b32e466SDmitry Baryshkov            interrupts = <4>;
1394b32e466SDmitry Baryshkov
1404b32e466SDmitry Baryshkov            clocks = <&mmcc MDSS_BYTE0_CLK>,
1414b32e466SDmitry Baryshkov                     <&mmcc MDSS_BYTE0_INTF_CLK>,
1424b32e466SDmitry Baryshkov                     <&mmcc MDSS_PCLK0_CLK>,
1434b32e466SDmitry Baryshkov                     <&mmcc MDSS_ESC0_CLK>,
1444b32e466SDmitry Baryshkov                     <&mmcc MDSS_AHB_CLK>,
1454b32e466SDmitry Baryshkov                     <&mmcc MDSS_AXI_CLK>;
1464b32e466SDmitry Baryshkov            clock-names = "byte",
1474b32e466SDmitry Baryshkov                          "byte_intf",
1484b32e466SDmitry Baryshkov                          "pixel",
1494b32e466SDmitry Baryshkov                          "core",
1504b32e466SDmitry Baryshkov                          "iface",
1514b32e466SDmitry Baryshkov                          "bus";
1524b32e466SDmitry Baryshkov            assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>;
1534b32e466SDmitry Baryshkov            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
1544b32e466SDmitry Baryshkov
1554b32e466SDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
1564b32e466SDmitry Baryshkov            power-domains = <&rpmpd MSM8998_VDDCX>;
1574b32e466SDmitry Baryshkov
1584b32e466SDmitry Baryshkov            phys = <&dsi0_phy>;
1594b32e466SDmitry Baryshkov            phy-names = "dsi";
1604b32e466SDmitry Baryshkov
1614b32e466SDmitry Baryshkov            #address-cells = <1>;
1624b32e466SDmitry Baryshkov            #size-cells = <0>;
1634b32e466SDmitry Baryshkov
1644b32e466SDmitry Baryshkov            ports {
1654b32e466SDmitry Baryshkov                #address-cells = <1>;
1664b32e466SDmitry Baryshkov                #size-cells = <0>;
1674b32e466SDmitry Baryshkov
1684b32e466SDmitry Baryshkov                port@0 {
1694b32e466SDmitry Baryshkov                    reg = <0>;
1704b32e466SDmitry Baryshkov                    dsi0_in: endpoint {
1714b32e466SDmitry Baryshkov                        remote-endpoint = <&dpu_intf1_out>;
1724b32e466SDmitry Baryshkov                    };
1734b32e466SDmitry Baryshkov                };
1744b32e466SDmitry Baryshkov
1754b32e466SDmitry Baryshkov                port@1 {
1764b32e466SDmitry Baryshkov                    reg = <1>;
1774b32e466SDmitry Baryshkov                    dsi0_out: endpoint {
1784b32e466SDmitry Baryshkov                    };
1794b32e466SDmitry Baryshkov                };
1804b32e466SDmitry Baryshkov            };
1814b32e466SDmitry Baryshkov        };
1824b32e466SDmitry Baryshkov
1834b32e466SDmitry Baryshkov        dsi0_phy: phy@c994400 {
1844b32e466SDmitry Baryshkov            compatible = "qcom,dsi-phy-10nm-8998";
1854b32e466SDmitry Baryshkov            reg = <0x0c994400 0x200>,
1864b32e466SDmitry Baryshkov                  <0x0c994600 0x280>,
1874b32e466SDmitry Baryshkov                  <0x0c994a00 0x1e0>;
1884b32e466SDmitry Baryshkov            reg-names = "dsi_phy",
1894b32e466SDmitry Baryshkov                        "dsi_phy_lane",
1904b32e466SDmitry Baryshkov                        "dsi_pll";
1914b32e466SDmitry Baryshkov
1924b32e466SDmitry Baryshkov            #clock-cells = <1>;
1934b32e466SDmitry Baryshkov            #phy-cells = <0>;
1944b32e466SDmitry Baryshkov
1954b32e466SDmitry Baryshkov            clocks = <&mmcc MDSS_AHB_CLK>,
1964b32e466SDmitry Baryshkov                     <&rpmcc RPM_SMD_XO_CLK_SRC>;
1974b32e466SDmitry Baryshkov            clock-names = "iface", "ref";
1984b32e466SDmitry Baryshkov
1994b32e466SDmitry Baryshkov            vdds-supply = <&pm8998_l1>;
2004b32e466SDmitry Baryshkov        };
2014b32e466SDmitry Baryshkov
2024b32e466SDmitry Baryshkov        dsi@c996000 {
2030c0f65c6SBryan O'Donoghue            compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2044b32e466SDmitry Baryshkov            reg = <0x0c996000 0x400>;
2054b32e466SDmitry Baryshkov            reg-names = "dsi_ctrl";
2064b32e466SDmitry Baryshkov
2074b32e466SDmitry Baryshkov            interrupt-parent = <&mdss>;
2084b32e466SDmitry Baryshkov            interrupts = <5>;
2094b32e466SDmitry Baryshkov
2104b32e466SDmitry Baryshkov            clocks = <&mmcc MDSS_BYTE1_CLK>,
2114b32e466SDmitry Baryshkov                     <&mmcc MDSS_BYTE1_INTF_CLK>,
2124b32e466SDmitry Baryshkov                     <&mmcc MDSS_PCLK1_CLK>,
2134b32e466SDmitry Baryshkov                     <&mmcc MDSS_ESC1_CLK>,
2144b32e466SDmitry Baryshkov                     <&mmcc MDSS_AHB_CLK>,
2154b32e466SDmitry Baryshkov                     <&mmcc MDSS_AXI_CLK>;
2164b32e466SDmitry Baryshkov            clock-names = "byte",
2174b32e466SDmitry Baryshkov                          "byte_intf",
2184b32e466SDmitry Baryshkov                          "pixel",
2194b32e466SDmitry Baryshkov                          "core",
2204b32e466SDmitry Baryshkov                          "iface",
2214b32e466SDmitry Baryshkov                          "bus";
2224b32e466SDmitry Baryshkov            assigned-clocks = <&mmcc BYTE1_CLK_SRC>, <&mmcc PCLK1_CLK_SRC>;
2234b32e466SDmitry Baryshkov            assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
2244b32e466SDmitry Baryshkov
2254b32e466SDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
2264b32e466SDmitry Baryshkov            power-domains = <&rpmpd MSM8998_VDDCX>;
2274b32e466SDmitry Baryshkov
2284b32e466SDmitry Baryshkov            phys = <&dsi1_phy>;
2294b32e466SDmitry Baryshkov            phy-names = "dsi";
2304b32e466SDmitry Baryshkov
2314b32e466SDmitry Baryshkov            #address-cells = <1>;
2324b32e466SDmitry Baryshkov            #size-cells = <0>;
2334b32e466SDmitry Baryshkov
2344b32e466SDmitry Baryshkov            ports {
2354b32e466SDmitry Baryshkov                #address-cells = <1>;
2364b32e466SDmitry Baryshkov                #size-cells = <0>;
2374b32e466SDmitry Baryshkov
2384b32e466SDmitry Baryshkov                port@0 {
2394b32e466SDmitry Baryshkov                    reg = <0>;
2404b32e466SDmitry Baryshkov                    dsi1_in: endpoint {
2414b32e466SDmitry Baryshkov                        remote-endpoint = <&dpu_intf2_out>;
2424b32e466SDmitry Baryshkov                    };
2434b32e466SDmitry Baryshkov                };
2444b32e466SDmitry Baryshkov
2454b32e466SDmitry Baryshkov                port@1 {
2464b32e466SDmitry Baryshkov                    reg = <1>;
2474b32e466SDmitry Baryshkov                    dsi1_out: endpoint {
2484b32e466SDmitry Baryshkov                    };
2494b32e466SDmitry Baryshkov                };
2504b32e466SDmitry Baryshkov            };
2514b32e466SDmitry Baryshkov        };
2524b32e466SDmitry Baryshkov
2534b32e466SDmitry Baryshkov        dsi1_phy: phy@c996400 {
2544b32e466SDmitry Baryshkov            compatible = "qcom,dsi-phy-10nm-8998";
2554b32e466SDmitry Baryshkov            reg = <0x0c996400 0x200>,
2564b32e466SDmitry Baryshkov                  <0x0c996600 0x280>,
2574b32e466SDmitry Baryshkov                  <0x0c996a00 0x10e>;
2584b32e466SDmitry Baryshkov            reg-names = "dsi_phy",
2594b32e466SDmitry Baryshkov                        "dsi_phy_lane",
2604b32e466SDmitry Baryshkov                        "dsi_pll";
2614b32e466SDmitry Baryshkov
2624b32e466SDmitry Baryshkov            #clock-cells = <1>;
2634b32e466SDmitry Baryshkov            #phy-cells = <0>;
2644b32e466SDmitry Baryshkov
2654b32e466SDmitry Baryshkov            clocks = <&mmcc MDSS_AHB_CLK>,
2664b32e466SDmitry Baryshkov                     <&rpmcc RPM_SMD_XO_CLK_SRC>;
2674b32e466SDmitry Baryshkov            clock-names = "iface", "ref";
2684b32e466SDmitry Baryshkov
2694b32e466SDmitry Baryshkov            vdds-supply = <&pm8998_l1>;
2704b32e466SDmitry Baryshkov        };
2719410872fSDmitry Baryshkov    };
2729410872fSDmitry Baryshkov...
273