aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChetan C R <cravin@codeaurora.org>2018-09-05 13:51:00 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-10-23 00:15:02 -0700
commitfe28e76e32363df973288beef2cfc17f672118fa (patch)
tree1ef1635728a0b09ca6515b6bceac96037b6767df
parent6a163984cd177044c9f48abba33ef9eb343257ba (diff)
ARM: dts: msm: Add device tree support for msm8940LA.UM.7.6.2.r1-03700-89xx.0
Add initial set of device tree files to build the msm8940 target. This implementation is based on snapshot of the msm8940 device tree from msm-3.18. commit d0eb392e8733c ("ARM: dts: msm: Add support for MSM8940"). Change-Id: Icc0d37dbde746b9ad82286c192585d7d047ba70e Signed-off-by: Naitik Bharadiya <bharad@codeaurora.org> Signed-off-by: Chetan C R <cravin@codeaurora.org>
-rw-r--r--Documentation/devicetree/bindings/arm/msm/msm.txt4
-rw-r--r--arch/arm/mach-qcom/Kconfig29
-rw-r--r--arch/arm/mach-qcom/Makefile1
-rw-r--r--arch/arm/mach-qcom/board-msm8940.c32
-rw-r--r--arch/arm64/Kconfig.platforms9
-rw-r--r--arch/arm64/boot/dts/qcom/Makefile4
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-mtp.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pinctrl.dtsi17
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dts24
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dtsi43
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dts25
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8940.dtsi25
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dts24
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/msm8940.dtsi667
-rw-r--r--drivers/pinctrl/qcom/Kconfig10
-rw-r--r--drivers/soc/qcom/socinfo.c7
-rw-r--r--include/soc/qcom/socinfo.h4
19 files changed, 979 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/msm/msm.txt b/Documentation/devicetree/bindings/arm/msm/msm.txt
index 0319e2fb2c6d..ab58089ad2cc 100644
--- a/Documentation/devicetree/bindings/arm/msm/msm.txt
+++ b/Documentation/devicetree/bindings/arm/msm/msm.txt
@@ -68,6 +68,9 @@ SoCs:
- MSM8917
compatible = "qcom,msm8917"
+- MSM8940
+ compatible = "qcom,msm8940"
+
- MSM8936
compatible = "qcom,msm8936"
@@ -279,6 +282,7 @@ compatible = "qcom,msm8917-mtp"
compatible = "qcom,msm8917-rumi"
compatible = "qcom,msm8917-qrd"
compatible = "qcom,msm8917-qrd-sku5"
+compatible = "qcom,msm8940-mtp"
compatible = "qcom,msm8926-cdp"
compatible = "qcom,msm8926-mtp"
compatible = "qcom,msm8926-qrd"
diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig
index 6b4373368b62..dcf6cf7361b2 100644
--- a/arch/arm/mach-qcom/Kconfig
+++ b/arch/arm/mach-qcom/Kconfig
@@ -126,6 +126,35 @@ config ARCH_MSM8917
select HAVE_CLK_PREPARE
select COMMON_CLK_MSM
+config ARCH_MSM8940
+ bool "MSM8940"
+ select MSM_CORTEX_A53
+ select ARCH_MSM_CORTEXMP
+ select CPU_V7
+ select HAVE_SMP
+ select ARM_GIC
+ select MSM_IRQ
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+ select HAVE_ARM_ARCH_TIMER
+ select MAY_HAVE_SPARSE_IRQ
+ select PINCTRL
+ select PINCTRL_MSM_TLMM
+ select USE_PINCTRL_IRQ
+ select MSM_PM if PM
+ select QMI_ENCDEC
+ select CPU_FREQ
+ select CPU_FREQ_MSM
+ select PM_DEVFREQ
+ select MSM_DEVFREQ_DEVBW
+ select DEVFREQ_SIMPLE_DEV
+ select DEVFREQ_GOV_MSM_BW_HWMON
+ select MSM_BIMC_BWMON
+ select MSM_QDSP6V2_CODECS
+ select MSM_AUDIO_QDSP6V2 if SND_SOC
+ select ARM_HAS_SG_CHAIN
+ select MSM_JTAGV8 if CORESIGHT_ETMV4
+
config ARCH_SDM439
bool "Enable support for SDM439"
select CPU_V7
diff --git a/arch/arm/mach-qcom/Makefile b/arch/arm/mach-qcom/Makefile
index 3ef169f806c9..f5a512192681 100644
--- a/arch/arm/mach-qcom/Makefile
+++ b/arch/arm/mach-qcom/Makefile
@@ -6,6 +6,7 @@ obj-$(CONFIG_ARCH_MSM8953) += board-msm8953.o
obj-$(CONFIG_ARCH_MSM8937) += board-msm8937.o
obj-$(CONFIG_ARCH_MSM8909) += board-msm8909.o
obj-$(CONFIG_ARCH_MSM8917) += board-msm8917.o
+obj-$(CONFIG_ARCH_MSM8940) += board-msm8940.o
obj-$(CONFIG_ARCH_SDM429) += board-sdm429.o
obj-$(CONFIG_ARCH_SDM439) += board-sdm439.o
obj-$(CONFIG_ARCH_SDM450) += board-sdm450.o
diff --git a/arch/arm/mach-qcom/board-msm8940.c b/arch/arm/mach-qcom/board-msm8940.c
new file mode 100644
index 000000000000..3e60902551aa
--- /dev/null
+++ b/arch/arm/mach-qcom/board-msm8940.c
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 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 <linux/kernel.h>
+#include <asm/mach/arch.h>
+#include "board-dt.h"
+
+static const char *msm8940_dt_match[] __initconst = {
+ "qcom,msm8940",
+ NULL
+};
+
+static void __init msm8940_init(void)
+{
+ board_dt_populate(NULL);
+}
+
+DT_MACHINE_START(MSM8940_DT,
+ "Qualcomm Technologies, Inc. MSM8940-PMI8950 MTP")
+ .init_machine = msm8940_init,
+ .dt_compat = msm8940_dt_match,
+MACHINE_END
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 4c013ad50189..85546410ed4d 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -166,6 +166,15 @@ config ARCH_MSM8937
This enables support for the MSM8937 chipset. If you do not
wish to build a kernel that runs on this chipset, say 'N' here.
+config ARCH_MSM8940
+ bool "Enable Support for Qualcomm Technologies Inc. MSM8940"
+ depends on ARCH_QCOM
+ select CPU_FREQ_QCOM
+ select COMMON_CLK_MSM
+ help
+ This enables support for the MSM8940 chipset. If you do not
+ wish to build a kernel that runs on this chipset, say 'N' here.
+
config ARCH_MSM8917
bool "Enable Support for Qualcomm Technologies Inc. MSM8917"
depends on ARCH_QCOM
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 8b0013f6c989..b6bdfa373a51 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -522,6 +522,10 @@ dtb-$(CONFIG_ARCH_MSM8937) += msm8937-pmi8950-mtp.dtb \
msm8937-interposer-sdm429-cdp.dtb \
msm8937-interposer-sdm429-mtp.dtb
+dtb-$(CONFIG_ARCH_MSM8940) += msm8940-pmi8937-mtp.dtb \
+ msm8940-pmi8950-mtp.dtb \
+ msm8940-pmi8940-mtp.dtb
+
dtb-$(CONFIG_ARCH_MSM8917) += msm8917-pmi8950-mtp.dtb \
msm8917-pmi8950-cdp.dtb \
msm8917-pmi8950-rcm.dtb \
diff --git a/arch/arm64/boot/dts/qcom/msm8940-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8940-mtp.dtsi
new file mode 100644
index 000000000000..4414279a0433
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-mtp.dtsi
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2016, 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 "msm8937-mtp.dtsi"
+#include "msm8940-pinctrl.dtsi"
+
+&soc {
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/msm8940-pinctrl.dtsi
new file mode 100644
index 000000000000..55933b93a1f3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pinctrl.dtsi
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2016, 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 "msm8937-pinctrl.dtsi"
+
+&soc {
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dts b/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dts
new file mode 100644
index 000000000000..386badde33b1
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dts
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+/dts-v1/;
+
+#include "msm8940.dtsi"
+#include "msm8940-pmi8937-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM8940-PMI8937 MTP";
+ compatible = "qcom,msm8940-mtp", "qcom,msm8940", "qcom,mtp";
+ qcom,board-id= <8 0>;
+ qcom,pmic-id = <0x10019 0x020037 0x0 0x0>;
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dtsi
new file mode 100644
index 000000000000..a1e7bcbd556b
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8937-mtp.dtsi
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2016, 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 "pmi8937.dtsi"
+#include "msm8937-mtp.dtsi"
+#include "msm8940-mtp.dtsi"
+
+&soc {
+ led_flash0: qcom,camera-flash {
+ cell-index = <0>;
+ compatible = "qcom,camera-flash";
+ qcom,flash-type = <1>;
+ qcom,flash-source = <&pmi8937_flash0 &pmi8937_flash1>;
+ qcom,torch-source = <&pmi8937_torch0 &pmi8937_torch1>;
+ qcom,switch-source = <&pmi8937_switch>;
+ };
+};
+
+&vendor {
+ mtp_batterydata: qcom,battery-data {
+ qcom,batt-id-range-pct = <15>;
+ #include "batterydata-itech-3000mah.dtsi"
+ #include "batterydata-ascent-3450mAh.dtsi"
+ };
+};
+
+&qpnp_fg {
+ qcom,battery-data = <&mtp_batterydata>;
+};
+
+&qpnp_smbcharger {
+ qcom,battery-data = <&mtp_batterydata>;
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dts b/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dts
new file mode 100644
index 000000000000..51a34d488ab3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dts
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+/dts-v1/;
+
+#include "msm8940.dtsi"
+#include "msm8940-mtp.dtsi"
+#include "msm8940-pmi8940.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM8940-PMI8940 MTP";
+ compatible = "qcom,msm8940-mtp", "qcom,msm8940", "qcom,mtp";
+ qcom,board-id= <8 0>;
+ qcom,pmic-id = <0x10019 0x020040 0x0 0x0>;
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dtsi
new file mode 100644
index 000000000000..3cc12e360fcf
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8940-mtp.dtsi
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2016, 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 "msm8937-pmi8940-mtp.dtsi"
+#include "msm8940-mtp.dtsi"
+
+&soc {
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8940.dtsi b/arch/arm64/boot/dts/qcom/msm8940-pmi8940.dtsi
new file mode 100644
index 000000000000..d9baecaa36b4
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8940.dtsi
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 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 "pmi8940.dtsi"
+
+&soc {
+ led_flash0: qcom,camera-flash {
+ cell-index = <0>;
+ compatible = "qcom,camera-flash";
+ qcom,flash-type = <1>;
+ qcom,flash-source = <&pmi8940_flash0 &pmi8940_flash1>;
+ qcom,torch-source = <&pmi8940_torch0 &pmi8940_torch1>;
+ qcom,switch-source = <&pmi8940_switch>;
+ };
+};
+
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dts b/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dts
new file mode 100644
index 000000000000..ff6d208ae132
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dts
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+/dts-v1/;
+
+#include "msm8940.dtsi"
+#include "msm8940-pmi8950-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM8940-PMI8950 MTP";
+ compatible = "qcom,msm8940-mtp", "qcom,msm8940", "qcom,mtp";
+ qcom,board-id= <8 0>;
+ qcom,pmic-id = <0x10019 0x020011 0x0 0x0>;
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi
new file mode 100644
index 000000000000..5f3f3b72f339
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2016, 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 "msm8937-pmi8950-mtp.dtsi"
+#include "msm8940-mtp.dtsi"
+
+&soc {
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8940.dtsi b/arch/arm64/boot/dts/qcom/msm8940.dtsi
new file mode 100644
index 000000000000..b7a5e0287098
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8940.dtsi
@@ -0,0 +1,667 @@
+/*
+ * Copyright (c) 2016-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 "skeleton64.dtsi"
+#include "msm8937.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM8940";
+ compatible = "qcom,msm8940";
+ qcom,msm-id = <313 0x0>;
+
+ soc: soc { };
+
+};
+
+&usb_otg {
+
+ /delete-property/ clocks;
+ clocks = <&clock_gcc clk_gcc_usb_hs_ahb_clk>,
+ <&clock_gcc clk_gcc_usb_hs_system_clk>,
+ <&clock_gcc clk_gcc_usb2a_phy_sleep_clk>,
+ <&clock_gcc clk_bimc_usb_clk>,
+ <&clock_gcc clk_snoc_usb_clk>,
+ <&clock_gcc clk_pnoc_usb_clk>,
+ <&clock_gcc clk_gcc_qusb2_phy_clk>,
+ <&clock_gcc clk_gcc_usb2_hs_phy_only_clk>,
+ <&clock_gcc clk_gcc_usb_hs_phy_cfg_ahb_clk>,
+ <&clock_gcc clk_xo_otg_clk>;
+
+ qcom,usbbam@78c4000 {
+ /delete-property/ qcom,reset-bam-on-disconnect;
+ /delete-node/ qcom,pipe0;
+ qcom,pipe0 {
+ label = "hsusb-ipa-out-0";
+ qcom,usb-bam-mem-type = <1>;
+ qcom,dir = <0>;
+ qcom,pipe-num = <0>;
+ qcom,peer-bam = <1>;
+ qcom,src-bam-pipe-index = <1>;
+ qcom,data-fifo-size = <0x8000>;
+ qcom,descriptor-fifo-size = <0x2000>;
+ };
+ qcom,pipe1 {
+ label = "hsusb-ipa-in-0";
+ qcom,usb-bam-mem-type = <1>;
+ qcom,dir = <1>;
+ qcom,pipe-num = <0>;
+ qcom,peer-bam = <1>;
+ qcom,dst-bam-pipe-index = <0>;
+ qcom,data-fifo-size = <0x8000>;
+ qcom,descriptor-fifo-size = <0x2000>;
+ };
+ qcom,pipe2 {
+ label = "hsusb-qdss-in-0";
+ qcom,usb-bam-mem-type = <2>;
+ qcom,dir = <1>;
+ qcom,pipe-num = <0>;
+ qcom,peer-bam = <0>;
+ qcom,peer-bam-physical-address = <0x6044000>;
+ qcom,src-bam-pipe-index = <0>;
+ qcom,dst-bam-pipe-index = <2>;
+ qcom,data-fifo-offset = <0x0>;
+ qcom,data-fifo-size = <0xe00>;
+ qcom,descriptor-fifo-offset = <0xe00>;
+ qcom,descriptor-fifo-size = <0x200>;
+ };
+ qcom,pipe3 {
+ label = "hsusb-dpl-ipa-in-1";
+ qcom,usb-bam-mem-type = <1>;
+ qcom,dir = <1>;
+ qcom,pipe-num = <1>;
+ qcom,peer-bam = <1>;
+ qcom,dst-bam-pipe-index = <3>;
+ qcom,data-fifo-size = <0x8000>;
+ qcom,descriptor-fifo-size = <0x2000>;
+ };
+ };
+};
+
+&ad_hoc_bus {
+ mas_ipa: mas-ipa {
+ cell-id = <MSM_BUS_MASTER_IPA>;
+ label = "mas-ipa";
+ qcom,buswidth = <8>;
+ qcom,agg-ports = <1>;
+ qcom,ap-owned;
+ qcom,qport = <14>;
+ qcom,qos-mode = "fixed";
+ qcom,connections = <&snoc_int_1 &slv_snoc_bimc_1>;
+ qcom,prio1 = <0>;
+ qcom,prio0 = <0>;
+ qcom,bus-dev = <&fab_snoc>;
+ qcom,mas-rpm-id = <ICBID_MASTER_IPA>;
+ };
+};
+
+&soc {
+ devfreq_spdm_cpu {
+ compatible = "qcom,devfreq_spdm";
+ qcom,bw-dwnstep = <4000>;
+ qcom,max-vote = <4000>;
+ };
+};
+
+&clock_gcc {
+ compatible = "qcom,gcc-8940";
+};
+
+&clock_debug {
+ compatible = "qcom,cc-debug-8940";
+};
+
+&clock_gcc_mdss {
+ compatible = "qcom,gcc-mdss-8940";
+};
+
+&bam_dmux {
+ status = "disabled";
+};
+
+&soc {
+ ipa_hw: qcom,ipa@07900000 {
+ compatible = "qcom,ipa";
+ reg = <0x07900000 0x4effc>, <0x07904000 0x26934>;
+ reg-names = "ipa-base", "bam-base";
+ interrupts = <0 228 0>,
+ <0 230 0>;
+ interrupt-names = "ipa-irq", "bam-irq";
+ qcom,ipa-hw-ver = <6>; /* IPA core version = IPAv2.6L */
+ qcom,ipa-hw-mode = <0>; /* IPA hw type = Normal */
+ qcom,wan-rx-ring-size = <192>; /* IPA WAN-rx-ring-size*/
+ qcom,lan-rx-ring-size = <192>; /* IPA LAN-rx-ring-size*/
+ clock-names = "core_clk";
+ clocks = <&clock_gcc clk_ipa_clk>;
+ qcom,ee = <0>;
+ qcom,use-ipa-tethering-bridge;
+ qcom,modem-cfg-emb-pipe-flt;
+ qcom,msm-bus,name = "ipa";
+ qcom,msm-bus,num-cases = <3>;
+ qcom,msm-bus,num-paths = <1>;
+ qcom,msm-bus,vectors-KBps =
+ <90 512 0 0>, /* No BIMC vote (ab=0 Mbps, ib=0 Mbps ~ 0MHZ) */
+ <90 512 100000 800000>, /* SVS (ab=100, ib=800 ~ 50MHz) */
+ <90 512 100000 1200000>; /* PERF (ab=100, ib=1200 ~ 75MHz) */
+ qcom,bus-vector-names = "MIN", "SVS", "PERF";
+ qcom,rx-polling-sleep-ms = <2>; /* Polling sleep interval */
+ qcom,ipa-polling-iteration = <5>; /* Polling Iteration */
+ };
+
+ qcom,rmnet-ipa {
+ compatible = "qcom,rmnet-ipa";
+ qcom,rmnet-ipa-ssr;
+ qcom,ipa-loaduC;
+ qcom,ipa-advertise-sg-support;
+ };
+
+ qcom,rmtfs_sharedmem@00000000 {
+ reg = <0x00000000 0x00180000>;
+ };
+
+ /* remove 8937 MEM ACC node */
+ /delete-node/ regulator@01946004;
+
+ mem_acc_vreg_corner: regulator@01946004 {
+ compatible = "qcom,mem-acc-regulator";
+ reg = <0xa4000 0x1000>;
+ reg-names = "efuse_addr";
+ regulator-name = "mem_acc_corner";
+ regulator-min-microvolt = <1>;
+ regulator-max-microvolt = <3>;
+
+ qcom,acc-reg-addr-list =
+ <0x01942138 0x01942130 0x01942120
+ 0x01942124 0x01942128>;
+
+ qcom,acc-init-reg-config = <1 0xfff>;
+
+ qcom,num-acc-corners = <3>;
+ qcom,boot-acc-corner = <2>;
+ qcom,corner1-reg-config =
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x0>, < 4 0x0>,
+ < 5 0x0>;
+
+ qcom,corner2-reg-config =
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x0>, < 4 0x0>,
+ < 5 0x0>;
+
+ qcom,corner3-reg-config =
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>;
+
+ qcom,override-acc-range-fuse-list =
+ <37 40 3 0>, /* foundry id */
+ <36 30 8 0>, /* iddq apc on */
+ <67 0 6 0>; /* turbo targ volt */
+
+ qcom,override-fuse-range-map =
+ <0 0>, < 0 0>, <49 63>,
+ <1 1>, < 0 0>, <50 63>,
+ <5 5>, < 0 0>, <51 63>,
+ <0 1>, < 95 255>, < 0 63>,
+ <5 5>, <100 255>, < 0 63>;
+
+ qcom,override-corner1-addr-val-map =
+ /* 1st fuse version tuple matched */
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 2nd fuse version tuple matched */
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 3rd fuse version tuple matched */
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 4th fuse version tuple matched */
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 5th fuse version tuple matched */
+ /* SVS+ => SVS+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* SVS+ => TURBO/NOM+ */
+ < 2 0x555555 >, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>;
+
+ qcom,override-corner2-addr-val-map =
+ /* 1st fuse version tuple matched */
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 2nd fuse version tuple matched */
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 3rd fuse version tuple matched */
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 4th fuse version tuple matched */
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>,
+
+ /* 5th fuse version tuple matched */
+ /* NOM => SVS+ */
+ < 2 0x555555>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* NOM => NOM */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* NOM => TURBO/NOM+ */
+ < 2 0x555555>, < 3 0x1>, < 4 0x1000>,
+ < 5 0x0>;
+
+ qcom,override-corner3-addr-val-map =
+ /* 1st fuse version tuple matched */
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+
+ /* 2nd fuse version tuple matched */
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+
+ /* 3rd fuse version tuple matched */
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+
+ /* 4th fuse version tuple matched */
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+
+ /* 5th fuse version tuple matched */
+ /* TURBO/NOM+ => SVS+ */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, < 3 0x30C30C3>, < 4 0x30C30C3>,
+ < 5 0x00000C3>,
+ /* TURBO/NOM+ => NOM */
+ < 2 0x555555>, < 3 0x1041041>, < 4 0x1041041>,
+ < 5 0x0000041>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>,
+ /* TURBO/NOM+ => TURBO/NOM+ */
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>,
+ <(-1) (-1)>;
+ };
+};
+
+&apc_vreg_corner {
+ /delete-property/ qcom,cpr-fuse-version-map;
+ /delete-property/ qcom,cpr-quotient-adjustment;
+ /delete-property/ qcom,cpr-init-voltage-adjustment;
+ /delete-property/ qcom,cpr-enable;
+
+ qcom,pvs-version-fuse-sel = <37 40 3 0>; /* foundry */
+ qcom,cpr-speed-bin-max-corners =
+ <0 (-1) 1 2 6>,
+ <1 (-1) 1 2 7>;
+
+ qcom,cpr-fuse-version-map =
+ < 0 0 (-1) (-1) (-1) (-1)>,
+ < 0 1 (-1) (-1) (-1) (-1)>,
+ < 0 5 (-1) (-1) (-1) (-1)>,
+ < 1 0 (-1) (-1) (-1) (-1)>,
+ < 1 1 (-1) (-1) (-1) (-1)>,
+ < 1 5 (-1) (-1) (-1) (-1)>;
+
+ qcom,cpr-init-voltage-adjustment =
+ <0 0 0>,
+ <0 0 20000>,
+ <0 0 20000>,
+ <0 0 20000>,
+ <0 0 20000>,
+ <0 0 25000>;
+
+ qcom,cpr-quotient-adjustment =
+ <0 0 0>,
+ <38 0 28>, /* SVSP(20mv); TURBO(15mv); KV(1.9) */
+ <0 0 28>, /* TURBO(15mv); KV(1.9) */
+ <0 0 28>, /* TURBO(15mv); KV(1.9) */
+ <38 0 28>, /* SVSP(20mv); TURBO(15mv); KV(1.9) */
+ <0 0 38>; /* TURBO(20mv); KV(1.9) */
+
+ qcom,cpr-enable;
+};
+
+&mdss_mdp {
+ qcom,vbif-settings = <0x0d0 0x00000020>;
+};
+
+&modem_mem {
+ reg = <0x0 0x86800000 0x0 0x6a00000>;
+};
+
+&adsp_fw_mem {
+ reg = <0x0 0x8d200000 0x0 0x1100000>;
+};
+
+&wcnss_fw_mem {
+ reg = <0x0 0x8e300000 0x0 0x700000>;
+};
+
+&pil_mss {
+ /delete-property/ qcom,qdsp6v56-1-8-inrush-current;
+ qcom,qdsp6v56-1-8;
+};
+
+/* GPU overrides */
+&msm_gpu {
+
+ qcom,restrict-pwrlevel = <1>;
+ /delete-property/qcom,gpu-speed-bin;
+ qcom,gpu-speed-bin = <0x0174 0x80000000 31>;
+
+ /delete-property/qcom,initial-pwrlevel;
+ /delete-node/qcom,gpu-pwrlevel-bins;
+ /delete-node/qcom,gpu-pwrlevels;
+
+ qcom,gpu-pwrlevel-bins {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compatible="qcom,gpu-pwrlevel-bins";
+
+ /* Power levels */
+ qcom,gpu-pwrlevels-0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ qcom,speed-bin = <0>;
+ qcom,initial-pwrlevel = <3>;
+
+ /* SUPER TURBO */
+ qcom,gpu-pwrlevel@0 {
+ reg = <0>;
+ qcom,gpu-freq = <475000000>;
+ qcom,bus-freq = <10>;
+ qcom,bus-min = <10>;
+ qcom,bus-max = <10>;
+ };
+
+ /* TURBO */
+ qcom,gpu-pwrlevel@1 {
+ reg = <1>;
+ qcom,gpu-freq = <450000000>;
+ qcom,bus-freq = <9>;
+ qcom,bus-min = <9>;
+ qcom,bus-max = <10>;
+ };
+
+ /* NOM+ */
+ qcom,gpu-pwrlevel@2 {
+ reg = <2>;
+ qcom,gpu-freq = <400000000>;
+ qcom,bus-freq = <7>;
+ qcom,bus-min = <6>;
+ qcom,bus-max = <9>;
+ };
+
+ /* NOM */
+ qcom,gpu-pwrlevel@3 {
+ reg = <3>;
+ qcom,gpu-freq = <375000000>;
+ qcom,bus-freq = <6>;
+ qcom,bus-min = <5>;
+ qcom,bus-max = <8>;
+ };
+
+ /* SVS+ */
+ qcom,gpu-pwrlevel@4 {
+ reg = <4>;
+ qcom,gpu-freq = <300000000>;
+ qcom,bus-freq = <5>;
+ qcom,bus-min = <4>;
+ qcom,bus-max = <7>;
+ };
+
+ /* SVS */
+ qcom,gpu-pwrlevel@5 {
+ reg = <5>;
+ qcom,gpu-freq = <216000000>;
+ qcom,bus-freq = <3>;
+ qcom,bus-min = <1>;
+ qcom,bus-max = <4>;
+ };
+
+ /* XO */
+ qcom,gpu-pwrlevel@6 {
+ reg = <6>;
+ qcom,gpu-freq = <19200000>;
+ qcom,bus-freq = <0>;
+ qcom,bus-min = <0>;
+ qcom,bus-max = <0>;
+ };
+ };
+
+ /* Power levels */
+ qcom,gpu-pwrlevels-1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ qcom,speed-bin = <1>;
+ qcom,initial-pwrlevel = <3>;
+
+ /* SUPER TURBO */
+ qcom,gpu-pwrlevel@0 {
+ reg = <0>;
+ qcom,gpu-freq = <500000000>;
+ qcom,bus-freq = <10>;
+ qcom,bus-min = <10>;
+ qcom,bus-max = <10>;
+ };
+
+ /* TURBO */
+ qcom,gpu-pwrlevel@1 {
+ reg = <1>;
+ qcom,gpu-freq = <450000000>;
+ qcom,bus-freq = <9>;
+ qcom,bus-min = <9>;
+ qcom,bus-max = <10>;
+ };
+
+ /* NOM+ */
+ qcom,gpu-pwrlevel@2 {
+ reg = <2>;
+ qcom,gpu-freq = <400000000>;
+ qcom,bus-freq = <7>;
+ qcom,bus-min = <6>;
+ qcom,bus-max = <9>;
+ };
+
+ /* NOM */
+ qcom,gpu-pwrlevel@3 {
+ reg = <3>;
+ qcom,gpu-freq = <375000000>;
+ qcom,bus-freq = <6>;
+ qcom,bus-min = <5>;
+ qcom,bus-max = <8>;
+ };
+
+ /* SVS+ */
+ qcom,gpu-pwrlevel@4 {
+ reg = <4>;
+ qcom,gpu-freq = <300000000>;
+ qcom,bus-freq = <5>;
+ qcom,bus-min = <4>;
+ qcom,bus-max = <7>;
+ };
+
+ /* SVS */
+ qcom,gpu-pwrlevel@5 {
+ reg = <5>;
+ qcom,gpu-freq = <216000000>;
+ qcom,bus-freq = <3>;
+ qcom,bus-min = <1>;
+ qcom,bus-max = <4>;
+ };
+
+ /* XO */
+ qcom,gpu-pwrlevel@6 {
+ reg = <6>;
+ qcom,gpu-freq = <19200000>;
+ qcom,bus-freq = <0>;
+ qcom,bus-min = <0>;
+ qcom,bus-max = <0>;
+ };
+ };
+
+ };
+};
+
+&tsens0 {
+ qcom,temp1-offset = <0 (-2) (-5) (-3) (-1) (-1) (-1) 0 1 (-1) (-6)>;
+ qcom,temp2-offset = <1 1 (-7) 5 4 7 6 2 3 1 7>;
+};
diff --git a/drivers/pinctrl/qcom/Kconfig b/drivers/pinctrl/qcom/Kconfig
index 9413da3f1994..56ea1f484ca8 100644
--- a/drivers/pinctrl/qcom/Kconfig
+++ b/drivers/pinctrl/qcom/Kconfig
@@ -139,6 +139,16 @@ config PINCTRL_MSM8917
Technologies Inc MSM8917 platform.
If unsure say N.
+config PINCTRL_MSM8940
+ tristate "Qualcomm Technologies Inc MSM8940 pin controller driver"
+ depends on GPIOLIB && OF
+ select PINCTRL_MSM
+ help
+ This is the pinctrl, pinmux, pinconf and gpiolib driver for the
+ Qualcomm Technologies Inc TLMM block found on the Qualcomm
+ Technologies Inc MSM8940 platform.
+ If unsure say N.
+
config PINCTRL_SDM845
tristate "Qualcomm Technologies Inc SDM845 pin controller driver"
depends on GPIOLIB && OF
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 1f44f534b14a..74321b2dac51 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -627,6 +627,9 @@ static struct msm_soc_info cpu_of_id[] = {
[308] = {MSM_CPU_8917, "MSM8217"},
[309] = {MSM_CPU_8917, "MSM8617"},
+ /* MSM8940 IDs */
+ [313] = {MSM_CPU_8940, "MSM8940"},
+
/* SDM429 and SDM439 ID*/
[353] = {MSM_CPU_SDM439, "SDM439"},
[354] = {MSM_CPU_SDM429, "SDM429"},
@@ -1586,6 +1589,10 @@ static void * __init setup_dummy_socinfo(void)
dummy_socinfo.id = 303;
strlcpy(dummy_socinfo.build_id, "msm8917 - ",
sizeof(dummy_socinfo.build_id));
+ } else if (early_machine_is_msm8940()) {
+ dummy_socinfo.id = 313;
+ strlcpy(dummy_socinfo.build_id, "msm8940 - ",
+ sizeof(dummy_socinfo.build_id));
} else if (early_machine_is_sdm450()) {
dummy_socinfo.id = 338;
strlcpy(dummy_socinfo.build_id, "sdm450 - ",
diff --git a/include/soc/qcom/socinfo.h b/include/soc/qcom/socinfo.h
index 05173d9a34ad..b1ac1180ef1a 100644
--- a/include/soc/qcom/socinfo.h
+++ b/include/soc/qcom/socinfo.h
@@ -118,6 +118,8 @@
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,msm8937")
#define early_machine_is_msm8917() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,msm8917")
+#define early_machine_is_msm8940() \
+ of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,msm8940")
#define early_machine_is_mdm9607() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,mdm9607")
#define early_machine_is_sdm450() \
@@ -187,6 +189,7 @@
#define early_machine_is_msm8953() 0
#define early_machine_is_msm8937() 0
#define early_machine_is_msm8917() 0
+#define early_machine_is_msm8940() 0
#define early_machine_is_sdm450() 0
#define early_machine_is_sda450() 0
#define early_machine_is_sdm632() 0
@@ -270,6 +273,7 @@ enum msm_cpu {
MSM_CPU_SDA632,
MSM_CPU_8937,
MSM_CPU_8917,
+ MSM_CPU_8940,
MSM_CPU_9607,
MSM_CPU_SDM439,
MSM_CPU_SDM429,