blob: 229d06b786e141bc529f15baee1c72da456124c8 [file] [log] [blame]
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm845.dtsi"
#include "sdm845-v2-camera.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM845 V2";
qcom,msm-id = <321 0x20000>;
};
&sdhc_2 {
/delete-property/ qcom,sdr104-wa;
};
/delete-node/ &pdc;
&tlmm {
compatible = "qcom,sdm845-pinctrl-v2";
};
&soc {
qcom,memshare {
compatible = "qcom,memshare";
qcom,client_1 {
compatible = "qcom,memshare-peripheral";
qcom,peripheral-size = <0x0>;
qcom,client-id = <0>;
qcom,allocate-boot-time;
label = "modem";
};
qcom,client_2 {
compatible = "qcom,memshare-peripheral";
qcom,peripheral-size = <0x0>;
qcom,client-id = <2>;
label = "modem";
};
mem_client_3_size: qcom,client_3 {
compatible = "qcom,memshare-peripheral";
qcom,peripheral-size = <0x500000>;
qcom,client-id = <1>;
qcom,allocate-on-request;
label = "modem";
};
};
gpu_gx_domain_addr: syscon@0x5091508 {
compatible = "syscon";
reg = <0x5091508 0x4>;
};
gpu_gx_sw_reset: syscon@0x5091008 {
compatible = "syscon";
reg = <0x5091008 0x4>;
};
pdc: interrupt-controller@0xb220000{
compatible = "qcom,pdc-sdm845-v2";
reg = <0xb220000 0x400>;
#interrupt-cells = <3>;
interrupt-parent = <&intc>;
interrupt-controller;
};
};
&pil_modem {
qcom,mss_pdc_offset = <9>;
};
&clock_cpucc {
compatible = "qcom,clk-cpu-osm-v2";
};
&pcie1 {
qcom,phy-sequence = <0x1804 0x03 0x0
0x00dc 0x27 0x0
0x0014 0x01 0x0
0x0020 0x31 0x0
0x0024 0x01 0x0
0x0028 0xde 0x0
0x002c 0x07 0x0
0x0034 0x4c 0x0
0x0038 0x06 0x0
0x0054 0x18 0x0
0x0058 0xb0 0x0
0x006c 0x8c 0x0
0x0070 0x20 0x0
0x0078 0x14 0x0
0x007c 0x34 0x0
0x00b4 0x06 0x0
0x00b8 0x06 0x0
0x00c0 0x16 0x0
0x00c4 0x16 0x0
0x00cc 0x36 0x0
0x00d0 0x36 0x0
0x00f0 0x05 0x0
0x00f8 0x42 0x0
0x0100 0x82 0x0
0x0108 0x68 0x0
0x011c 0x55 0x0
0x0120 0x55 0x0
0x0124 0x03 0x0
0x0128 0xab 0x0
0x012c 0xaa 0x0
0x0130 0x02 0x0
0x0150 0x3f 0x0
0x0158 0x3f 0x0
0x0178 0x10 0x0
0x01cc 0x04 0x0
0x01d0 0x30 0x0
0x01e0 0x04 0x0
0x01e8 0x73 0x0
0x01f0 0x1c 0x0
0x01fc 0x15 0x0
0x021c 0x04 0x0
0x0224 0x01 0x0
0x0228 0x22 0x0
0x022c 0x00 0x0
0x0098 0x05 0x0
0x080c 0x00 0x0
0x0818 0x0d 0x0
0x0860 0x01 0x0
0x0864 0x3a 0x0
0x087c 0x2f 0x0
0x08c0 0x09 0x0
0x08c4 0x09 0x0
0x08c8 0x1a 0x0
0x08d0 0x01 0x0
0x08d4 0x07 0x0
0x08d8 0x31 0x0
0x08dc 0x31 0x0
0x08e0 0x03 0x0
0x08fc 0x02 0x0
0x0900 0x01 0x0
0x0908 0x12 0x0
0x0914 0x25 0x0
0x0918 0x00 0x0
0x091c 0x05 0x0
0x0920 0x01 0x0
0x0924 0x26 0x0
0x0928 0x12 0x0
0x0930 0x04 0x0
0x0934 0x04 0x0
0x0938 0x09 0x0
0x0954 0x15 0x0
0x0960 0x32 0x0
0x0968 0x7f 0x0
0x096c 0x07 0x0
0x0978 0x04 0x0
0x0980 0x70 0x0
0x0984 0x8b 0x0
0x0988 0x08 0x0
0x098c 0x09 0x0
0x0990 0x03 0x0
0x0994 0x04 0x0
0x0998 0x02 0x0
0x099c 0x0c 0x0
0x09a4 0x02 0x0
0x09c0 0x5c 0x0
0x09c4 0x3e 0x0
0x09c8 0x3f 0x0
0x0a30 0x01 0x0
0x0a34 0xa0 0x0
0x0a38 0x08 0x0
0x0aa4 0x01 0x0
0x0aac 0xc3 0x0
0x0ab0 0x00 0x0
0x0ab8 0x8c 0x0
0x0ac0 0x7f 0x0
0x0ac4 0x2a 0x0
0x0810 0x0c 0x0
0x0814 0x00 0x0
0x0acc 0x04 0x0
0x093c 0x20 0x0
0x100c 0x00 0x0
0x1018 0x0d 0x0
0x1060 0x01 0x0
0x1064 0x3a 0x0
0x107c 0x2f 0x0
0x10c0 0x09 0x0
0x10c4 0x09 0x0
0x10c8 0x1a 0x0
0x10d0 0x01 0x0
0x10d4 0x07 0x0
0x10d8 0x31 0x0
0x10dc 0x31 0x0
0x10e0 0x03 0x0
0x10fc 0x02 0x0
0x1100 0x01 0x0
0x1108 0x12 0x0
0x1114 0x25 0x0
0x1118 0x00 0x0
0x111c 0x05 0x0
0x1120 0x01 0x0
0x1124 0x26 0x0
0x1128 0x12 0x0
0x1130 0x04 0x0
0x1134 0x04 0x0
0x1138 0x09 0x0
0x1154 0x15 0x0
0x1160 0x32 0x0
0x1168 0x7f 0x0
0x116c 0x07 0x0
0x1178 0x04 0x0
0x1180 0x70 0x0
0x1184 0x8b 0x0
0x1188 0x08 0x0
0x118c 0x09 0x0
0x1190 0x03 0x0
0x1194 0x04 0x0
0x1198 0x02 0x0
0x119c 0x0c 0x0
0x11a4 0x02 0x0
0x11c0 0x5c 0x0
0x11c4 0x3e 0x0
0x11c8 0x3f 0x0
0x1230 0x01 0x0
0x1234 0xa0 0x0
0x1238 0x08 0x0
0x12a4 0x01 0x0
0x12ac 0xc3 0x0
0x12b0 0x00 0x0
0x12b8 0x8c 0x0
0x12c0 0x7f 0x0
0x12c4 0x2a 0x0
0x1010 0x0c 0x0
0x1014 0x0f 0x0
0x12cc 0x04 0x0
0x113c 0x20 0x0
0x195c 0x3f 0x0
0x1974 0x50 0x0
0x196c 0x9f 0x0
0x182c 0x19 0x0
0x1840 0x07 0x0
0x1854 0x17 0x0
0x1868 0x09 0x0
0x1800 0x00 0x0
0x0aa8 0x01 0x0
0x12a8 0x01 0x0
0x1808 0x01 0x0>;
};
&devfreq_l3lat_0 {
qcom,core-dev-table =
< 300000 300000000 >,
< 480000 403200000 >,
< 652800 480000000 >,
< 748800 576000000 >,
< 902400 652800000 >,
< 979200 748800000 >,
< 1132800 844800000 >,
< 1228800 940800000 >,
< 1324800 1036800000 >,
< 1420800 1132800000 >,
< 1516800 1209600000 >,
< 1689600 1305600000 >,
< 1766400 1401600000 >;
};
&devfreq_l3lat_4 {
qcom,core-dev-table =
< 300000 300000000 >,
< 825600 576000000 >,
< 1132800 748800000 >,
< 1363200 940800000 >,
< 1689600 1209600000 >,
< 1996800 1305600000 >,
< 2400000 1401600000 >,
< 2745600 1593600000 >;
};
&bwmon {
qcom,count-unit = <0x10000>;
};
&cpubw {
qcom,bw-tbl =
< MHZ_TO_MBPS(150, 16) >, /* 2288 MB/s */
< MHZ_TO_MBPS(300, 16) >, /* 4577 MB/s */
< MHZ_TO_MBPS(426, 16) >, /* 6500 MB/s */
< MHZ_TO_MBPS(533, 16) >, /* 8132 MB/s */
< MHZ_TO_MBPS(600, 16) >, /* 9155 MB/s */
< MHZ_TO_MBPS(806, 16) >, /* 12298 MB/s */
< MHZ_TO_MBPS(933, 16) >; /* 14236 MB/s */
};
&devfreq_cpufreq {
mincpubw-cpufreq {
cpu-to-dev-map-4 =
< 1881600 MHZ_TO_MBPS(200, 4) >,
< 2400000 MHZ_TO_MBPS(1017, 4) >;
};
};
&devfreq_compute {
qcom,core-dev-table =
< 1881600 MHZ_TO_MBPS( 200, 4) >,
< 2649600 MHZ_TO_MBPS(1017, 4) >,
< 2745600 MHZ_TO_MBPS(1804, 4) >;
};
&clock_gcc {
compatible = "qcom,gcc-sdm845-v2", "syscon";
};
&clock_camcc {
compatible = "qcom,cam_cc-sdm845-v2", "syscon";
qcom,cam_cc_csi3phytimer_clk_src-opp-handle = <&cam_csiphy3>;
};
&clock_dispcc {
compatible = "qcom,dispcc-sdm845-v2", "syscon";
};
&clock_gpucc {
compatible = "qcom,gpucc-sdm845-v2", "syscon";
};
&clock_gfx {
compatible = "qcom,gfxcc-sdm845-v2";
};
&clock_videocc {
compatible = "qcom,video_cc-sdm845-v2", "syscon";
};
&msm_vidc {
qcom,allowed-clock-rates = <100000000 200000000 330000000
404000000 444000000 533000000>;
};
&refgen {
status = "ok";
};
&spss_utils {
qcom,spss-dev-firmware-name = "spss2d"; /* 8 chars max */
qcom,spss-test-firmware-name = "spss2t"; /* 8 chars max */
qcom,spss-prod-firmware-name = "spss2p"; /* 8 chars max */
};
&mdss_mdp {
clock-max-rate = <0 0 0 0 430000000 19200000 0>;
qcom,sde-min-core-ib-kbps = <4800000>;
qcom,sde-max-bw-low-kbps = <9600000>;
qcom,sde-max-bw-high-kbps = <9600000>;
};
&mdss_dsi0 {
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "refgen";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
&mdss_dsi1 {
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "refgen";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
&sde_dp {
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "refgen";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
&energy_costs {
CPU_COST_0: core-cost0 {
busy-cost-data = <
300000 12
403200 17
480000 21
576000 27
652800 31
748800 37
825600 42
902400 47
979200 52
1056000 57
1132800 62
1228800 70
1324800 78
1420800 89
1516800 103
1612800 122
1689600 141
1766400 160
>;
idle-cost-data = <
10 8 6 4
>;
};
CPU_COST_1: core-cost1 {
busy-cost-data = <
300000 189
403200 523
480000 763
576000 1052
652800 1273
748800 1536
825600 1736
902400 1926
979200 2108
1056000 2284
1132800 2456
1209600 2628
1286400 2804
1363200 2992
1459200 3255
1536000 3499
1612800 3786
1689600 4128
1766400 4535
1843200 5019
1920000 5583
1996800 6226
2092800 7120
2169600 7876
2246400 8628
2323200 9344
2400000 10030
2476800 10806
2553600 12045
2649600 15686
2745600 25586
2764800 30000
2784000 35000
2803200 40000
2841600 50000
2956800 60000
>;
idle-cost-data = <
100 80 60 40
>;
};
CLUSTER_COST_0: cluster-cost0 {
busy-cost-data = <
300000 3
403200 4
480000 4
576000 4
652800 5
748800 5
825600 6
902400 7
979200 7
1056000 8
1132800 9
1228800 9
1324800 10
1420800 11
1516800 12
1612800 13
1689600 15
1766400 17
>;
idle-cost-data = <
4 3 2 1
>;
};
CLUSTER_COST_1: cluster-cost1 {
busy-cost-data = <
300000 24
403200 24
480000 25
576000 25
652800 26
748800 27
825600 28
902400 29
979200 30
1056000 32
1132800 34
1209600 37
1286400 40
1363200 45
1459200 50
1536000 57
1612800 64
1689600 74
1766400 84
1843200 96
1920000 106
1996800 113
2092800 120
2169600 125
2246400 127
2323200 130
2400000 135
2476800 140
2553600 145
2649600 150
2745600 155
2764800 160
2784000 165
2803200 170
2841600 180
2956800 190
>;
idle-cost-data = <
4 3 2 1
>;
};
};
&gpu_gx_gdsc {
domain-addr = <&gpu_gx_domain_addr>;
sw-reset = <&gpu_gx_sw_reset>;
qcom,reset-aon-logic;
};
/* GPU overrides */
&msm_gpu {
/* Updated chip ID */
qcom,chipid = <0x06030001>;
qcom,initial-pwrlevel = <6>;
qcom,gpu-pwrlevels {
#address-cells = <1>;
#size-cells = <0>;
compatible = "qcom,gpu-pwrlevels";
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <710000000>;
qcom,bus-freq = <12>;
qcom,bus-min = <12>;
qcom,bus-max = <12>;
};
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <675000000>;
qcom,bus-freq = <12>;
qcom,bus-min = <10>;
qcom,bus-max = <12>;
};
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <596000000>;
qcom,bus-freq = <10>;
qcom,bus-min = <9>;
qcom,bus-max = <12>;
};
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <520000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <414000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <7>;
qcom,bus-max = <9>;
};
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <342000000>;
qcom,bus-freq = <6>;
qcom,bus-min = <5>;
qcom,bus-max = <7>;
};
qcom,gpu-pwrlevel@6 {
reg = <6>;
qcom,gpu-freq = <257000000>;
qcom,bus-freq = <4>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
qcom,gpu-pwrlevel@7 {
reg = <7>;
qcom,gpu-freq = <0>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
};
&gmu {
qcom,gmu-pwrlevels {
#address-cells = <1>;
#size-cells = <0>;
compatible = "qcom,gmu-pwrlevels";
/* GMU power levels must go from lowest to highest */
qcom,gmu-pwrlevel@0 {
reg = <0>;
qcom,gmu-freq = <0>;
};
qcom,gmu-pwrlevel@1 {
reg = <1>;
qcom,gmu-freq = <200000000>;
};
qcom,gmu-pwrlevel@2 {
reg = <2>;
qcom,gmu-freq = <500000000>;
};
};
};
&qusb_phy0 {
qcom,qusb-phy-init-seq =
/* <value reg_offset> */
<0x23 0x210 /* PWR_CTRL1 */
0x03 0x04 /* PLL_ANALOG_CONTROLS_TWO */
0x7c 0x18c /* PLL_CLOCK_INVERTERS */
0x80 0x2c /* PLL_CMODE */
0x0a 0x184 /* PLL_LOCK_DELAY */
0x19 0xb4 /* PLL_DIGITAL_TIMERS_TWO */
0x40 0x194 /* PLL_BIAS_CONTROL_1 */
0x20 0x198 /* PLL_BIAS_CONTROL_2 */
0x21 0x214 /* PWR_CTRL2 */
0x08 0x220 /* IMP_CTRL1 */
0x58 0x224 /* IMP_CTRL2 */
0x45 0x240 /* TUNE1 */
0x29 0x244 /* TUNE2 */
0xca 0x248 /* TUNE3 */
0x04 0x24c /* TUNE4 */
0x03 0x250 /* TUNE5 */
0x00 0x23c /* CHG_CTRL2 */
0x22 0x210>; /* PWR_CTRL1 */
};