dts: msm8916: import DT from Linux

Import the msm8916 devicetree from Linux and adjust the dragonboard410c
devicetree to use it.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
diff --git a/arch/arm/dts/msm8916-pins.dtsi b/arch/arm/dts/msm8916-pins.dtsi
new file mode 100644
index 0000000..33dfcf3
--- /dev/null
+++ b/arch/arm/dts/msm8916-pins.dtsi
@@ -0,0 +1,582 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
+ */
+
+&msmgpio {
+
+	blsp1_uart1_default: blsp1-uart1-default-state {
+		/* TX, RX, CTS_N, RTS_N */
+		pins = "gpio0", "gpio1", "gpio2", "gpio3";
+		function = "blsp_uart1";
+
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	blsp1_uart1_sleep: blsp1-uart1-sleep-state {
+		pins = "gpio0", "gpio1", "gpio2", "gpio3";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	blsp1_uart2_default: blsp1-uart2-default-state {
+		pins = "gpio4", "gpio5";
+		function = "blsp_uart2";
+
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	blsp1_uart2_sleep: blsp1-uart2-sleep-state {
+		pins = "gpio4", "gpio5";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi1_default: spi1-default-state {
+		spi-pins {
+			pins = "gpio0", "gpio1", "gpio3";
+			function = "blsp_spi1";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio2";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi1_sleep: spi1-sleep-state {
+		pins = "gpio0", "gpio1", "gpio2", "gpio3";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi2_default: spi2-default-state {
+		spi-pins {
+			pins = "gpio4", "gpio5", "gpio7";
+			function = "blsp_spi2";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio6";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi2_sleep: spi2-sleep-state {
+		pins = "gpio4", "gpio5", "gpio6", "gpio7";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi3_default: spi3-default-state {
+		spi-pins {
+			pins = "gpio8", "gpio9", "gpio11";
+			function = "blsp_spi3";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio10";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi3_sleep: spi3-sleep-state {
+		pins = "gpio8", "gpio9", "gpio10", "gpio11";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi4_default: spi4-default-state {
+		spi-pins {
+			pins = "gpio12", "gpio13", "gpio15";
+			function = "blsp_spi4";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio14";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi4_sleep: spi4-sleep-state {
+		pins = "gpio12", "gpio13", "gpio14", "gpio15";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi5_default: spi5-default-state {
+		spi-pins {
+			pins = "gpio16", "gpio17", "gpio19";
+			function = "blsp_spi5";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio18";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi5_sleep: spi5-sleep-state {
+		pins = "gpio16", "gpio17", "gpio18", "gpio19";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	spi6_default: spi6-default-state {
+		spi-pins {
+			pins = "gpio20", "gpio21", "gpio23";
+			function = "blsp_spi6";
+
+			drive-strength = <12>;
+			bias-disable;
+		};
+		cs-pins {
+			pins = "gpio22";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	spi6_sleep: spi6-sleep-state {
+		pins = "gpio20", "gpio21", "gpio22", "gpio23";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	i2c1_default: i2c1-default-state {
+		pins = "gpio2", "gpio3";
+		function = "blsp_i2c1";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c1_sleep: i2c1-sleep-state {
+		pins = "gpio2", "gpio3";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c2_default: i2c2-default-state {
+		pins = "gpio6", "gpio7";
+		function = "blsp_i2c2";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c2_sleep: i2c2-sleep-state {
+		pins = "gpio6", "gpio7";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c3_default: i2c3-default-state {
+		pins = "gpio10", "gpio11";
+		function = "blsp_i2c3";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c3_sleep: i2c3-sleep-state {
+		pins = "gpio10", "gpio11";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c4_default: i2c4-default-state {
+		pins = "gpio14", "gpio15";
+		function = "blsp_i2c4";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c4_sleep: i2c4-sleep-state {
+		pins = "gpio14", "gpio15";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c5_default: i2c5-default-state {
+		pins = "gpio18", "gpio19";
+		function = "blsp_i2c5";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c5_sleep: i2c5-sleep-state {
+		pins = "gpio18", "gpio19";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c6_default: i2c6-default-state {
+		pins = "gpio22", "gpio23";
+		function = "blsp_i2c6";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	i2c6_sleep: i2c6-sleep-state {
+		pins = "gpio22", "gpio23";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	pmx-sdc1-clk-state {
+		sdc1_clk_on: clk-on-pins {
+			pins = "sdc1_clk";
+
+			bias-disable;
+			drive-strength = <16>;
+		};
+		sdc1_clk_off: clk-off-pins {
+			pins = "sdc1_clk";
+
+			bias-disable;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc1-cmd-state {
+		sdc1_cmd_on: cmd-on-pins {
+			pins = "sdc1_cmd";
+
+			bias-pull-up;
+			drive-strength = <10>;
+		};
+		sdc1_cmd_off: cmd-off-pins {
+			pins = "sdc1_cmd";
+
+			bias-pull-up;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc1-data-state {
+		sdc1_data_on: data-on-pins {
+			pins = "sdc1_data";
+
+			bias-pull-up;
+			drive-strength = <10>;
+		};
+		sdc1_data_off: data-off-pins {
+			pins = "sdc1_data";
+
+			bias-pull-up;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc2-clk-state {
+		sdc2_clk_on: clk-on-pins {
+			pins = "sdc2_clk";
+
+			bias-disable;
+			drive-strength = <16>;
+		};
+		sdc2_clk_off: clk-off-pins {
+			pins = "sdc2_clk";
+
+			bias-disable;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc2-cmd-state {
+		sdc2_cmd_on: cmd-on-pins {
+			pins = "sdc2_cmd";
+
+			bias-pull-up;
+			drive-strength = <10>;
+		};
+		sdc2_cmd_off: cmd-off-pins {
+			pins = "sdc2_cmd";
+
+			bias-pull-up;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc2-data-state {
+		sdc2_data_on: data-on-pins {
+			pins = "sdc2_data";
+
+			bias-pull-up;
+			drive-strength = <10>;
+		};
+		sdc2_data_off: data-off-pins {
+			pins = "sdc2_data";
+
+			bias-pull-up;
+			drive-strength = <2>;
+		};
+	};
+
+	pmx-sdc2-cd-pin-state {
+		sdc2_cd_on: cd-on-pins {
+			pins = "gpio38";
+			function = "gpio";
+
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+		sdc2_cd_off: cd-off-pins {
+			pins = "gpio38";
+			function = "gpio";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	cdc-pdm-lines-state {
+		cdc_pdm_lines_act: pdm-lines-on-pins {
+			pins = "gpio63", "gpio64", "gpio65", "gpio66",
+			       "gpio67", "gpio68";
+			function = "cdc_pdm0";
+
+			drive-strength = <8>;
+			bias-disable;
+		};
+		cdc_pdm_lines_sus: pdm-lines-off-pins {
+			pins = "gpio63", "gpio64", "gpio65", "gpio66",
+			       "gpio67", "gpio68";
+			function = "cdc_pdm0";
+
+			drive-strength = <2>;
+			bias-pull-down;
+		};
+	};
+
+	ext-pri-tlmm-lines-state {
+		ext_pri_tlmm_lines_act: ext-pa-on-pins {
+			pins = "gpio113", "gpio114", "gpio115", "gpio116";
+			function = "pri_mi2s";
+
+			drive-strength = <8>;
+			bias-disable;
+		};
+		ext_pri_tlmm_lines_sus: ext-pa-off-pins {
+			pins = "gpio113", "gpio114", "gpio115", "gpio116";
+			function = "pri_mi2s";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	ext-pri-ws-line-state {
+		ext_pri_ws_act: ext-pa-on-pins {
+			pins = "gpio110";
+			function = "pri_mi2s_ws";
+
+			drive-strength = <8>;
+			bias-disable;
+		};
+		ext_pri_ws_sus: ext-pa-off-pins {
+			pins = "gpio110";
+			function = "pri_mi2s_ws";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	ext-mclk-tlmm-lines-state {
+		ext_mclk_tlmm_lines_act: mclk-lines-on-pins {
+			pins = "gpio116";
+			function = "pri_mi2s";
+
+			drive-strength = <8>;
+			bias-disable;
+		};
+		ext_mclk_tlmm_lines_sus: mclk-lines-off-pins {
+			pins = "gpio116";
+			function = "pri_mi2s";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	/* secondary Mi2S */
+	ext-sec-tlmm-lines-state {
+		ext_sec_tlmm_lines_act: tlmm-lines-on-pins {
+			pins = "gpio112", "gpio117", "gpio118", "gpio119";
+			function = "sec_mi2s";
+
+			drive-strength = <8>;
+			bias-disable;
+		};
+		ext_sec_tlmm_lines_sus: tlmm-lines-off-pins {
+			pins = "gpio112", "gpio117", "gpio118", "gpio119";
+			function = "sec_mi2s";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	cdc_dmic_lines_act: cdc-dmic-lines-on-state {
+		clk-pins {
+			pins = "gpio0";
+			function = "dmic0_clk";
+
+			drive-strength = <8>;
+		};
+		data-pins {
+			pins = "gpio1";
+			function = "dmic0_data";
+
+			drive-strength = <8>;
+		};
+	};
+	cdc_dmic_lines_sus: cdc-dmic-lines-off-state {
+		clk-pins {
+			pins = "gpio0";
+			function = "dmic0_clk";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+		data-pins {
+			pins = "gpio1";
+			function = "dmic0_data";
+
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	wcnss_pin_a: wcnss-active-state {
+		pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
+		function = "wcss_wlan";
+
+		drive-strength = <6>;
+		bias-pull-up;
+	};
+
+	cci0_default: cci0-default-state {
+		pins = "gpio29", "gpio30";
+		function = "cci_i2c";
+
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	camera_front_default: camera-front-default-state {
+		pwdn-pins {
+			pins = "gpio33";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+		rst-pins {
+			pins = "gpio28";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+		mclk1-pins {
+			pins = "gpio27";
+			function = "cam_mclk1";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+	};
+
+	camera_rear_default: camera-rear-default-state {
+		pwdn-pins {
+			pins = "gpio34";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+		rst-pins {
+			pins = "gpio35";
+			function = "gpio";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+		mclk0-pins {
+			pins = "gpio26";
+			function = "cam_mclk0";
+
+			drive-strength = <16>;
+			bias-disable;
+		};
+	};
+};