1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
22a5c1021SKonrad Dybcio%YAML 1.2
32a5c1021SKonrad Dybcio---
42a5c1021SKonrad Dybcio$id: http://devicetree.org/schemas/display/msm/qcom,sm6375-mdss.yaml#
52a5c1021SKonrad Dybcio$schema: http://devicetree.org/meta-schemas/core.yaml#
62a5c1021SKonrad Dybcio
72a5c1021SKonrad Dybciotitle: Qualcomm SM6375 Display MDSS
82a5c1021SKonrad Dybcio
92a5c1021SKonrad Dybciomaintainers:
102a5c1021SKonrad Dybcio  - Konrad Dybcio <konrad.dybcio@linaro.org>
112a5c1021SKonrad Dybcio
122a5c1021SKonrad Dybciodescription:
132a5c1021SKonrad Dybcio  SM6375 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
142a5c1021SKonrad Dybcio  like DPU display controller, DSI and DP interfaces etc.
152a5c1021SKonrad Dybcio
162a5c1021SKonrad Dybcio$ref: /schemas/display/msm/mdss-common.yaml#
172a5c1021SKonrad Dybcio
182a5c1021SKonrad Dybcioproperties:
192a5c1021SKonrad Dybcio  compatible:
202a5c1021SKonrad Dybcio    const: qcom,sm6375-mdss
212a5c1021SKonrad Dybcio
222a5c1021SKonrad Dybcio  clocks:
232a5c1021SKonrad Dybcio    items:
242a5c1021SKonrad Dybcio      - description: Display AHB clock from gcc
252a5c1021SKonrad Dybcio      - description: Display AHB clock
262a5c1021SKonrad Dybcio      - description: Display core clock
272a5c1021SKonrad Dybcio
282a5c1021SKonrad Dybcio  clock-names:
292a5c1021SKonrad Dybcio    items:
302a5c1021SKonrad Dybcio      - const: iface
312a5c1021SKonrad Dybcio      - const: ahb
322a5c1021SKonrad Dybcio      - const: core
332a5c1021SKonrad Dybcio
342a5c1021SKonrad Dybcio  iommus:
352a5c1021SKonrad Dybcio    maxItems: 1
362a5c1021SKonrad Dybcio
372a5c1021SKonrad Dybcio  interconnects:
382a5c1021SKonrad Dybcio    maxItems: 2
392a5c1021SKonrad Dybcio
402a5c1021SKonrad Dybcio  interconnect-names:
412a5c1021SKonrad Dybcio    maxItems: 2
422a5c1021SKonrad Dybcio
432a5c1021SKonrad DybciopatternProperties:
442a5c1021SKonrad Dybcio  "^display-controller@[0-9a-f]+$":
452a5c1021SKonrad Dybcio    type: object
462a5c1021SKonrad Dybcio    properties:
472a5c1021SKonrad Dybcio      compatible:
482a5c1021SKonrad Dybcio        const: qcom,sm6375-dpu
492a5c1021SKonrad Dybcio
502a5c1021SKonrad Dybcio  "^dsi@[0-9a-f]+$":
512a5c1021SKonrad Dybcio    type: object
522a5c1021SKonrad Dybcio    properties:
532a5c1021SKonrad Dybcio      compatible:
542a5c1021SKonrad Dybcio        items:
552a5c1021SKonrad Dybcio          - const: qcom,sm6375-dsi-ctrl
562a5c1021SKonrad Dybcio          - const: qcom,mdss-dsi-ctrl
572a5c1021SKonrad Dybcio
582a5c1021SKonrad Dybcio  "^phy@[0-9a-f]+$":
592a5c1021SKonrad Dybcio    type: object
602a5c1021SKonrad Dybcio    properties:
612a5c1021SKonrad Dybcio      compatible:
622a5c1021SKonrad Dybcio        const: qcom,sm6375-dsi-phy-7nm
632a5c1021SKonrad Dybcio
642a5c1021SKonrad DybciounevaluatedProperties: false
652a5c1021SKonrad Dybcio
662a5c1021SKonrad Dybcioexamples:
672a5c1021SKonrad Dybcio  - |
682a5c1021SKonrad Dybcio    #include <dt-bindings/clock/qcom,rpmcc.h>
692a5c1021SKonrad Dybcio    #include <dt-bindings/clock/qcom,sm6375-gcc.h>
702a5c1021SKonrad Dybcio    #include <dt-bindings/clock/qcom,sm6375-dispcc.h>
712a5c1021SKonrad Dybcio    #include <dt-bindings/interrupt-controller/arm-gic.h>
722a5c1021SKonrad Dybcio    #include <dt-bindings/power/qcom-rpmpd.h>
732a5c1021SKonrad Dybcio
742a5c1021SKonrad Dybcio    display-subsystem@5e00000 {
752a5c1021SKonrad Dybcio        compatible = "qcom,sm6375-mdss";
762a5c1021SKonrad Dybcio        reg = <0x05e00000 0x1000>;
772a5c1021SKonrad Dybcio        reg-names = "mdss";
782a5c1021SKonrad Dybcio
792a5c1021SKonrad Dybcio        power-domains = <&dispcc MDSS_GDSC>;
802a5c1021SKonrad Dybcio
812a5c1021SKonrad Dybcio        clocks = <&gcc GCC_DISP_AHB_CLK>,
822a5c1021SKonrad Dybcio                 <&dispcc DISP_CC_MDSS_AHB_CLK>,
832a5c1021SKonrad Dybcio                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
842a5c1021SKonrad Dybcio        clock-names = "iface", "ahb", "core";
852a5c1021SKonrad Dybcio
862a5c1021SKonrad Dybcio        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
872a5c1021SKonrad Dybcio        interrupt-controller;
882a5c1021SKonrad Dybcio        #interrupt-cells = <1>;
892a5c1021SKonrad Dybcio
902a5c1021SKonrad Dybcio        iommus = <&apps_smmu 0x820 0x2>;
912a5c1021SKonrad Dybcio        #address-cells = <1>;
922a5c1021SKonrad Dybcio        #size-cells = <1>;
932a5c1021SKonrad Dybcio        ranges;
942a5c1021SKonrad Dybcio
952a5c1021SKonrad Dybcio        display-controller@5e01000 {
962a5c1021SKonrad Dybcio            compatible = "qcom,sm6375-dpu";
972a5c1021SKonrad Dybcio            reg = <0x05e01000 0x8e030>,
982a5c1021SKonrad Dybcio                  <0x05eb0000 0x2008>;
992a5c1021SKonrad Dybcio            reg-names = "mdp", "vbif";
1002a5c1021SKonrad Dybcio
1012a5c1021SKonrad Dybcio            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1022a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1032a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_ROT_CLK>,
1042a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1052a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
1062a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
1072a5c1021SKonrad Dybcio                     <&gcc GCC_DISP_THROTTLE_CORE_CLK>;
1082a5c1021SKonrad Dybcio            clock-names = "bus",
1092a5c1021SKonrad Dybcio                          "iface",
1102a5c1021SKonrad Dybcio                          "rot",
1112a5c1021SKonrad Dybcio                          "lut",
1122a5c1021SKonrad Dybcio                          "core",
1132a5c1021SKonrad Dybcio                          "vsync",
1142a5c1021SKonrad Dybcio                          "throttle";
1152a5c1021SKonrad Dybcio
1162a5c1021SKonrad Dybcio            assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1172a5c1021SKonrad Dybcio            assigned-clock-rates = <19200000>;
1182a5c1021SKonrad Dybcio
1192a5c1021SKonrad Dybcio            operating-points-v2 = <&mdp_opp_table>;
1202a5c1021SKonrad Dybcio            power-domains = <&rpmpd SM6375_VDDCX>;
1212a5c1021SKonrad Dybcio
1222a5c1021SKonrad Dybcio            interrupt-parent = <&mdss>;
1232a5c1021SKonrad Dybcio            interrupts = <0>;
1242a5c1021SKonrad Dybcio
1252a5c1021SKonrad Dybcio            ports {
1262a5c1021SKonrad Dybcio                #address-cells = <1>;
1272a5c1021SKonrad Dybcio                #size-cells = <0>;
1282a5c1021SKonrad Dybcio
1292a5c1021SKonrad Dybcio                port@0 {
1302a5c1021SKonrad Dybcio                    reg = <0>;
1312a5c1021SKonrad Dybcio                    dpu_intf1_out: endpoint {
1322a5c1021SKonrad Dybcio                        remote-endpoint = <&dsi0_in>;
1332a5c1021SKonrad Dybcio                    };
1342a5c1021SKonrad Dybcio                };
1352a5c1021SKonrad Dybcio            };
1362a5c1021SKonrad Dybcio        };
1372a5c1021SKonrad Dybcio
1382a5c1021SKonrad Dybcio        dsi@5e94000 {
1392a5c1021SKonrad Dybcio            compatible = "qcom,sm6375-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1402a5c1021SKonrad Dybcio            reg = <0x05e94000 0x400>;
1412a5c1021SKonrad Dybcio            reg-names = "dsi_ctrl";
1422a5c1021SKonrad Dybcio
1432a5c1021SKonrad Dybcio            interrupt-parent = <&mdss>;
1442a5c1021SKonrad Dybcio            interrupts = <4>;
1452a5c1021SKonrad Dybcio
1462a5c1021SKonrad Dybcio            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1472a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1482a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1492a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1502a5c1021SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1512a5c1021SKonrad Dybcio                     <&gcc GCC_DISP_HF_AXI_CLK>;
1522a5c1021SKonrad Dybcio            clock-names = "byte",
1532a5c1021SKonrad Dybcio                          "byte_intf",
1542a5c1021SKonrad Dybcio                          "pixel",
1552a5c1021SKonrad Dybcio                          "core",
1562a5c1021SKonrad Dybcio                          "iface",
1572a5c1021SKonrad Dybcio                          "bus";
1582a5c1021SKonrad Dybcio
1592a5c1021SKonrad Dybcio            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
1602a5c1021SKonrad Dybcio                              <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1612a5c1021SKonrad Dybcio            assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
1622a5c1021SKonrad Dybcio
1632a5c1021SKonrad Dybcio            operating-points-v2 = <&dsi_opp_table>;
1642a5c1021SKonrad Dybcio            power-domains = <&rpmpd SM6375_VDDMX>;
1652a5c1021SKonrad Dybcio
1662a5c1021SKonrad Dybcio            phys = <&mdss_dsi0_phy>;
1672a5c1021SKonrad Dybcio            phy-names = "dsi";
1682a5c1021SKonrad Dybcio
1692a5c1021SKonrad Dybcio            #address-cells = <1>;
1702a5c1021SKonrad Dybcio            #size-cells = <0>;
1712a5c1021SKonrad Dybcio
1722a5c1021SKonrad Dybcio            ports {
1732a5c1021SKonrad Dybcio                #address-cells = <1>;
1742a5c1021SKonrad Dybcio                #size-cells = <0>;
1752a5c1021SKonrad Dybcio
1762a5c1021SKonrad Dybcio                port@0 {
1772a5c1021SKonrad Dybcio                    reg = <0>;
1782a5c1021SKonrad Dybcio                    dsi0_in: endpoint {
1792a5c1021SKonrad Dybcio                        remote-endpoint = <&dpu_intf1_out>;
1802a5c1021SKonrad Dybcio                    };
1812a5c1021SKonrad Dybcio                };
1822a5c1021SKonrad Dybcio
1832a5c1021SKonrad Dybcio                port@1 {
1842a5c1021SKonrad Dybcio                    reg = <1>;
1852a5c1021SKonrad Dybcio                    dsi0_out: endpoint {
1862a5c1021SKonrad Dybcio                    };
1872a5c1021SKonrad Dybcio                };
1882a5c1021SKonrad Dybcio            };
1892a5c1021SKonrad Dybcio        };
1902a5c1021SKonrad Dybcio
1912a5c1021SKonrad Dybcio        mdss_dsi0_phy: phy@5e94400 {
1922a5c1021SKonrad Dybcio            compatible = "qcom,sm6375-dsi-phy-7nm";
1932a5c1021SKonrad Dybcio            reg = <0x05e94400 0x200>,
1942a5c1021SKonrad Dybcio                  <0x05e94600 0x280>,
1952a5c1021SKonrad Dybcio                  <0x05e94900 0x264>;
1962a5c1021SKonrad Dybcio            reg-names = "dsi_phy",
1972a5c1021SKonrad Dybcio                        "dsi_phy_lane",
1982a5c1021SKonrad Dybcio                        "dsi_pll";
1992a5c1021SKonrad Dybcio
2002a5c1021SKonrad Dybcio            #clock-cells = <1>;
2012a5c1021SKonrad Dybcio            #phy-cells = <0>;
2022a5c1021SKonrad Dybcio
2032a5c1021SKonrad Dybcio            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2042a5c1021SKonrad Dybcio                     <&rpmcc RPM_SMD_XO_CLK_SRC>;
2052a5c1021SKonrad Dybcio            clock-names = "iface", "ref";
2062a5c1021SKonrad Dybcio        };
2072a5c1021SKonrad Dybcio    };
2082a5c1021SKonrad Dybcio...
2092a5c1021SKonrad Dybcio