Merge "ARM: dts: msm: Add SPI display support for QM215 SPI"
diff --git a/arch/arm64/boot/dts/qcom/qm215-qrd-spi-overlay.dts b/arch/arm64/boot/dts/qcom/qm215-qrd-spi-overlay.dts
new file mode 100644
index 0000000..fa374f55
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qm215-qrd-spi-overlay.dts
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2020, 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.
+ */
+
+/ {
+	model = "QRD SPI";
+	qcom,board-id = <0x01000b 5>;
+};
+
+&mdss_mdp {
+	status = "disabled";
+	/delete-node/ qcom,mdss_fb_primary;
+};
+
+&mdss_dsi {
+	status = "disabled";
+};
+
+&mdss_dsi0 {
+	status = "disabled";
+};
+
+&soc {
+	qcom,mdss_wb_panel {
+	status = "disabled";
+	};
+};
+
+&mdss_dsi0_pll {
+	status = "disabled";
+};
+
+&mdss_dsi1_pll {
+	status = "disabled";
+};
+
+&mdss_mdp {
+	qcom,mdss-pref-prim-intf = "spi";
+};
+
+&soc {
+	mdss_spi_panel: qcom,mdss_spi_panel {
+		compatible = "qcom,mdss-spi-panel";
+		label = "mdss spi panel";
+		mdss_fb0: qcom,mdss_fb_primary {
+			cell-index = <0>;
+			compatible = "qcom,mdss-fb";
+		};
+	};
+};
+
+#include "spi-panel-st7789v2-320p-cmd.dtsi"
+
+&soc {
+	mdss_spi: qcom,mdss_spi {
+		compatible = "qcom,mdss-spi-display";
+		label = "mdss spi display";
+		qcom,spi-pref-prim-pan = <&spi_st7789v2_320p_cmd>;
+		qcom,mdss-spi = <&mdss_spi_panel>;
+		qcom,mdss-fb-map = <&mdss_fb0>;
+	};
+
+	spi@78b7000 {  /* BLSP1 QUP3 */
+		status = "ok";
+		qcom,mdss_spi_client {
+			reg = <0>;
+			compatible = "qcom,mdss-spi-client";
+			label = "MDSS SPI QUP3 CLIENT";
+			spi-max-frequency = <50000000>;
+		};
+	};
+
+	i2c@78b7000 {  /* BLSP1 QUP3 */
+		status = "disabled";
+	};
+};
+
+&spi_st7789v2_320p_cmd {
+	qcom,mdss-spi-bl-pmic-control-type = "bl_ctrl_pwm";
+	qcom,mdss-spi-bl-pmic-pwm-frequency = <100>;
+	qcom,mdss-spi-bl-pmic-bank-select = <0>;
+	qcom,mdss-spi-pwm-gpio = <&pm8916_mpps 4 0>;
+	qcom,cont-splash-enabled;
+};
+
+&mdss_te_active {
+	mux {
+		pins = "gpio24";
+		function = "gpio";
+	};
+	config {
+		pins = "gpio24";
+		drive-strength = <2>; /* 2 mA */
+		bias-pull-down; /* pull down*/
+	};
+};
+
+&mdss_te_suspend {
+	mux {
+		pins = "gpio24";
+		function = "gpio";
+	};
+	config {
+		pins = "gpio24";
+		drive-strength = <2>; /* 2 mA */
+		bias-pull-down; /* pull down*/
+	};
+};
+
+&pmx_mdss {
+	mdss_spi_panel_active: mdss_spi_panel_active {
+		mux {
+			pins = "gpio64", "gpio60";
+			function = "gpio";
+		};
+		config {
+			pins = "gpio64", "gpio60";
+			drive-strength = <8>; /* 8 mA */
+			bias-disable = <0>; /* no pull */
+			output-high;
+		};
+	};
+
+	mdss_spi_panel_suspend: mdss_spi_panel_suspend {
+		mux {
+			pins = "gpio64", "gpio60";
+			function = "gpio";
+		};
+		config {
+			pins = "gpio64", "gpio60";
+			drive-strength = <2>; /* 2 mA */
+			bias-pull-down; /* pull down */
+		};
+	};
+};
+
+&mdss_spi {
+	pinctrl-names = "mdss_default", "mdss_sleep";
+	pinctrl-0 = <&mdss_te_active &mdss_spi_panel_active>;
+	pinctrl-1 = <&mdss_te_suspend &mdss_spi_panel_suspend>;
+
+	qcom,platform-te-gpio = <&tlmm 24 0>;
+	qcom,platform-reset-gpio = <&tlmm 60 0>;
+	qcom,platform-spi-dc-gpio = <&tlmm 64 0>;
+
+	vddio-supply = <&pm8916_l6>;
+
+	qcom,panel-supply-entries {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		qcom,panel-supply-entry@0 {
+			reg = <1>;
+			qcom,supply-name = "vddio";
+			qcom,supply-min-voltage = <1744000>;
+			qcom,supply-max-voltage = <1904000>;
+			qcom,supply-enable-load = <100000>;
+			qcom,supply-disable-load = <100>;
+		};
+		/delete-node/ qcom,panel-supply-entry@1;
+		/delete-node/ qcom,panel-supply-entry@2;
+		/delete-node/ qcom,panel-supply-entry@3;
+	};
+};