Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2018, Craig Tatlor.
0004  * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
0005  * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com>
0006  * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com>
0007  * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com>
0008  */
0009 
0010 #include "sdm630.dtsi"
0011 
0012 &adreno_gpu {
0013         compatible = "qcom,adreno-512.0", "qcom,adreno";
0014         operating-points-v2 = <&gpu_sdm660_opp_table>;
0015 
0016         gpu_sdm660_opp_table: opp-table {
0017                 compatible = "operating-points-v2";
0018 
0019                 /*
0020                  * 775MHz is only available on the highest speed bin
0021                  * Though it cannot be used for now due to interconnect
0022                  * framework not supporting multiple frequencies
0023                  * at the same opp-level
0024 
0025                 opp-750000000 {
0026                         opp-hz = /bits/ 64 <750000000>;
0027                         opp-level = <RPM_SMD_LEVEL_TURBO>;
0028                         opp-peak-kBps = <5412000>;
0029                         opp-supported-hw = <0xCHECKME>;
0030                 };
0031 
0032                 * These OPPs are correct, but we are lacking support for the
0033                 * GPU regulator. Hence, disable them for now to prevent the
0034                 * platform from hanging on high graphics loads.
0035 
0036                 opp-700000000 {
0037                         opp-hz = /bits/ 64 <700000000>;
0038                         opp-level = <RPM_SMD_LEVEL_TURBO>;
0039                         opp-peak-kBps = <5184000>;
0040                         opp-supported-hw = <0xFF>;
0041                 };
0042 
0043                 opp-647000000 {
0044                         opp-hz = /bits/ 64 <647000000>;
0045                         opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
0046                         opp-peak-kBps = <4068000>;
0047                         opp-supported-hw = <0xFF>;
0048                 };
0049 
0050                 opp-588000000 {
0051                         opp-hz = /bits/ 64 <588000000>;
0052                         opp-level = <RPM_SMD_LEVEL_NOM>;
0053                         opp-peak-kBps = <3072000>;
0054                         opp-supported-hw = <0xFF>;
0055                 };
0056 
0057                 opp-465000000 {
0058                         opp-hz = /bits/ 64 <465000000>;
0059                         opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
0060                         opp-peak-kBps = <2724000>;
0061                         opp-supported-hw = <0xFF>;
0062                 };
0063 
0064                 opp-370000000 {
0065                         opp-hz = /bits/ 64 <370000000>;
0066                         opp-level = <RPM_SMD_LEVEL_SVS>;
0067                         opp-peak-kBps = <2188000>;
0068                         opp-supported-hw = <0xFF>;
0069                 };
0070                 */
0071 
0072                 opp-266000000 {
0073                         opp-hz = /bits/ 64 <266000000>;
0074                         opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
0075                         opp-peak-kBps = <1648000>;
0076                         opp-supported-hw = <0xFF>;
0077                 };
0078 
0079                 opp-160000000 {
0080                         opp-hz = /bits/ 64 <160000000>;
0081                         opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
0082                         opp-peak-kBps = <1200000>;
0083                         opp-supported-hw = <0xFF>;
0084                 };
0085         };
0086 };
0087 
0088 &CPU0 {
0089         compatible = "qcom,kryo260";
0090         capacity-dmips-mhz = <1024>;
0091         /delete-property/ operating-points-v2;
0092 };
0093 
0094 &CPU1 {
0095         compatible = "qcom,kryo260";
0096         capacity-dmips-mhz = <1024>;
0097         /delete-property/ operating-points-v2;
0098 };
0099 
0100 &CPU2 {
0101         compatible = "qcom,kryo260";
0102         capacity-dmips-mhz = <1024>;
0103         /delete-property/ operating-points-v2;
0104 };
0105 
0106 &CPU3 {
0107         compatible = "qcom,kryo260";
0108         capacity-dmips-mhz = <1024>;
0109         /delete-property/ operating-points-v2;
0110 };
0111 
0112 &CPU4 {
0113         compatible = "qcom,kryo260";
0114         capacity-dmips-mhz = <640>;
0115         /delete-property/ operating-points-v2;
0116 };
0117 
0118 &CPU5 {
0119         compatible = "qcom,kryo260";
0120         capacity-dmips-mhz = <640>;
0121         /delete-property/ operating-points-v2;
0122 };
0123 
0124 &CPU6 {
0125         compatible = "qcom,kryo260";
0126         capacity-dmips-mhz = <640>;
0127         /delete-property/ operating-points-v2;
0128 };
0129 
0130 &CPU7 {
0131         compatible = "qcom,kryo260";
0132         capacity-dmips-mhz = <640>;
0133         /delete-property/ operating-points-v2;
0134 };
0135 
0136 &gcc {
0137         compatible = "qcom,gcc-sdm660";
0138 };
0139 
0140 &gpucc {
0141         compatible = "qcom,gpucc-sdm660";
0142 };
0143 
0144 &mdp {
0145         ports {
0146                 port@1 {
0147                         reg = <1>;
0148                         mdp5_intf2_out: endpoint {
0149                                 remote-endpoint = <&dsi1_in>;
0150                         };
0151                 };
0152         };
0153 };
0154 
0155 &mdss {
0156         dsi1: dsi@c996000 {
0157                 compatible = "qcom,mdss-dsi-ctrl";
0158                 reg = <0x0c996000 0x400>;
0159                 reg-names = "dsi_ctrl";
0160 
0161                 /* DSI1 shares the OPP table with DSI0 */
0162                 operating-points-v2 = <&dsi_opp_table>;
0163                 power-domains = <&rpmpd SDM660_VDDCX>;
0164 
0165                 interrupt-parent = <&mdss>;
0166                 interrupts = <5>;
0167 
0168                 assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
0169                                         <&mmcc PCLK1_CLK_SRC>;
0170                 assigned-clock-parents = <&dsi1_phy 0>,
0171                                                 <&dsi1_phy 1>;
0172 
0173                 clocks = <&mmcc MDSS_MDP_CLK>,
0174                                 <&mmcc MDSS_BYTE1_CLK>,
0175                                 <&mmcc MDSS_BYTE1_INTF_CLK>,
0176                                 <&mmcc MNOC_AHB_CLK>,
0177                                 <&mmcc MDSS_AHB_CLK>,
0178                                 <&mmcc MDSS_AXI_CLK>,
0179                                 <&mmcc MISC_AHB_CLK>,
0180                                 <&mmcc MDSS_PCLK1_CLK>,
0181                                 <&mmcc MDSS_ESC1_CLK>;
0182                 clock-names = "mdp_core",
0183                                         "byte",
0184                                         "byte_intf",
0185                                         "mnoc",
0186                                         "iface",
0187                                         "bus",
0188                                         "core_mmss",
0189                                         "pixel",
0190                                         "core";
0191 
0192                 phys = <&dsi1_phy>;
0193                 phy-names = "dsi";
0194 
0195                 status = "disabled";
0196 
0197                 ports {
0198                         #address-cells = <1>;
0199                         #size-cells = <0>;
0200 
0201                         port@0 {
0202                                 reg = <0>;
0203                                 dsi1_in: endpoint {
0204                                         remote-endpoint = <&mdp5_intf2_out>;
0205                                 };
0206                         };
0207 
0208                         port@1 {
0209                                 reg = <1>;
0210                                 dsi1_out: endpoint {
0211                                 };
0212                         };
0213                 };
0214         };
0215 
0216         dsi1_phy: dsi-phy@c996400 {
0217                 compatible = "qcom,dsi-phy-14nm-660";
0218                 reg = <0x0c996400 0x100>,
0219                                 <0x0c996500 0x300>,
0220                                 <0x0c996800 0x188>;
0221                 reg-names = "dsi_phy",
0222                                 "dsi_phy_lane",
0223                                 "dsi_pll";
0224 
0225                 #clock-cells = <1>;
0226                 #phy-cells = <0>;
0227 
0228                 clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
0229                 clock-names = "iface", "ref";
0230                 status = "disabled";
0231         };
0232 };
0233 
0234 &mmcc {
0235         compatible = "qcom,mmcc-sdm660";
0236         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
0237                         <&sleep_clk>,
0238                         <&gcc GCC_MMSS_GPLL0_CLK>,
0239                         <&gcc GCC_MMSS_GPLL0_DIV_CLK>,
0240                         <&dsi0_phy 1>,
0241                         <&dsi0_phy 0>,
0242                         <&dsi1_phy 1>,
0243                         <&dsi1_phy 0>,
0244                         <0>,
0245                         <0>;
0246 };
0247 
0248 &tlmm {
0249         compatible = "qcom,sdm660-pinctrl";
0250 };
0251 
0252 &tsens {
0253         #qcom,sensors = <14>;
0254 };