summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/qcom/Makefile8
-rw-r--r--arch/arm/boot/dts/qcom/apqcobalt-v2.1-cdp.dts22
-rw-r--r--arch/arm/boot/dts/qcom/apqcobalt-v2.1-mtp.dts22
-rw-r--r--arch/arm/boot/dts/qcom/apqcobalt-v2.1-qrd.dts22
-rw-r--r--arch/arm/boot/dts/qcom/apqcobalt-v2.1.dtsi18
-rw-r--r--arch/arm/boot/dts/qcom/msm-audio-lpass.dtsi5
-rw-r--r--arch/arm/boot/dts/qcom/msm-pmicobalt.dtsi11
-rw-r--r--arch/arm/boot/dts/qcom/msm8996.dtsi27
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi20
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-camera.dtsi8
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-mdss.dtsi5
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-mtp.dtsi5
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dts23
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dtsi102
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-qrd.dtsi13
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi12
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-v2.dtsi204
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt.dtsi64
-rw-r--r--arch/arm/boot/dts/qcom/msmfalcon-regulator.dtsi358
-rw-r--r--arch/arm/boot/dts/qcom/msmfalcon-rumi.dts2
-rw-r--r--arch/arm/boot/dts/qcom/msmfalcon-sim.dts2
-rw-r--r--arch/arm/boot/dts/qcom/msmfalcon.dtsi133
-rw-r--r--arch/arm/boot/dts/qcom/msmtriton-rumi.dts29
-rw-r--r--arch/arm/boot/dts/qcom/msmtriton.dtsi263
-rw-r--r--arch/arm/configs/msmcortex_defconfig1
-rw-r--r--arch/arm/configs/msmfalcon_defconfig1
-rw-r--r--arch/arm/mach-qcom/Kconfig1
-rw-r--r--arch/arm64/Kconfig.platforms9
-rw-r--r--arch/arm64/configs/msmcortex-perf_defconfig1
-rw-r--r--arch/arm64/configs/msmcortex_defconfig2
-rw-r--r--arch/arm64/configs/msmfalcon-perf_defconfig1
-rw-r--r--arch/arm64/configs/msmfalcon_defconfig1
-rw-r--r--arch/arm64/include/asm/arch_gicv3.h4
-rw-r--r--arch/arm64/kernel/io.c18
34 files changed, 1340 insertions, 77 deletions
diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index 6b94608ee2c7..bffa21a06462 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -113,6 +113,7 @@ dtb-$(CONFIG_ARCH_MSMCOBALT) += msmcobalt-sim.dtb \
msmcobalt-v2-cdp.dtb \
msmcobalt-v2-qrd.dtb \
msmcobalt-qrd-skuk.dtb \
+ msmcobalt-qrd-vr1.dtb \
apqcobalt-mtp.dtb \
apqcobalt-cdp.dtb \
apqcobalt-v2-mtp.dtb \
@@ -120,13 +121,18 @@ dtb-$(CONFIG_ARCH_MSMCOBALT) += msmcobalt-sim.dtb \
apqcobalt-v2-qrd.dtb \
msmcobalt-v2.1-mtp.dtb \
msmcobalt-v2.1-cdp.dtb \
- msmcobalt-v2.1-qrd.dtb
+ msmcobalt-v2.1-qrd.dtb \
+ apqcobalt-v2.1-mtp.dtb \
+ apqcobalt-v2.1-cdp.dtb \
+ apqcobalt-v2.1-qrd.dtb
dtb-$(CONFIG_ARCH_MSMHAMSTER) += msmhamster-rumi.dtb
dtb-$(CONFIG_ARCH_MSMFALCON) += msmfalcon-sim.dtb \
msmfalcon-rumi.dtb
+dtb-$(CONFIG_ARCH_MSMTRITON) += msmtriton-rumi.dtb
+
ifeq ($(CONFIG_ARM64),y)
always := $(dtb-y)
subdir-y := $(dts-dirs)
diff --git a/arch/arm/boot/dts/qcom/apqcobalt-v2.1-cdp.dts b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-cdp.dts
new file mode 100644
index 000000000000..f0ab8e0afc78
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-cdp.dts
@@ -0,0 +1,22 @@
+/* Copyright (c) 2016, 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 "apqcobalt-v2.1.dtsi"
+#include "msmcobalt-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. APQ COBALT V2.1 CDP";
+ compatible = "qcom,apqcobalt-cdp", "qcom,apqcobalt", "qcom,cdp";
+ qcom,board-id = <1 0>;
+};
diff --git a/arch/arm/boot/dts/qcom/apqcobalt-v2.1-mtp.dts b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-mtp.dts
new file mode 100644
index 000000000000..e23134f8897b
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-mtp.dts
@@ -0,0 +1,22 @@
+/* Copyright (c) 2016, 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 "apqcobalt-v2.1.dtsi"
+#include "msmcobalt-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. APQ COBALT V2.1 MTP";
+ compatible = "qcom,apqcobalt-mtp", "qcom,apqcobalt", "qcom,mtp";
+ qcom,board-id = <8 0>;
+};
diff --git a/arch/arm/boot/dts/qcom/apqcobalt-v2.1-qrd.dts b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-qrd.dts
new file mode 100644
index 000000000000..8da6f90958d2
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/apqcobalt-v2.1-qrd.dts
@@ -0,0 +1,22 @@
+/* Copyright (c) 2016, 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 "apqcobalt-v2.1.dtsi"
+#include "msmcobalt-qrd.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. APQ COBALT V2.1 QRD";
+ compatible = "qcom,apqcobalt-qrd", "qcom,apqcobalt", "qcom,qrd";
+ qcom,board-id = <11 0>;
+};
diff --git a/arch/arm/boot/dts/qcom/apqcobalt-v2.1.dtsi b/arch/arm/boot/dts/qcom/apqcobalt-v2.1.dtsi
new file mode 100644
index 000000000000..5a49afecd60b
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/apqcobalt-v2.1.dtsi
@@ -0,0 +1,18 @@
+/* Copyright (c) 2016, 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 "msmcobalt-v2.1.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. APQ COBALT V2.1";
+ qcom,msm-id = <319 0x20001>;
+};
diff --git a/arch/arm/boot/dts/qcom/msm-audio-lpass.dtsi b/arch/arm/boot/dts/qcom/msm-audio-lpass.dtsi
index f3233948d457..41b6f50c520b 100644
--- a/arch/arm/boot/dts/qcom/msm-audio-lpass.dtsi
+++ b/arch/arm/boot/dts/qcom/msm-audio-lpass.dtsi
@@ -76,6 +76,11 @@
qcom,msm-dai-q6-dev-id = <8>;
};
+ dai_dp: qcom,msm-dai-q6-dp {
+ compatible = "qcom,msm-dai-q6-hdmi";
+ qcom,msm-dai-q6-dev-id = <24608>;
+ };
+
loopback: qcom,msm-pcm-loopback {
compatible = "qcom,msm-pcm-loopback";
};
diff --git a/arch/arm/boot/dts/qcom/msm-pmicobalt.dtsi b/arch/arm/boot/dts/qcom/msm-pmicobalt.dtsi
index d99749a01f6c..f0c13096cf37 100644
--- a/arch/arm/boot/dts/qcom/msm-pmicobalt.dtsi
+++ b/arch/arm/boot/dts/qcom/msm-pmicobalt.dtsi
@@ -145,6 +145,15 @@
qcom,pmic-revid = <&pmicobalt_revid>;
+ io-channels = <&pmicobalt_rradc 8>,
+ <&pmicobalt_rradc 10>,
+ <&pmicobalt_rradc 3>,
+ <&pmicobalt_rradc 4>;
+ io-channel-names = "charger_temp",
+ "charger_temp_max",
+ "usbin_i",
+ "usbin_v";
+
dpdm-supply = <&qusb_phy0>;
qcom,thermal-mitigation
@@ -262,7 +271,7 @@
reg = <0x1700 0x100>;
vdd-pdphy-supply = <&pmcobalt_l24>;
vbus-supply = <&smb2_vbus>;
- vcon-supply = <&smb2_vconn>;
+ vconn-supply = <&smb2_vconn>;
interrupts = <0x2 0x17 0x0 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x1 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x2 IRQ_TYPE_EDGE_RISING>,
diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi
index aa973e4ee3d6..e0d84e423e88 100644
--- a/arch/arm/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996.dtsi
@@ -1934,6 +1934,9 @@
clock-names = "core_clk", "iface_clk", "bus_aggr_clk", "utmi_clk",
"sleep_clk", "xo", "cfg_ahb_clk";
+ resets = <&clock_gcc USB_30_BCR>;
+ reset-names = "core_reset";
+
dwc3@6a00000 {
compatible = "snps,dwc3";
reg = <0x06a00000 0xc8d0>;
@@ -2039,6 +2042,8 @@
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>;
clock-names = "core_clk", "iface_clk", "utmi_clk", "sleep_clk",
"xo", "cfg_ahb_clk";
+ resets = <&clock_gcc USB_20_BCR>;
+ reset-names = "core_reset";
dwc3@7600000 {
compatible = "snps,dwc3";
@@ -2088,10 +2093,11 @@
qcom,major-rev = <1>;
clocks = <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
- <&clock_gcc clk_gcc_qusb2phy_prim_reset>,
<&clock_gcc clk_ln_bb_clk>;
+ clock-names = "cfg_ahb_clk", "ref_clk_src";
- clock-names = "cfg_ahb_clk", "phy_reset", "ref_clk_src";
+ resets = <&clock_gcc QUSB2PHY_PRIM_BCR>;
+ reset-names = "phy_reset";
};
qusb_phy1: qusb@7412000 {
@@ -2124,10 +2130,11 @@
qcom,hold-reset;
clocks = <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
- <&clock_gcc clk_gcc_qusb2phy_sec_reset>,
- <&clock_gcc clk_ln_bb_clk>;
+ <&clock_gcc clk_ln_bb_clk>;
+ clock-names = "cfg_ahb_clk", "ref_clk_src";
- clock-names = "cfg_ahb_clk", "phy_reset", "ref_clk_src";
+ resets = <&clock_gcc QUSB2PHY_SEC_BCR>;
+ reset-names = "phy_reset";
};
ssphy: ssphy@7410000 {
@@ -2209,13 +2216,15 @@
clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>,
<&clock_gcc clk_gcc_usb3_phy_pipe_clk>,
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
- <&clock_gcc clk_gcc_usb3_phy_reset>,
- <&clock_gcc clk_gcc_usb3phy_phy_reset>,
<&clock_gcc clk_ln_bb_clk>,
<&clock_gcc clk_gcc_usb3_clkref_clk>;
- clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset",
- "phy_phy_reset", "ref_clk_src", "ref_clk";
+ clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk",
+ "ref_clk_src", "ref_clk";
+
+ resets = <&clock_gcc USB3_PHY_BCR>,
+ <&clock_gcc USB3PHY_PHY_BCR>;
+ reset-names = "phy_reset", "phy_phy_reset";
};
usb_nop_phy: usb_nop_phy {
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
index 05328a0f29dc..ec69d7ac895d 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-audio.dtsi
@@ -34,7 +34,7 @@
sound-9335 {
compatible = "qcom,msmcobalt-asoc-snd-tasha";
qcom,model = "msmcobalt-tasha-snd-card";
- qcom,hdmi-audio-rx;
+ qcom,ext-disp-audio-rx;
qcom,audio-routing =
"AIF4 VI", "MCLK",
@@ -80,7 +80,7 @@
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-cpe-lsm",
"msm-compr-dsp", "msm-pcm-dsp-noirq";
- asoc-cpu = <&dai_hdmi>,
+ asoc-cpu = <&dai_hdmi>, <&dai_dp>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
@@ -90,7 +90,7 @@
<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
<&usb_audio_rx>, <&usb_audio_tx>;
- asoc-cpu-names = "msm-dai-q6-hdmi.8",
+ asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
@@ -104,9 +104,9 @@
"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673";
- asoc-codec = <&stub_codec>, <&hdmi_audio>;
+ asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
asoc-codec-names = "msm-stub-codec.1",
- "msm-hdmi-audio-codec-rx";
+ "msm-ext-disp-audio-codec-rx";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
<&wsa881x_213>, <&wsa881x_214>;
@@ -117,6 +117,7 @@
sound-tavil {
compatible = "qcom,msmcobalt-asoc-snd-tavil";
qcom,model = "msmcobalt-tavil-snd-card";
+ qcom,ext-disp-audio-rx;
qcom,audio-routing =
"RX_BIAS", "MCLK",
@@ -160,7 +161,7 @@
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-cpe-lsm",
"msm-compr-dsp", "msm-pcm-dsp-noirq";
- asoc-cpu = <&dai_hdmi>,
+ asoc-cpu = <&dai_hdmi>, <&dai_dp>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
@@ -169,7 +170,7 @@
<&incall_record_tx>, <&incall_music_rx>,
<&incall_music_2_rx>, <&sb_5_rx>,
<&usb_audio_rx>, <&usb_audio_tx>, <&sb_6_rx>;
- asoc-cpu-names = "msm-dai-q6-hdmi.8",
+ asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
@@ -182,8 +183,9 @@
"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
"msm-dai-q6-dev.16396";
- asoc-codec = <&stub_codec>;
- asoc-codec-names = "msm-stub-codec.1";
+ asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
+ asoc-codec-names = "msm-stub-codec.1",
+ "msm-ext-disp-audio-codec-rx";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
<&wsa881x_0213>, <&wsa881x_0214>;
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-camera.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-camera.dtsi
index def8ed6e07a7..b4516f381c0c 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-camera.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-camera.dtsi
@@ -752,7 +752,7 @@
<&clock_mmss clk_mmss_bimc_smmu_axi_clk>,
<&clock_mmss clk_mmss_camss_ahb_clk>,
<&clock_mmss clk_mmss_camss_top_ahb_clk>,
- <&clock_mmss clk_mmss_camss_jpeg0_clk>,
+ <&clock_mmss clk_mmss_camss_jpeg0_vote_clk>,
<&clock_mmss clk_mmss_camss_jpeg_ahb_clk>,
<&clock_mmss clk_mmss_camss_jpeg_axi_clk>;
qcom,clock-rates = <0 0 0 0 0 0 480000000 0 0>;
@@ -766,7 +766,7 @@
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <62 512 0 0>,
- <62 512 666675 666675>;
+ <62 512 1920000 2880000>;
status = "ok";
};
@@ -796,7 +796,7 @@
<&clock_mmss clk_mmss_bimc_smmu_axi_clk>,
<&clock_mmss clk_mmss_camss_ahb_clk>,
<&clock_mmss clk_mmss_camss_top_ahb_clk>,
- <&clock_mmss clk_mmss_camss_jpeg0_clk>,
+ <&clock_mmss clk_mmss_camss_jpeg0_dma_vote_clk>,
<&clock_mmss clk_mmss_camss_jpeg_ahb_clk>,
<&clock_mmss clk_mmss_camss_jpeg_axi_clk>;
qcom,clock-rates = <0 0 0 0 0 0 480000000 0 0>;
@@ -808,7 +808,7 @@
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <62 512 0 0>,
- <62 512 666675 666675>;
+ <62 512 1920000 2880000>;
qcom,max-ds-factor = <128>;
status = "ok";
};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-mdss.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-mdss.dtsi
index 85d6b1d5fba3..fd930d3d1644 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-mdss.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-mdss.dtsi
@@ -451,8 +451,9 @@
msm_ext_disp: qcom,msm_ext_disp {
compatible = "qcom,msm-ext-disp";
- hdmi_audio: qcom,msm-hdmi-audio-rx {
- compatible = "qcom,msm-hdmi-audio-codec-rx";
+ ext_disp_audio_codec: qcom,msm-ext-disp-audio-codec-rx {
+ compatible = "qcom,msm-ext-disp-audio-codec-rx";
+ qcom,msm_ext_disp = <&msm_ext_disp>;
};
};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-mtp.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-mtp.dtsi
index 1d64cefaeb4a..70755ec1b8f5 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-mtp.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-mtp.dtsi
@@ -285,6 +285,11 @@
compatible = "qcom,smb138x-parallel-slave";
qcom,pmic-revid = <&smb138x_revid>;
reg = <0x1000 0x700>;
+
+ io-channels = <&smb138x_tadc 2>,
+ <&smb138x_tadc 12>;
+ io-channel-names = "charger_temp",
+ "charger_temp_max";
};
};
};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dts b/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dts
new file mode 100644
index 000000000000..e53912071502
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dts
@@ -0,0 +1,23 @@
+/* Copyright (c) 2016, 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 "msmcobalt.dtsi"
+#include "msmcobalt-qrd-vr1.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM COBALT VR1 Board";
+ compatible = "qcom,msmcobalt-qrd", "qcom,msmcobalt", "qcom,qrd";
+ qcom,board-id = <0x02000b 0x80>;
+};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dtsi
new file mode 100644
index 000000000000..c028ea0eeab3
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msmcobalt-qrd-vr1.dtsi
@@ -0,0 +1,102 @@
+/* Copyright (c) 2016, 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 <dt-bindings/interrupt-controller/irq.h>
+#include "msmcobalt-pinctrl.dtsi"
+
+&blsp1_uart3_hs {
+ status = "ok";
+};
+
+&ufsphy1 {
+ vdda-phy-supply = <&pmcobalt_l1>;
+ vdda-pll-supply = <&pmcobalt_l2>;
+ vddp-ref-clk-supply = <&pmcobalt_l26>;
+ vdda-phy-max-microamp = <51400>;
+ vdda-pll-max-microamp = <14600>;
+ vddp-ref-clk-max-microamp = <100>;
+ vddp-ref-clk-always-on;
+ status = "ok";
+};
+
+&ufs1 {
+ vdd-hba-supply = <&gdsc_ufs>;
+ vdd-hba-fixed-regulator;
+ vcc-supply = <&pmcobalt_l20>;
+ vccq-supply = <&pmcobalt_l26>;
+ vccq2-supply = <&pmcobalt_s4>;
+ vcc-max-microamp = <750000>;
+ vccq-max-microamp = <560000>;
+ vccq2-max-microamp = <750000>;
+ status = "ok";
+};
+
+&ufs_ice {
+ status = "ok";
+};
+
+&sdhc_2 {
+ vdd-supply = <&pmcobalt_l21>;
+ qcom,vdd-voltage-level = <2950000 2960000>;
+ qcom,vdd-current-level = <200 800000>;
+
+ vdd-io-supply = <&pmcobalt_l13>;
+ qcom,vdd-io-voltage-level = <1808000 2960000>;
+ qcom,vdd-io-current-level = <200 22000>;
+
+ pinctrl-names = "active", "sleep";
+ pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
+ pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
+
+ qcom,clk-rates = <400000 20000000 25000000
+ 50000000 100000000 200000000>;
+ qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
+
+ cd-gpios = <&tlmm 95 0x1>;
+
+ status = "ok";
+};
+
+&uartblsp2dm1 {
+ status = "ok";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart_console_active>;
+};
+
+&pmcobalt_gpios {
+ /* GPIO 6 for Vol+ Key */
+ gpio@c500 {
+ status = "okay";
+ qcom,mode = <0>;
+ qcom,pull = <0>;
+ qcom,vin-sel = <0>;
+ qcom,src-sel = <0>;
+ qcom,out-strength = <1>;
+ };
+};
+
+&soc {
+ gpio_keys {
+ compatible = "gpio-keys";
+ input-name = "gpio-keys";
+ status = "okay";
+
+ vol_up {
+ label = "volume_up";
+ gpios = <&pmcobalt_gpios 6 0x1>;
+ linux,input-type = <1>;
+ linux,code = <115>;
+ gpio-key,wakeup;
+ debounce-interval = <15>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-qrd.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-qrd.dtsi
index 425a902568ae..e0ae9a8873a7 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-qrd.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-qrd.dtsi
@@ -69,3 +69,16 @@
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
+
+&soc {
+ sound-tavil {
+ qcom,msm-mbhc-hphl-swh = <1>;
+ /delete-property/ qcom,us-euro-gpios;
+ };
+
+ sound-9335 {
+ qcom,msm-mbhc-hphl-swh = <1>;
+ /delete-property/ qcom,us-euro-gpios;
+ };
+};
+
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
index 256c404bb972..86bc048adeb5 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
@@ -900,8 +900,10 @@
gfx_cpr: cpr4-ctrl@5061000 {
compatible = "qcom,cpr4-msmcobalt-v1-mmss-regulator";
- reg = <0x05061000 0x4000>, <0x00784000 0x1000>;
- reg-names = "cpr_ctrl", "fuse_base";
+ reg = <0x05061000 0x4000>,
+ <0x00784000 0x1000>,
+ <0x05065204 0x4>;
+ reg-names = "cpr_ctrl", "fuse_base", "aging_allowed";
clocks = <&clock_gpu clk_gpucc_rbcpr_clk>,
<&clock_gcc clk_cnoc_clk>;
clock-names = "core_clk", "bus_clk";
@@ -912,14 +914,16 @@
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
- qcom,cpr-step-quot-init-min = <10>;
- qcom,cpr-step-quot-init-max = <13>;
+ qcom,cpr-step-quot-init-min = <8>;
+ qcom,cpr-step-quot-init-max = <12>;
qcom,cpr-count-mode = <0>; /* All-at-once min */
vdd-supply = <&pm8005_s1>;
qcom,voltage-step = <4000>;
mem-acc-supply = <&gfx_mem_acc_vreg>;
qcom,cpr-aging-ref-voltage = <1032000>;
+ qcom,cpr-aging-allowed-reg-mask = <0x00000003>;
+ qcom,cpr-aging-allowed-reg-value = <0x00000003>;
qcom,cpr-enable;
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-v2.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-v2.dtsi
index 38cfd58f7f2d..48a23b44b5b2 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-v2.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-v2.dtsi
@@ -24,6 +24,8 @@
};
&clock_cpu {
+ compatible = "qcom,cpu-clock-osm-msmcobalt-v2";
+ /delete-property/ qcom,llm-sw-overr;
qcom,pwrcl-speedbin0-v0 =
< 300000000 0x0004000f 0x01200020 0x1 >,
< 364800000 0x05040013 0x01200020 0x1 >,
@@ -79,6 +81,34 @@
< 2342400000 0x0404007a 0x0a620062 0x3 >,
< 2419200000 0x0404007e 0x0a650065 0x3 >,
< 2496000000 0x04040082 0x0a680068 0x3 >;
+
+ qcom,perfcl-speedbin1-v0 =
+ < 300000000 0x0004000f 0x01200020 0x1 >,
+ < 345600000 0x05040012 0x01200020 0x1 >,
+ < 422400000 0x05040016 0x02200020 0x1 >,
+ < 499200000 0x0504001a 0x02200020 0x1 >,
+ < 576000000 0x0504001e 0x02200020 0x1 >,
+ < 652800000 0x05040022 0x03200020 0x1 >,
+ < 729600000 0x05040026 0x03200020 0x1 >,
+ < 806400000 0x0504002a 0x03220022 0x1 >,
+ < 902400000 0x0404002f 0x04260026 0x1 >,
+ < 979200000 0x04040033 0x04290029 0x1 >,
+ < 1056000000 0x04040037 0x052c002c 0x1 >,
+ < 1132800000 0x0404003b 0x052f002f 0x1 >,
+ < 1190400000 0x0404003e 0x05320032 0x2 >,
+ < 1267200000 0x04040042 0x06350035 0x2 >,
+ < 1344000000 0x04040046 0x06380038 0x2 >,
+ < 1420800000 0x0404004a 0x063b003b 0x2 >,
+ < 1497600000 0x0404004e 0x073e003e 0x2 >,
+ < 1574400000 0x04040052 0x07420042 0x2 >,
+ < 1651200000 0x04040056 0x07450045 0x2 >,
+ < 1728000000 0x0404005a 0x08480048 0x2 >,
+ < 1804800000 0x0404005e 0x084b004b 0x2 >,
+ < 1881600000 0x04040062 0x094e004e 0x2 >,
+ < 1958400000 0x04040066 0x09520052 0x2 >,
+ < 2035200000 0x0404006a 0x09550055 0x3 >,
+ < 2112000000 0x0404006e 0x0a580058 0x3 >,
+ < 2208000000 0x04040073 0x0a5c005c 0x3 >;
};
&msm_cpufreq {
@@ -194,28 +224,64 @@
&apc0_cpr {
compatible = "qcom,cprh-msmcobalt-v2-kbss-regulator";
+ qcom,cpr-corner-switch-delay-time = <1042>;
};
&apc0_pwrcl_vreg {
regulator-max-microvolt = <23>;
- qcom,cpr-corners = <22>;
- qcom,cpr-corner-fmax-map = <8 11 18 22>;
+
+ qcom,cpr-fuse-combos = <16>;
+ qcom,cpr-speed-bins = <2>;
+ qcom,cpr-speed-bin-corners = <22 22>;
+ qcom,cpr-corners =
+ /* Speed bin 0 */
+ <22 22 22 22 22 22 22 22>,
+ /* Speed bin 1 */
+ <22 22 22 22 22 22 22 22>;
+
+ qcom,cpr-corner-fmax-map =
+ /* Speed bin 0 */
+ <8 11 18 22>,
+ /* Speed bin 1 */
+ <8 11 18 22>;
qcom,cpr-voltage-ceiling =
- <688000 688000 688000 688000 688000
- 688000 688000 688000 756000 756000
- 756000 828000 828000 828000 828000
+ /* Speed bin 0 */
+ <828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
828000 828000 828000 952000 952000
- 1024000 1024000>;
+ 1056000 1056000>,
+ /* Speed bin 1 */
+ <828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 952000 952000
+ 1056000 1056000>;
qcom,cpr-voltage-floor =
+ /* Speed bin 0 */
<568000 568000 568000 568000 568000
568000 568000 568000 568000 568000
568000 632000 632000 632000 632000
632000 632000 632000 712000 712000
- 756000 756000>;
+ 772000 772000>,
+ /* Speed bin 1 */
+ <568000 568000 568000 568000 568000
+ 568000 568000 568000 568000 568000
+ 568000 632000 632000 632000 632000
+ 632000 632000 632000 712000 712000
+ 772000 772000>;
qcom,cpr-floor-to-ceiling-max-range =
+ /* Speed bin 0 */
+ <55000 55000 55000 55000
+ 55000 55000 55000 55000
+ 55000 55000 55000 65000
+ 65000 65000 65000 65000
+ 65000 65000 65000 65000
+ 65000 65000>,
+ /* Speed bin 1 */
<55000 55000 55000 55000
55000 55000 55000 55000
55000 55000 55000 65000
@@ -224,6 +290,16 @@
65000 65000>;
qcom,corner-frequencies =
+ /* Speed bin 0 */
+ <300000000 364800000 441600000
+ 518400000 595200000 672000000
+ 748800000 825600000 883200000
+ 960000000 1036800000 1094400000
+ 1171200000 1248000000 1324800000
+ 1401600000 1478400000 1555200000
+ 1670400000 1747200000 1824000000
+ 1900800000>,
+ /* Speed bin 1 */
<300000000 364800000 441600000
518400000 595200000 672000000
748800000 825600000 883200000
@@ -248,6 +324,16 @@
1559 1392>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
+ /* Speed bin 0 */
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ <40000 24000 0 0>,
+ /* Speed bin 1 */
<40000 24000 0 0>,
<40000 24000 0 0>,
<40000 24000 0 0>,
@@ -258,6 +344,16 @@
<40000 24000 0 0>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
+ /* Speed bin 0 */
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ <20000 26000 0 0>,
+ /* Speed bin 1 */
<20000 26000 0 0>,
<20000 26000 0 0>,
<20000 26000 0 0>,
@@ -274,30 +370,61 @@
&apc1_cpr {
compatible = "qcom,cprh-msmcobalt-v2-kbss-regulator";
+ qcom,cpr-corner-switch-delay-time = <1042>;
};
&apc1_perfcl_vreg {
regulator-max-microvolt = <31>;
- qcom,cpr-corners = <30>;
- qcom,cpr-corner-fmax-map = <8 12 20 30>;
+
+ qcom,cpr-fuse-combos = <16>;
+ qcom,cpr-speed-bins = <2>;
+ qcom,cpr-speed-bin-corners = <30 26>;
+ qcom,cpr-corners =
+ /* Speed bin 0 */
+ <30 30 30 30 30 30 30 30>,
+ /* Speed bin 1 */
+ <26 26 26 26 26 26 26 26>;
+
+ qcom,cpr-corner-fmax-map =
+ /* Speed bin 0 */
+ <8 12 20 30>,
+ /* Speed bin 1 */
+ <8 12 20 26>;
qcom,cpr-voltage-ceiling =
- <688000 688000 688000 688000 688000
- 688000 688000 688000 756000 756000
- 756000 756000 828000 828000 828000
+ /* Speed bin 0 */
+ <828000 828000 828000 828000 828000
828000 828000 828000 828000 828000
- 952000 952000 952000 1024000 1024000
- 1024000 1024000 1024000 1024000 1024000>;
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 952000 952000 952000 1056000 1056000
+ 1056000 1056000 1056000 1056000 1056000>,
+ /* Speed bin 1 */
+ <828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 828000 828000 828000 828000 828000
+ 952000 952000 952000 1056000 1056000
+ 1056000>;
qcom,cpr-voltage-floor =
+ /* Speed bin 0 */
<568000 568000 568000 568000 568000
568000 568000 568000 568000 568000
568000 568000 632000 632000 632000
632000 632000 632000 632000 632000
- 712000 712000 712000 756000 756000
- 756000 756000 756000 756000 756000>;
+ 712000 712000 712000 772000 772000
+ 772000 772000 772000 772000 772000>,
+ /* Speed bin 1 */
+ <568000 568000 568000 568000 568000
+ 568000 568000 568000 568000 568000
+ 568000 568000 632000 632000 632000
+ 632000 632000 632000 632000 632000
+ 712000 712000 712000 772000 772000
+ 772000>;
qcom,cpr-floor-to-ceiling-max-range =
+ /* Speed bin 0 */
<55000 55000 55000 55000
55000 55000 55000 55000
55000 55000 55000 55000
@@ -305,9 +432,18 @@
65000 65000 65000 65000
65000 65000 65000 65000
65000 65000 65000 65000
+ 65000 65000>,
+ /* Speed bin 1 */
+ <55000 55000 55000 55000
+ 55000 55000 55000 55000
+ 55000 55000 55000 55000
+ 65000 65000 65000 65000
+ 65000 65000 65000 65000
+ 65000 65000 65000 65000
65000 65000>;
qcom,corner-frequencies =
+ /* Speed bin 0 */
<300000000 345600000 422400000
499200000 576000000 652800000
729600000 806400000 902400000
@@ -317,7 +453,17 @@
1651200000 1728000000 1804800000
1881600000 1958400000 2035200000
2112000000 2188800000 2265600000
- 2342400000 2419200000 2496000000>;
+ 2342400000 2419200000 2496000000>,
+ /* Speed bin 1 */
+ <300000000 345600000 422400000
+ 499200000 576000000 652800000
+ 729600000 806400000 902400000
+ 979200000 1056000000 1132800000
+ 1190400000 1267200000 1344000000
+ 1420800000 1497600000 1574400000
+ 1651200000 1728000000 1804800000
+ 1881600000 1958400000 2035200000
+ 2112000000 2208000000>;
qcom,cpr-ro-scaling-factor =
<4001 4019 3747 3758 3564 3480 2336
@@ -334,6 +480,16 @@
1559 1392>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
+ /* Speed bin 0 */
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ <8000 0 0 52000>,
+ /* Speed bin 1 */
<8000 0 0 52000>,
<8000 0 0 52000>,
<8000 0 0 52000>,
@@ -344,6 +500,16 @@
<8000 0 0 52000>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
+ /* Speed bin 0 */
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ <0 0 0 50000>,
+ /* Speed bin 1 */
<0 0 0 50000>,
<0 0 0 50000>,
<0 0 0 50000>,
@@ -373,8 +539,8 @@
qcom,cpr-corner-fmax-map = <1 3 5 8>;
qcom,cpr-voltage-ceiling =
- <616000 676000 740000 800000 828000
- 884000 952000 1024000>;
+ <656000 716000 772000 880000 908000
+ 948000 1016000 1088000>;
qcom,cpr-voltage-floor =
<516000 516000 532000 584000 632000
diff --git a/arch/arm/boot/dts/qcom/msmcobalt.dtsi b/arch/arm/boot/dts/qcom/msmcobalt.dtsi
index 4ea1cf31c4dc..0a3eb6f70644 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt.dtsi
@@ -803,13 +803,15 @@
};
clock_cpu: qcom,cpu-clock-cobalt@179c0000 {
- compatible = "qcom,cpu-clock-osm";
- reg = <0x179C0000 0x4000>,
+ compatible = "qcom,cpu-clock-osm-msmcobalt-v1";
+ reg = <0x179c0000 0x4000>,
<0x17916000 0x1000>,
<0x17816000 0x1000>,
- <0x179D1000 0x1000>;
+ <0x179d1000 0x1000>,
+ <0x00784130 0x8>,
+ <0x1791101c 0x8>;
reg-names = "osm", "pwrcl_pll", "perfcl_pll",
- "apcs_common";
+ "apcs_common", "perfcl_efuse", "debug";
vdd-pwrcl-supply = <&apc0_pwrcl_vreg>;
vdd-perfcl-supply = <&apc1_perfcl_vreg>;
@@ -942,10 +944,11 @@
reg = <0x162000 0x4>;
reg-names = "cc_base";
clock-names = "debug_gpu_clk", "debug_gfx_clk",
- "debug_mmss_clk";
+ "debug_mmss_clk", "debug_cpu_clk";
clocks = <&clock_gpu clk_gpucc_gcc_dbg_clk>,
<&clock_gfx clk_gfxcc_dbg_clk>,
- <&clock_mmss clk_mmss_debug_mux>;
+ <&clock_mmss clk_mmss_debug_mux>,
+ <&clock_cpu clk_cpu_debug_mux>;
#clock-cells = <1>;
};
@@ -1398,6 +1401,27 @@
qcom,glinkpkt-ch-name = "DATA40_CNTL";
qcom,glinkpkt-dev-name = "smdcntl8";
};
+
+ qcom,glinkpkt-data1 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA1";
+ qcom,glinkpkt-dev-name = "smd7";
+ };
+
+ qcom,glinkpkt-data4 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA4";
+ qcom,glinkpkt-dev-name = "smd8";
+ };
+
+ qcom,glinkpkt-data11 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA11";
+ qcom,glinkpkt-dev-name = "smd11";
+ };
};
pcie0: qcom,pcie@01c00000 {
@@ -1804,6 +1828,10 @@
"utmi_clk", "sleep_clk", "xo";
qcom,core-clk-rate = <120000000>;
+
+ resets = <&clock_gcc USB_30_BCR>;
+ reset-names = "core_reset";
+
dwc3@a800000 {
compatible = "snps,dwc3";
reg = <0x0a800000 0xcd00>;
@@ -1870,10 +1898,11 @@
phy_type= "utmi";
clocks = <&clock_gcc clk_ln_bb_clk1>,
- <&clock_gcc clk_gcc_rx1_usb2_clkref_clk>,
- <&clock_gcc clk_gcc_qusb2phy_prim_reset>;
+ <&clock_gcc clk_gcc_rx1_usb2_clkref_clk>;
+ clock-names = "ref_clk_src", "ref_clk";
- clock-names = "ref_clk_src", "ref_clk", "phy_reset";
+ resets = <&clock_gcc QUSB2PHY_PRIM_BCR>;
+ reset-names = "phy_reset";
};
ssphy: ssphy@c010000 {
@@ -2021,13 +2050,15 @@
clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>,
<&clock_gcc clk_gcc_usb3_phy_pipe_clk>,
- <&clock_gcc clk_gcc_usb3_phy_reset>,
- <&clock_gcc clk_gcc_usb3phy_phy_reset>,
<&clock_gcc clk_ln_bb_clk1>,
<&clock_gcc clk_gcc_usb3_clkref_clk>;
- clock-names = "aux_clk", "pipe_clk", "phy_reset",
- "phy_phy_reset", "ref_clk_src", "ref_clk";
+ clock-names = "aux_clk", "pipe_clk", "ref_clk_src",
+ "ref_clk";
+
+ resets = <&clock_gcc USB3_PHY_BCR>,
+ <&clock_gcc USB3PHY_PHY_BCR>;
+ reset-names = "phy_reset", "phy_phy_reset";
};
usb_audio_qmi_dev {
@@ -2575,7 +2606,12 @@
"iface_clk", "noc_axi_clk", "bus_clk", "maxi_clk";
qcom,pas-id = <9>;
- qcom,proxy-timeout-ms = <10000>;
+ qcom,msm-bus,num-cases = <2>;
+ qcom,msm-bus,num-paths = <1>;
+ qcom,msm-bus,vectors-KBps =
+ <63 512 0 0>,
+ <63 512 0 304000>;
+ qcom,proxy-timeout-ms = <100>;
qcom,firmware-name = "venus";
memory-region = <&pil_video_mem>;
status = "ok";
diff --git a/arch/arm/boot/dts/qcom/msmfalcon-regulator.dtsi b/arch/arm/boot/dts/qcom/msmfalcon-regulator.dtsi
new file mode 100644
index 000000000000..2c09774c1391
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msmfalcon-regulator.dtsi
@@ -0,0 +1,358 @@
+/* Copyright (c) 2016, 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.
+ */
+
+/* Stub regulators */
+
+/ {
+ /* PM660A S1 - VDD_APC0 supply */
+ pm660_s1a: regulator-pm660-s1a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s1a";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <565000>;
+ regulator-max-microvolt = <1170000>;
+ };
+
+ /* PM660A S2 + S3 = VDD_APC1 supply */
+ pm660_s2a: regulator-pm660-s2a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s2a";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <565000>;
+ regulator-max-microvolt = <1170000>;
+ };
+
+ pm660_s4a: regulator-pm660-s4a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s4a";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <1805000>;
+ regulator-max-microvolt = <2040000>;
+ };
+
+ pm660_s5a: regulator-pm660-s5a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s5a";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1350000>;
+ };
+
+ pm660_s6a: regulator-pm660-s6a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s6a";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <504000>;
+ regulator-max-microvolt = <992000>;
+ };
+
+ pm660_s1b: regulator-pm660-s1b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s1b";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <1125000>;
+ regulator-max-microvolt = <1125000>;
+ };
+
+ pm660_s2b: regulator-pm660-s2b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s2b";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ };
+
+ /* PM660B S3 + S4 - VDD_CX supply */
+ pm660_s3b_level: regulator-pm660-s3b-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s3b_level";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_s3b_floor_level: regulator-pm660-s3b-floor-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s3b_floor_level";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_s3b_level_ao: regulator-pm660-s3b-level-ao {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s3b_level_ao";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ /* PM660B S5 - VDD_MX supply */
+ pm660_s5b_level: regulator-pm660-s5b-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s5b_level";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_s5b_floor_level: regulator-pm660-s5b-floor-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s5b_floor_level";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_s5b_level_ao: regulator-pm660-s5b-level-ao {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_s5b_level_ao";
+ qcom,hpm-min-load = <100000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_l1a: regulator-pm660-l1a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l1a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1250000>;
+ };
+
+ pm660_l2a: regulator-pm660-l2a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l2a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1010000>;
+ };
+
+ pm660_l3a: regulator-pm660-l3a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l3a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1010000>;
+ };
+
+ /* TODO: remove if ADRASTEA CX/MX not voted from APPS */
+ pm660_l5a: regulator-pm660-l5a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l5a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <525000>;
+ regulator-max-microvolt = <950000>;
+ };
+
+ pm660_l6a: regulator-pm660-l6a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l6a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1370000>;
+ };
+
+ pm660_l7a: regulator-pm660-l7a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l7a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ pm660_l8a: regulator-pm660-l8a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l8a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1750000>;
+ regulator-max-microvolt = <1900000>;
+ };
+
+ pm660_l9a: regulator-pm660-l9a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l9a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1750000>;
+ regulator-max-microvolt = <1900000>;
+ };
+
+ pm660_l10a: regulator-pm660-l10a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l10a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1780000>;
+ regulator-max-microvolt = <1950000>;
+ };
+
+ pm660_l11a: regulator-pm660-l11a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l11a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1780000>;
+ regulator-max-microvolt = <1950000>;
+ };
+
+ pm660_l12a: regulator-pm660-l12a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l12a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1780000>;
+ regulator-max-microvolt = <1950000>;
+ };
+
+ pm660_l13a: regulator-pm660-l13a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l13a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1750000>;
+ regulator-max-microvolt = <1950000>;
+ };
+
+ pm660_l14a: regulator-pm660-l14a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l14a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1710000>;
+ regulator-max-microvolt = <1900000>;
+ };
+
+ pm660_l15a: regulator-pm660-l15a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l15a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ pm660_l17a: regulator-pm660-l17a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l17a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ pm660_l19a: regulator-pm660-l19a {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l19a";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ pm660_l1b: regulator-pm660-l1b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l1b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <925000>;
+ };
+
+ pm660_l2b: regulator-pm660-l2b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l2b";
+ qcom,hpm-min-load = <5000>;
+ regulator-min-microvolt = <350000>;
+ regulator-max-microvolt = <3100000>;
+ };
+
+ pm660_l3b: regulator-pm660-l3b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l3b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1710000>;
+ regulator-max-microvolt = <3600000>;
+ };
+
+ pm660_l4b: regulator-pm660-l4b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l4b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ pm660_l5b: regulator-pm660-l5b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l5b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <1721000>;
+ regulator-max-microvolt = <3600000>;
+ };
+
+ pm660_l6b: regulator-pm660-l6b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l6b";
+ qcom,hpm-min-load = <5000>;
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ pm660_l7b: regulator-pm660-l7b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l7b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3125000>;
+ };
+
+ pm660_l8b: regulator-pm660-l8b {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l8b";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ /* PM660B L9 = VDD_SSC_CX supply */
+ pm660_l9b_level: regulator-pm660-l9b-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l9b_level";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_l9b_floor_level: regulator-pm660-l9b-floor-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l9b_floor_level";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ /* PM660B L10 = VDD_SSC_MX supply */
+ pm660_l10b_level: regulator-pm660-l10b-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l10b_level";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ pm660_l10b_floor_level: regulator-pm660-l10b-floor-level {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "pm660_l10b_floor_level";
+ qcom,hpm-min-load = <10000>;
+ regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
+ regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
+ };
+
+ /* GFX Supply */
+ gfx_vreg_corner: regulator-gfx-corner {
+ compatible = "qcom,stub-regulator";
+ regulator-name = "gfx_corner";
+ regulator-min-microvolt = <1>;
+ regulator-max-microvolt = <7>;
+ };
+};
diff --git a/arch/arm/boot/dts/qcom/msmfalcon-rumi.dts b/arch/arm/boot/dts/qcom/msmfalcon-rumi.dts
index 6631d31bac6d..0d694a6cd9fa 100644
--- a/arch/arm/boot/dts/qcom/msmfalcon-rumi.dts
+++ b/arch/arm/boot/dts/qcom/msmfalcon-rumi.dts
@@ -22,7 +22,7 @@
qcom,board-id = <15 0>;
};
-&uartblsp2dm1 {
+&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
diff --git a/arch/arm/boot/dts/qcom/msmfalcon-sim.dts b/arch/arm/boot/dts/qcom/msmfalcon-sim.dts
index 9840343fc3a7..eaaa1b407425 100644
--- a/arch/arm/boot/dts/qcom/msmfalcon-sim.dts
+++ b/arch/arm/boot/dts/qcom/msmfalcon-sim.dts
@@ -22,7 +22,7 @@
qcom,board-id = <16 0>;
};
-&uartblsp2dm1 {
+&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
diff --git a/arch/arm/boot/dts/qcom/msmfalcon.dtsi b/arch/arm/boot/dts/qcom/msmfalcon.dtsi
index e46041cdd501..7c4e7f0ee55a 100644
--- a/arch/arm/boot/dts/qcom/msmfalcon.dtsi
+++ b/arch/arm/boot/dts/qcom/msmfalcon.dtsi
@@ -15,6 +15,7 @@
#include <dt-bindings/clock/qcom,gpu-msmfalcon.h>
#include <dt-bindings/clock/qcom,mmcc-msmfalcon.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
/ {
model = "Qualcomm Technologies, Inc. MSM FALCON";
@@ -23,7 +24,7 @@
interrupt-parent = <&intc>;
aliases {
- serial0 = &uartblsp2dm1;
+ serial0 = &uartblsp1dm1;
};
chosen {
@@ -246,6 +247,16 @@
3200 3200 3200 3200 3200 3200>;
};
+ uartblsp1dm1: serial@0c170000 {
+ compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+ reg = <0xc170000 0x1000>;
+ interrupts = <0 108 0>;
+ status = "disabled";
+ clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
+ <&clock_gcc GCC_BLSP1_AHB_CLK>;
+ clock-names = "core", "iface";
+ };
+
uartblsp2dm1: serial@0c1b0000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xc1b0000 0x1000>;
@@ -472,6 +483,27 @@
qcom,glinkpkt-ch-name = "DATA40_CNTL";
qcom,glinkpkt-dev-name = "smdcntl8";
};
+
+ qcom,glinkpkt-data1 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA1";
+ qcom,glinkpkt-dev-name = "smd7";
+ };
+
+ qcom,glinkpkt-data4 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA4";
+ qcom,glinkpkt-dev-name = "smd8";
+ };
+
+ qcom,glinkpkt-data11 {
+ qcom,glinkpkt-transport = "smem";
+ qcom,glinkpkt-edge = "mpss";
+ qcom,glinkpkt-ch-name = "DATA11";
+ qcom,glinkpkt-dev-name = "smd11";
+ };
};
qcom,ipc_router {
@@ -511,3 +543,102 @@
};
#include "msmfalcon-ion.dtsi"
+#include "msmfalcon-regulator.dtsi"
+#include "msm-gdsc-cobalt.dtsi"
+
+&gdsc_usb30 {
+ clock-names = "core_clk";
+ clocks = <&clock_gcc GCC_USB30_MASTER_CLK>;
+ status = "ok";
+};
+
+&gdsc_ufs {
+ clock-names = "bus_clk", "ice_clk", "unipro_clk";
+ clocks = <&clock_gcc GCC_UFS_AXI_CLK>,
+ <&clock_gcc GCC_UFS_ICE_CORE_CLK>,
+ <&clock_gcc GCC_UFS_UNIPRO_CORE_CLK>;
+ status = "ok";
+};
+
+&gdsc_bimc_smmu {
+ clock-names = "bus_clk";
+ clocks = <&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>;
+ proxy-supply = <&gdsc_bimc_smmu>;
+ qcom,proxy-consumer-enable;
+ status = "ok";
+};
+
+&gdsc_hlos1_vote_lpass_adsp {
+ status = "ok";
+};
+
+&gdsc_hlos1_vote_lpass_core {
+ status = "ok";
+};
+
+&gdsc_venus {
+ clock-names = "bus_clk", "core_clk";
+ clocks = <&clock_mmss MMSS_VIDEO_AXI_CLK>,
+ <&clock_mmss MMSS_VIDEO_CORE_CLK>;
+ status = "ok";
+};
+
+&gdsc_venus_core0 {
+ clock-names = "core0_clk";
+ clocks = <&clock_mmss MMSS_VIDEO_SUBCORE0_CLK>;
+ qcom,support-hw-trigger;
+ status = "ok";
+};
+
+&gdsc_camss_top {
+ clock-names = "bus_clk", "vfe_axi";
+ clocks = <&clock_mmss MMSS_CAMSS_CPP_AXI_CLK>,
+ <&clock_mmss MMSS_CAMSS_VFE_VBIF_AXI_CLK>;
+ status = "ok";
+};
+
+&gdsc_vfe0 {
+ clock-names = "core0_clk" , "core0_stream_clk";
+ clocks = <&clock_mmss MMSS_CAMSS_VFE0_CLK>,
+ <&clock_mmss MMSS_CAMSS_VFE0_STREAM_CLK>;
+ parent-supply = <&gdsc_camss_top>;
+ status = "ok";
+};
+
+&gdsc_vfe1 {
+ clock-names = "core1_clk" , "core1_stream_clk";
+ clocks = <&clock_mmss MMSS_CAMSS_VFE1_CLK>,
+ <&clock_mmss MMSS_CAMSS_VFE1_STREAM_CLK>;
+ parent-supply = <&gdsc_camss_top>;
+ status = "ok";
+};
+
+&gdsc_cpp {
+ clock-names = "core_clk";
+ clocks = <&clock_mmss MMSS_CAMSS_CPP_CLK>;
+ parent-supply = <&gdsc_camss_top>;
+ status = "ok";
+};
+
+&gdsc_mdss {
+ clock-names = "bus_clk", "rot_clk";
+ clocks = <&clock_mmss MMSS_MDSS_AXI_CLK>,
+ <&clock_mmss MMSS_MDSS_ROT_CLK>;
+ proxy-supply = <&gdsc_mdss>;
+ qcom,proxy-consumer-enable;
+ status = "ok";
+};
+
+&gdsc_gpu_gx {
+ clock-names = "bimc_core_clk", "core_clk", "core_root_clk";
+ clocks = <&clock_gcc GCC_GPU_BIMC_GFX_CLK>,
+ <&clock_gfx GPUCC_GFX3D_CLK>,
+ <&clock_gfx GFX3D_CLK_SRC>;
+ qcom,force-enable-root-clk;
+ parent-supply = <&gfx_vreg_corner>;
+ status = "ok";
+};
+
+&gdsc_gpu_cx {
+ status = "ok";
+};
diff --git a/arch/arm/boot/dts/qcom/msmtriton-rumi.dts b/arch/arm/boot/dts/qcom/msmtriton-rumi.dts
new file mode 100644
index 000000000000..d3c62dbf99f2
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msmtriton-rumi.dts
@@ -0,0 +1,29 @@
+/* Copyright (c) 2016, 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 "msmtriton.dtsi"
+#include "msmfalcon-pinctrl.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM TRITON RUMI";
+ compatible = "qcom,msmtriton-rumi", "qcom,msmtriton", "qcom,rumi";
+ qcom,board-id = <15 0>;
+};
+
+&uartblsp1dm1 {
+ status = "ok";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart_console_active>;
+};
diff --git a/arch/arm/boot/dts/qcom/msmtriton.dtsi b/arch/arm/boot/dts/qcom/msmtriton.dtsi
new file mode 100644
index 000000000000..7b7501dceff3
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msmtriton.dtsi
@@ -0,0 +1,263 @@
+/* Copyright (c) 2016, 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 <dt-bindings/clock/qcom,gcc-msmfalcon.h>
+#include <dt-bindings/clock/qcom,gpu-msmfalcon.h>
+#include <dt-bindings/clock/qcom,mmcc-msmfalcon.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSMTRITON";
+ compatible = "qcom,msmtriton";
+ qcom,msm-id = <318 0x0>;
+ interrupt-parent = <&intc>;
+
+ aliases {
+ serial0 = &uartblsp1dm1;
+ };
+
+ chosen {
+ stdout-path = "serial0";
+ };
+
+ psci {
+ compatible = "arm,psci-1.0";
+ method = "smc";
+ };
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ CPU0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x0>;
+ enable-method = "psci";
+ };
+
+ CPU1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x1>;
+ enable-method = "psci";
+ };
+
+ CPU2: cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x2>;
+ enable-method = "psci";
+ };
+
+ CPU3: cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x3>;
+ enable-method = "psci";
+ };
+
+ CPU4: cpu@100 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x100>;
+ enable-method = "psci";
+ };
+
+ CPU5: cpu@101 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x101>;
+ enable-method = "psci";
+ };
+
+ CPU6: cpu@102 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x102>;
+ enable-method = "psci";
+ };
+
+ CPU7: cpu@103 {
+ device_type = "cpu";
+ compatible = "arm,armv8";
+ reg = <0x0 0x103>;
+ enable-method = "psci";
+ };
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&CPU4>;
+ };
+
+ core1 {
+ cpu = <&CPU5>;
+ };
+
+ core2 {
+ cpu = <&CPU6>;
+ };
+
+ core3 {
+ cpu = <&CPU7>;
+ };
+ };
+
+ cluster1 {
+ core0 {
+ cpu = <&CPU0>;
+ };
+
+ core1 {
+ cpu = <&CPU1>;
+ };
+
+ core2 {
+ cpu = <&CPU2>;
+ };
+
+ core3 {
+ cpu = <&CPU3>;
+ };
+ };
+ };
+ };
+
+ soc: soc { };
+
+};
+
+&soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0 0 0xffffffff>;
+ compatible = "simple-bus";
+
+ intc: interrupt-controller@17a00000 {
+ compatible = "arm,gic-v3";
+ reg = <0x17a00000 0x10000>, /* GICD */
+ <0x17b00000 0x100000>; /* GICR * 8 */
+ #interrupt-cells = <3>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ interrupt-controller;
+ #redistributor-regions = <1>;
+ redistributor-stride = <0x0 0x20000>;
+ interrupts = <1 9 4>;
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <1 1 0xf08>,
+ <1 2 0xf08>,
+ <1 3 0xf08>,
+ <1 0 0xf08>;
+ clock-frequency = <19200000>;
+ };
+
+ uartblsp1dm1: serial@0c170000 {
+ compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+ reg = <0xc170000 0x1000>;
+ interrupts = <0 108 0>;
+ status = "disabled";
+ clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
+ <&clock_gcc GCC_BLSP1_AHB_CLK>;
+ clock-names = "core", "iface";
+ };
+
+ uartblsp2dm1: serial@0c1b0000 {
+ compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+ reg = <0xc1b0000 0x1000>;
+ interrupts = <0 114 0>;
+ status = "disabled";
+ clocks = <&clock_gcc GCC_BLSP2_UART2_APPS_CLK>,
+ <&clock_gcc GCC_BLSP2_AHB_CLK>;
+ clock-names = "core", "iface";
+ };
+
+ timer@17920000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "arm,armv7-timer-mem";
+ reg = <0x17920000 0x1000>;
+ clock-frequency = <19200000>;
+
+ frame@17921000 {
+ frame-number = <0>;
+ interrupts = <0 8 0x4>,
+ <0 7 0x4>;
+ reg = <0x17921000 0x1000>,
+ <0x17922000 0x1000>;
+ };
+
+ frame@17923000 {
+ frame-number = <1>;
+ interrupts = <0 9 0x4>;
+ reg = <0x17923000 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17924000 {
+ frame-number = <2>;
+ interrupts = <0 10 0x4>;
+ reg = <0x17924000 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17925000 {
+ frame-number = <3>;
+ interrupts = <0 11 0x4>;
+ reg = <0x17925000 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17926000 {
+ frame-number = <4>;
+ interrupts = <0 12 0x4>;
+ reg = <0x17926000 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17927000 {
+ frame-number = <5>;
+ interrupts = <0 13 0x4>;
+ reg = <0x17927000 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17928000 {
+ frame-number = <6>;
+ interrupts = <0 14 0x4>;
+ reg = <0x17928000 0x1000>;
+ status = "disabled";
+ };
+ };
+
+ clock_gcc: qcom,dummycc {
+ compatible = "qcom,dummycc";
+ #clock-cells = <1>;
+ };
+
+ clock_mmss: qcom,dummycc {
+ compatible = "qcom,dummycc";
+ #clock-cells = <1>;
+ };
+
+ clock_gfx: qcom,dummycc {
+ compatible = "qcom,dummycc";
+ #clock-cells = <1>;
+ };
+};
diff --git a/arch/arm/configs/msmcortex_defconfig b/arch/arm/configs/msmcortex_defconfig
index 1e6a1c66ed82..0a20c52bd3b2 100644
--- a/arch/arm/configs/msmcortex_defconfig
+++ b/arch/arm/configs/msmcortex_defconfig
@@ -460,6 +460,7 @@ CONFIG_QCOM_FORCE_WDOG_BITE_ON_PANIC=y
CONFIG_MSM_MPM_OF=y
CONFIG_MSM_EVENT_TIMER=y
CONFIG_MSM_CORE_CTL_HELPER=y
+CONFIG_QCOM_REMOTEQDSS=y
CONFIG_MSM_SERVICE_NOTIFIER=y
CONFIG_MEM_SHARE_QMI_SERVICE=y
CONFIG_QCOM_BIMC_BWMON=y
diff --git a/arch/arm/configs/msmfalcon_defconfig b/arch/arm/configs/msmfalcon_defconfig
index 1e6a1c66ed82..0a20c52bd3b2 100644
--- a/arch/arm/configs/msmfalcon_defconfig
+++ b/arch/arm/configs/msmfalcon_defconfig
@@ -460,6 +460,7 @@ CONFIG_QCOM_FORCE_WDOG_BITE_ON_PANIC=y
CONFIG_MSM_MPM_OF=y
CONFIG_MSM_EVENT_TIMER=y
CONFIG_MSM_CORE_CTL_HELPER=y
+CONFIG_QCOM_REMOTEQDSS=y
CONFIG_MSM_SERVICE_NOTIFIER=y
CONFIG_MEM_SHARE_QMI_SERVICE=y
CONFIG_QCOM_BIMC_BWMON=y
diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig
index 69261c70e1dd..d6ed9ac56bf1 100644
--- a/arch/arm/mach-qcom/Kconfig
+++ b/arch/arm/mach-qcom/Kconfig
@@ -16,6 +16,7 @@ config ARCH_MSMFALCON
select MULTI_IRQ_HANDLER
select HAVE_ARM_ARCH_TIMER
select MAY_HAVE_SPARSE_IRQ
+ select COMMON_CLK_MSM
select PINCTRL_MSM_TLMM
select USE_PINCTRL_IRQ
select MSM_PM if PM
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index eb02bc09b63d..ee4efe58d0c8 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -95,6 +95,15 @@ config ARCH_MSMFALCON
If you do not wish to build a kernel that runs
on this chipset,say 'N' here.
+config ARCH_MSMTRITON
+ bool "Enable Support for Qualcomm Technologies Inc MSMTRITON"
+ depends on ARCH_QCOM
+ select COMMON_CLK_MSM
+ help
+ This enables support for the MSMTRITON chipset.
+ If you do not wish to build a kernel that runs
+ on this chipset,say 'N' here.
+
config ARCH_ROCKCHIP
bool "Rockchip Platforms"
select ARCH_HAS_RESET_CONTROLLER
diff --git a/arch/arm64/configs/msmcortex-perf_defconfig b/arch/arm64/configs/msmcortex-perf_defconfig
index 3adda1fc4109..5d76e41d4fed 100644
--- a/arch/arm64/configs/msmcortex-perf_defconfig
+++ b/arch/arm64/configs/msmcortex-perf_defconfig
@@ -380,6 +380,7 @@ CONFIG_MSM_VIDC_V4L2=m
CONFIG_MSM_VIDC_VMEM=m
CONFIG_MSM_VIDC_GOVERNORS=m
CONFIG_MSM_SDE_ROTATOR=y
+CONFIG_MSM_SDE_ROTATOR_EVTLOG_DEBUG=y
CONFIG_QCOM_KGSL=y
CONFIG_FB=y
CONFIG_FB_ARMCLCD=y
diff --git a/arch/arm64/configs/msmcortex_defconfig b/arch/arm64/configs/msmcortex_defconfig
index 686e1c22c5ae..367822dd0a94 100644
--- a/arch/arm64/configs/msmcortex_defconfig
+++ b/arch/arm64/configs/msmcortex_defconfig
@@ -383,6 +383,7 @@ CONFIG_MSM_VIDC_V4L2=m
CONFIG_MSM_VIDC_VMEM=m
CONFIG_MSM_VIDC_GOVERNORS=m
CONFIG_MSM_SDE_ROTATOR=y
+CONFIG_MSM_SDE_ROTATOR_EVTLOG_DEBUG=y
CONFIG_QCOM_KGSL=y
CONFIG_FB=y
CONFIG_FB_VIRTUAL=y
@@ -523,6 +524,7 @@ CONFIG_QCOM_WATCHDOG_V2=y
CONFIG_QCOM_IRQ_HELPER=y
CONFIG_QCOM_MEMORY_DUMP_V2=y
CONFIG_ICNSS=y
+CONFIG_ICNSS_DEBUG=y
CONFIG_MSM_GLADIATOR_ERP_V2=y
CONFIG_PANIC_ON_GLADIATOR_ERROR_V2=y
CONFIG_MSM_GLADIATOR_HANG_DETECT=y
diff --git a/arch/arm64/configs/msmfalcon-perf_defconfig b/arch/arm64/configs/msmfalcon-perf_defconfig
index f2eafd610cac..39c2d3f71c5a 100644
--- a/arch/arm64/configs/msmfalcon-perf_defconfig
+++ b/arch/arm64/configs/msmfalcon-perf_defconfig
@@ -44,6 +44,7 @@ CONFIG_ARCH_QCOM=y
CONFIG_ARCH_MSMCOBALT=y
CONFIG_ARCH_MSMHAMSTER=y
CONFIG_ARCH_MSMFALCON=y
+CONFIG_ARCH_MSMTRITON=y
CONFIG_PCI=y
CONFIG_PCI_MSM=y
CONFIG_SCHED_MC=y
diff --git a/arch/arm64/configs/msmfalcon_defconfig b/arch/arm64/configs/msmfalcon_defconfig
index 3742fe210dc2..a277038b3fc3 100644
--- a/arch/arm64/configs/msmfalcon_defconfig
+++ b/arch/arm64/configs/msmfalcon_defconfig
@@ -45,6 +45,7 @@ CONFIG_ARCH_QCOM=y
CONFIG_ARCH_MSMCOBALT=y
CONFIG_ARCH_MSMHAMSTER=y
CONFIG_ARCH_MSMFALCON=y
+CONFIG_ARCH_MSMTRITON=y
CONFIG_PCI=y
CONFIG_PCI_MSM=y
CONFIG_SCHED_MC=y
diff --git a/arch/arm64/include/asm/arch_gicv3.h b/arch/arm64/include/asm/arch_gicv3.h
index d925715c822f..30cf6f5961ef 100644
--- a/arch/arm64/include/asm/arch_gicv3.h
+++ b/arch/arm64/include/asm/arch_gicv3.h
@@ -172,8 +172,8 @@ static inline void gic_write_sre(u32 val)
isb();
}
-#define gic_read_typer(c) readq_relaxed(c)
-#define gic_write_irouter(v, c) writeq_relaxed(v, c)
+#define gic_read_typer(c) readq_relaxed_no_log(c)
+#define gic_write_irouter(v, c) writeq_relaxed_no_log(v, c)
#endif /* __ASSEMBLY__ */
#endif /* __ASM_ARCH_GICV3_H */
diff --git a/arch/arm64/kernel/io.c b/arch/arm64/kernel/io.c
index aeb0f25c9289..471fb3cb8c5f 100644
--- a/arch/arm64/kernel/io.c
+++ b/arch/arm64/kernel/io.c
@@ -28,21 +28,21 @@ void __memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
{
while (count && (!IS_ALIGNED((unsigned long)from, 8) ||
!IS_ALIGNED((unsigned long)to, 8))) {
- *(u8 *)to = __raw_readb(from);
+ *(u8 *)to = __raw_readb_no_log(from);
from++;
to++;
count--;
}
while (count >= 8) {
- *(u64 *)to = __raw_readq(from);
+ *(u64 *)to = __raw_readq_no_log(from);
from += 8;
to += 8;
count -= 8;
}
while (count) {
- *(u8 *)to = __raw_readb(from);
+ *(u8 *)to = __raw_readb_no_log(from);
from++;
to++;
count--;
@@ -57,21 +57,21 @@ void __memcpy_toio(volatile void __iomem *to, const void *from, size_t count)
{
while (count && (!IS_ALIGNED((unsigned long)to, 8) ||
!IS_ALIGNED((unsigned long)from, 8))) {
- __raw_writeb(*(volatile u8 *)from, to);
+ __raw_writeb_no_log(*(volatile u8 *)from, to);
from++;
to++;
count--;
}
while (count >= 8) {
- __raw_writeq(*(volatile u64 *)from, to);
+ __raw_writeq_no_log(*(volatile u64 *)from, to);
from += 8;
to += 8;
count -= 8;
}
while (count) {
- __raw_writeb(*(volatile u8 *)from, to);
+ __raw_writeb_no_log(*(volatile u8 *)from, to);
from++;
to++;
count--;
@@ -91,19 +91,19 @@ void __memset_io(volatile void __iomem *dst, int c, size_t count)
qc |= qc << 32;
while (count && !IS_ALIGNED((unsigned long)dst, 8)) {
- __raw_writeb(c, dst);
+ __raw_writeb_no_log(c, dst);
dst++;
count--;
}
while (count >= 8) {
- __raw_writeq(qc, dst);
+ __raw_writeq_no_log(qc, dst);
dst += 8;
count -= 8;
}
while (count) {
- __raw_writeb(c, dst);
+ __raw_writeb_no_log(c, dst);
dst++;
count--;
}