summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/arm/msm/msm.txt11
-rw-r--r--arch/arm/boot/dts/qcom/Makefile22
-rw-r--r--arch/arm/boot/dts/qcom/sda658-cdp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658-mtp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658-pm660a-rcm.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658-rcm.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sda658.dtsi19
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-cdp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts73
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts74
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-rcm.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-internal-codec-rcm.dts73
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-mtp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-pm660a-rcm.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-qrd.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658-rcm.dts25
-rw-r--r--arch/arm/boot/dts/qcom/sdm658.dtsi19
-rw-r--r--arch/arm/mach-qcom/board-660.c17
-rw-r--r--drivers/soc/qcom/socinfo.c10
-rw-r--r--include/soc/qcom/socinfo.h6
27 files changed, 748 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/arm/msm/msm.txt b/Documentation/devicetree/bindings/arm/msm/msm.txt
index 53f3d6875e7a..3618961b6c1c 100644
--- a/Documentation/devicetree/bindings/arm/msm/msm.txt
+++ b/Documentation/devicetree/bindings/arm/msm/msm.txt
@@ -89,9 +89,15 @@ SoCs:
- MSMHAMSTER
compatible = "qcom,msmhamster"
+- SDM658
+ compatible = "qcom,sdm658"
+
- SDM660
compatible = "qcom,sdm660"
+- SDA658
+ compatible = "qcom,sda658"
+
- SDA660
compatible = "qcom,sda660"
@@ -263,11 +269,16 @@ compatible = "qcom,msm8998-qrd"
compatible = "qcom,msmhamster-rumi"
compatible = "qcom,msmhamster-cdp"
compatible = "qcom,msmhamster-mtp"
+compatible = "qcom,sdm658-cdp"
+compatible = "qcom,sdm658-mtp"
+compatible = "qcom,sdm658-qrd"
compatible = "qcom,sdm660-sim"
compatible = "qcom,sdm660-rumi"
compatible = "qcom,sdm660-cdp"
compatible = "qcom,sdm660-mtp"
compatible = "qcom,sdm660-qrd"
+compatible = "qcom,sda658-mtp"
+compatible = "qcom,sda658-cdp"
compatible = "qcom,sda660-mtp"
compatible = "qcom,sda660-cdp"
compatible = "qcom,sdm630-rumi"
diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index 97508071c18b..0b1ee2a69d7e 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -159,7 +159,27 @@ dtb-$(CONFIG_ARCH_SDM660) += sdm660-sim.dtb \
sda660-rcm.dtb \
sda660-pm660a-cdp.dtb \
sda660-pm660a-mtp.dtb \
- sda660-pm660a-rcm.dtb
+ sda660-pm660a-rcm.dtb \
+ sdm658-mtp.dtb \
+ sdm658-cdp.dtb \
+ sdm658-rcm.dtb \
+ sdm658-qrd.dtb \
+ sdm658-pm660a-mtp.dtb \
+ sdm658-pm660a-cdp.dtb \
+ sdm658-pm660a-rcm.dtb \
+ sdm658-pm660a-qrd.dtb \
+ sdm658-internal-codec-mtp.dtb \
+ sdm658-internal-codec-cdp.dtb \
+ sdm658-internal-codec-rcm.dtb \
+ sdm658-internal-codec-pm660a-mtp.dtb \
+ sdm658-internal-codec-pm660a-cdp.dtb \
+ sdm658-internal-codec-pm660a-rcm.dtb \
+ sda658-cdp.dtb \
+ sda658-mtp.dtb \
+ sda658-rcm.dtb \
+ sda658-pm660a-mtp.dtb \
+ sda658-pm660a-cdp.dtb \
+ sda658-pm660a-rcm.dtb
dtb-$(CONFIG_ARCH_SDM630) += sdm630-rumi.dtb \
sdm630-pm660a-rumi.dtb
diff --git a/arch/arm/boot/dts/qcom/sda658-cdp.dts b/arch/arm/boot/dts/qcom/sda658-cdp.dts
new file mode 100644
index 000000000000..9992963b8705
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-cdp.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660L CDP";
+ compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
+ qcom,board-id = <1 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658-mtp.dts b/arch/arm/boot/dts/qcom/sda658-mtp.dts
new file mode 100644
index 000000000000..f4322ecfd701
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-mtp.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660L MTP";
+ compatible = "qcom,sda658-mtp", "qcom,sda658", "qcom,mtp";
+ qcom,board-id = <8 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts
new file mode 100644
index 000000000000..c280c4afda51
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-pm660a-cdp.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660A CDP";
+ compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
+ qcom,board-id = <1 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts
new file mode 100644
index 000000000000..ba8741e2a068
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-pm660a-mtp.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-mtp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660A MTP";
+ compatible = "qcom,sda658-mtp", "qcom,sda658", "qcom,mtp";
+ qcom,board-id = <8 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658-pm660a-rcm.dts b/arch/arm/boot/dts/qcom/sda658-pm660a-rcm.dts
new file mode 100644
index 000000000000..f3edc9a5d29f
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-pm660a-rcm.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660A RCM";
+ compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
+ qcom,board-id = <21 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658-rcm.dts b/arch/arm/boot/dts/qcom/sda658-rcm.dts
new file mode 100644
index 000000000000..9fafd9632c8d
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658-rcm.dts
@@ -0,0 +1,25 @@
+/* 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 "sda658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658 PM660 + PM660L RCM";
+ compatible = "qcom,sda658-cdp", "qcom,sda658", "qcom,cdp";
+ qcom,board-id = <21 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sda658.dtsi b/arch/arm/boot/dts/qcom/sda658.dtsi
new file mode 100644
index 000000000000..33018a177b41
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sda658.dtsi
@@ -0,0 +1,19 @@
+/* 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 "sdm658.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDA 658";
+ compatible = "qcom,sda658";
+ qcom,msm-id = <326 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-cdp.dts
new file mode 100644
index 000000000000..8569af157049
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-cdp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L CDP";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <1 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts
new file mode 100644
index 000000000000..d0f5c14223ff
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-cdp.dts
@@ -0,0 +1,73 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L Int. Audio Codec CDP";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <1 1>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
+
+&slim_aud {
+ status = "disabled";
+};
+
+&dai_slim {
+ status = "disabled";
+};
+
+&wcd9335 {
+ status = "disabled";
+};
+
+&wcd934x_cdc {
+ status = "disabled";
+};
+
+&clock_audio {
+ status = "disabled";
+};
+
+&wcd_rst_gpio {
+ status = "disabled";
+};
+
+&wcd9xxx_intc {
+ status = "disabled";
+};
+
+&tasha_snd {
+ status = "disabled";
+};
+
+&tavil_snd {
+ status = "disabled";
+};
+
+&int_codec {
+ status = "okay";
+};
+
+&pmic_analog_codec {
+ status = "okay";
+};
+
+&msm_sdw_codec {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts
new file mode 100644
index 000000000000..acec15e0615f
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-mtp.dts
@@ -0,0 +1,74 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L Int. Audio Codec MTP";
+ compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
+ qcom,board-id = <8 1>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
+
+&slim_aud {
+ status = "disabled";
+};
+
+&dai_slim {
+ status = "disabled";
+};
+
+&wcd9335 {
+ status = "disabled";
+};
+
+&wcd934x_cdc {
+ status = "disabled";
+};
+
+&clock_audio {
+ status = "disabled";
+};
+
+&wcd_rst_gpio {
+ status = "disabled";
+};
+
+&wcd9xxx_intc {
+ status = "disabled";
+};
+
+&tasha_snd {
+ status = "disabled";
+};
+
+&tavil_snd {
+ status = "disabled";
+};
+
+&int_codec {
+ qcom,model = "sdm660-snd-card-mtp";
+ status = "okay";
+};
+
+&pmic_analog_codec {
+ status = "okay";
+};
+
+&msm_sdw_codec {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts
new file mode 100644
index 000000000000..b7f2e70ce962
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-cdp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A Int. Audio Codec CDP";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <1 1>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts
new file mode 100644
index 000000000000..949d7ae7faa5
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-mtp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-mtp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A Int. Audio Codec MTP";
+ compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
+ qcom,board-id = <8 1>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-rcm.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-rcm.dts
new file mode 100644
index 000000000000..c0b3e3a6b34f
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-pm660a-rcm.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A Int. Audio Codec RCM";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <21 1>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-internal-codec-rcm.dts b/arch/arm/boot/dts/qcom/sdm658-internal-codec-rcm.dts
new file mode 100644
index 000000000000..69a089c41c32
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-internal-codec-rcm.dts
@@ -0,0 +1,73 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L Int. Audio Codec RCM";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <21 1>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
+
+&slim_aud {
+ status = "disabled";
+};
+
+&dai_slim {
+ status = "disabled";
+};
+
+&wcd9335 {
+ status = "disabled";
+};
+
+&wcd934x_cdc {
+ status = "disabled";
+};
+
+&clock_audio {
+ status = "disabled";
+};
+
+&wcd_rst_gpio {
+ status = "disabled";
+};
+
+&wcd9xxx_intc {
+ status = "disabled";
+};
+
+&tasha_snd {
+ status = "disabled";
+};
+
+&tavil_snd {
+ status = "disabled";
+};
+
+&int_codec {
+ status = "okay";
+};
+
+&pmic_analog_codec {
+ status = "okay";
+};
+
+&msm_sdw_codec {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-mtp.dts
new file mode 100644
index 000000000000..2fbe9b0a6201
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-mtp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-mtp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L MTP";
+ compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
+ qcom,board-id = <8 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts
new file mode 100644
index 000000000000..39e2df958347
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-cdp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A CDP";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <1 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts
new file mode 100644
index 000000000000..4d205ef403f4
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-mtp.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-mtp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A MTP";
+ compatible = "qcom,sdm658-mtp", "qcom,sdm658", "qcom,mtp";
+ qcom,board-id = <8 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts
new file mode 100644
index 000000000000..f1edf6b244a8
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-qrd.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-qrd.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A QRD";
+ compatible = "qcom,sdm658-qrd", "qcom,sdm658", "qcom,qrd";
+ qcom,board-id = <0x1000b 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-pm660a-rcm.dts b/arch/arm/boot/dts/qcom/sdm658-pm660a-rcm.dts
new file mode 100644
index 000000000000..e0ab5725dcd7
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-pm660a-rcm.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+#include "msm-pm660a.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660A RCM";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <21 0>;
+ qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-qrd.dts b/arch/arm/boot/dts/qcom/sdm658-qrd.dts
new file mode 100644
index 000000000000..bd7d76ee1f6c
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-qrd.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-qrd.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L QRD";
+ compatible = "qcom,sdm658-qrd", "qcom,sdm658", "qcom,qrd";
+ qcom,board-id = <0x1000b 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658-rcm.dts b/arch/arm/boot/dts/qcom/sdm658-rcm.dts
new file mode 100644
index 000000000000..67e03f2e2adb
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658-rcm.dts
@@ -0,0 +1,25 @@
+/* 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 "sdm658.dtsi"
+#include "sdm660-cdp.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658 PM660 + PM660L RCM";
+ compatible = "qcom,sdm658-cdp", "qcom,sdm658", "qcom,cdp";
+ qcom,board-id = <21 0>;
+ qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
+ <0x0001001b 0x0201011a 0x0 0x0>;
+};
diff --git a/arch/arm/boot/dts/qcom/sdm658.dtsi b/arch/arm/boot/dts/qcom/sdm658.dtsi
new file mode 100644
index 000000000000..3eca3dc30e50
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/sdm658.dtsi
@@ -0,0 +1,19 @@
+/* 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 "sdm660.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM 658";
+ compatible = "qcom,sdm658";
+ qcom,msm-id = <325 0x0>;
+};
diff --git a/arch/arm/mach-qcom/board-660.c b/arch/arm/mach-qcom/board-660.c
index 597df4d2450b..5cd11f09e3a4 100644
--- a/arch/arm/mach-qcom/board-660.c
+++ b/arch/arm/mach-qcom/board-660.c
@@ -48,3 +48,20 @@ DT_MACHINE_START(SDM630_DT,
.init_machine = sdm630_init,
.dt_compat = sdm630_dt_match,
MACHINE_END
+
+static const char *sdm658_dt_match[] __initconst = {
+ "qcom,sdm658",
+ "qcom,sda658",
+ NULL
+};
+
+static void __init sdm658_init(void)
+{
+ board_dt_populate(NULL);
+}
+
+DT_MACHINE_START(SDM658_DT,
+ "Qualcomm Technologies, Inc. SDM 658 (Flattened Device Tree)")
+ .init_machine = sdm658_init,
+ .dt_compat = sdm658_dt_match,
+MACHINE_END
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index e79599d73a34..43336ec83937 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -538,6 +538,8 @@ static struct msm_soc_info cpu_of_id[] = {
/* 660 ID */
[317] = {MSM_CPU_660, "SDM660"},
[324] = {MSM_CPU_660, "SDA660"},
+ [325] = {MSM_CPU_660, "SDM658"},
+ [326] = {MSM_CPU_660, "SDA658"},
/* 630 ID */
[318] = {MSM_CPU_630, "SDM630"},
@@ -1216,6 +1218,14 @@ static void * __init setup_dummy_socinfo(void)
dummy_socinfo.id = 324;
strlcpy(dummy_socinfo.build_id, "sda660 - ",
sizeof(dummy_socinfo.build_id));
+ } else if (early_machine_is_sdm658()) {
+ dummy_socinfo.id = 325;
+ strlcpy(dummy_socinfo.build_id, "sdm658 - ",
+ sizeof(dummy_socinfo.build_id));
+ } else if (early_machine_is_sda658()) {
+ dummy_socinfo.id = 326;
+ strlcpy(dummy_socinfo.build_id, "sda658 - ",
+ sizeof(dummy_socinfo.build_id));
} else if (early_machine_is_sdm630()) {
dummy_socinfo.id = 318;
strlcpy(dummy_socinfo.build_id, "sdm630 - ",
diff --git a/include/soc/qcom/socinfo.h b/include/soc/qcom/socinfo.h
index 611bdf856d1d..2841abe29e8d 100644
--- a/include/soc/qcom/socinfo.h
+++ b/include/soc/qcom/socinfo.h
@@ -98,6 +98,10 @@
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm660")
#define early_machine_is_sda660() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sda660")
+#define early_machine_is_sdm658() \
+ of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm658")
+#define early_machine_is_sda658() \
+ of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sda658")
#define early_machine_is_sdm630() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm630")
#else
@@ -138,6 +142,8 @@
#define early_machine_is_msmhamster() 0
#define early_machine_is_sdm660() 0
#define early_machine_is_sda660() 0
+#define early_machine_is_sdm658() 0
+#define early_machine_is_sda658() 0
#define early_machine_is_sdm630() 0
#endif