&soc {
	tlmm: pinctrl@400000 {
		compatible = "qcom,bengal-pinctrl";
		reg = <0x400000 0xc00000>;
		interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;

		sdc1_on: sdc1_on {
			clk {
				pins = "sdc1_clk";
				bias-disable;		/* NO pull */
				drive-strength = <16>;	/* 16 MA */
			};

			cmd {
				pins = "sdc1_cmd";
				bias-pull-up;		/* pull up */
				drive-strength = <10>;	/* 10 MA */
			};

			data {
				pins = "sdc1_data";
				bias-pull-up;		/* pull up */
				drive-strength = <10>;	/* 10 MA */
			};

			rclk {
				pins = "sdc1_rclk";
				bias-pull-down; /* pull down */
			};
		};

		sdc1_off: sdc1_off {
			clk {
				pins = "sdc1_clk";
				bias-disable;		/* NO pull */
				drive-strength = <2>;	/* 2 MA */
			};

			cmd {
				pins = "sdc1_cmd";
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};

			data {
				pins = "sdc1_data";
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};

			rclk {
				pins = "sdc1_rclk";
				bias-pull-down; /* pull down */
			};
		};

		sdc2_on: sdc2_on {
			clk {
				pins = "sdc2_clk";
				bias-disable;		/* NO pull */
				drive-strength = <16>;	/* 16 MA */
			};

			cmd {
				pins = "sdc2_cmd";
				bias-pull-up;		/* pull up */
				drive-strength = <10>;	/* 10 MA */
			};

			data {
				pins = "sdc2_data";
				bias-pull-up;		/* pull up */
				drive-strength = <10>;	/* 10 MA */
			};

			sd-cd {
				pins = "gpio88";
				bias-pull-up;
				drive-strength = <2>;
			};
		};

		sdc2_off: sdc2_off {
			clk {
				pins = "sdc2_clk";
				bias-disable;		/* NO pull */
				drive-strength = <2>;	/* 2 MA */
			};

			cmd {
				pins = "sdc2_cmd";
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};

			data {
				pins = "sdc2_data";
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};

			sd-cd {
				pins = "gpio88";
				bias-disable;
				drive-strength = <2>;
			};
		};

		tb_trig1_on: tb_trig1_on {
			mux {
				pins = "gpio19";
				function = "SDC1_TB";
			};

			config {
				pins = "gpio19";
				bias-pull-up; /* PULL UP */
				drive-strength = <8>; /* 8 MA */
				input-enable;
			};
		};

		/* WSA speaker reset pin1 */
		spkr_1_sd_n {
			spkr_1_sd_n_sleep: spkr_1_sd_n_sleep {
				mux {
					pins = "gpio106";
					function = "gpio";
				};

				config {
					pins = "gpio106";
					drive-strength = <2>;   /* 2 mA */
					bias-pull-down;
					input-enable;
				};
			};

			spkr_1_sd_n_active: spkr_1_sd_n_active {
				mux {
					pins = "gpio106";
					function = "gpio";
				};

				config {
					pins = "gpio106";
					drive-strength = <16>;   /* 16 mA */
					bias-disable;
					output-high;
				};
			};
		};

		wcd937x_reset_active: wcd937x_reset_active {
			mux {
				pins = "gpio92";
				function = "gpio";
			};

			config {
				pins = "gpio92";
				drive-strength = <16>;
				output-high;
			};
		};

		wcd937x_reset_sleep: wcd937x_reset_sleep {
			mux {
				pins = "gpio92";
				function = "gpio";
			};

			config {
				pins = "gpio92";
				drive-strength = <16>;
				bias-disable;
				output-low;
			};
		};

		qupv3_se4_2uart_pins: qupv3_se4_2uart_pins {
			qupv3_se4_2uart_active: qupv3_se4_2uart_active {
				mux {
					pins = "gpio12", "gpio13";
					function = "qup4";
				};

				config {
					pins = "gpio12", "gpio13";
					drive-strength = <2>;
					bias-disable;
				};
			};

			qupv3_se4_2uart_sleep: qupv3_se4_2uart_sleep {
				mux {
					pins = "gpio12", "gpio13";
					function = "gpio";
				};

				config {
					pins = "gpio12", "gpio13";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		qupv3_se3_4uart_pins: qupv3_se3_4uart_pins {
			qupv3_se3_default_cts:
				qupv3_se3_default_cts {
				mux {
					pins = "gpio8";
					function = "gpio";
				};

				config {
					pins = "gpio8";
					drive-strength = <2>;
					bias-disable;
				};
			};

			qupv3_se3_default_rts:
				qupv3_se3_default_rts {
				mux {
					pins = "gpio9";
					function = "gpio";
				};

				config {
					pins = "gpio9";
					drive-strength = <2>;
					bias-pull-down;
				};
			};

			qupv3_se3_default_tx:
				qupv3_se3_default_tx {
				mux {
					pins = "gpio10";
					function = "gpio";
				};

				config {
					pins = "gpio10";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			qupv3_se3_default_rx:
				qupv3_se3_default_rx {
				mux {
					pins = "gpio11";
					function = "gpio";
				};

				config {
					pins = "gpio11";
					drive-strength = <2>;
					bias-pull-down;
				};
			};

			qupv3_se3_cts: qupv3_se3_cts {
				mux {
					pins = "gpio8";
					function = "qup3";
				};

				config {
					pins = "gpio8";
					drive-strength = <2>;
					bias-disable;
				};
			};


			qupv3_se3_rts: qupv3_se3_rts {
				mux {
					pins = "gpio9";
					function = "qup3";
				};

				config {
					pins = "gpio9";
					drive-strength = <2>;
					bias-pull-down;
				};
			};

			qupv3_se3_tx: qupv3_se3_tx {
				mux {
					pins = "gpio10";
					function = "qup3";
				};

				config {
					pins = "gpio10";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			qupv3_se3_rx: qupv3_se3_rx {
				mux {
					pins = "gpio11";
					function = "qup3";
				};

				config {
					pins = "gpio11";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		qupv3_se0_i2c_pins: qupv3_se0_i2c_pins {
			qupv3_se0_i2c_active: qupv3_se0_i2c_active {
				mux {
					pins = "gpio0", "gpio1";
					function = "qup0";
				};

				config {
					pins = "gpio0", "gpio1";
					drive-strength = <2>;
					bias-disable;
				};
			};

			qupv3_se0_i2c_sleep: qupv3_se0_i2c_sleep {
				mux {
					pins = "gpio0", "gpio1";
					function = "gpio";
				};

				config {
					pins = "gpio0", "gpio1";
					drive-strength = <2>;
					bias-pull-up;
				};
			};
		};

		qupv3_se1_i2c_pins: qupv3_se1_i2c_pins {
			qupv3_se1_i2c_active: qupv3_se1_i2c_active {
				mux {
					pins = "gpio4", "gpio5";
					function = "qup1";
				};

				config {
					pins = "gpio4", "gpio5";
					drive-strength = <2>;
					bias-disable;
				};
			};

			qupv3_se1_i2c_sleep: qupv3_se1_i2c_sleep {
				mux {
					pins = "gpio4", "gpio5";
					function = "gpio";
				};

				config {
					pins = "gpio4", "gpio5";
					drive-strength = <2>;
					bias-pull-up;
				};
			};
		};

		nfc {
			nfc_int_active: nfc_int_active {
				/* active state */
				mux {
					/* GPIO 70 NFC Read Interrupt */
					pins = "gpio70";
					function = "gpio";
				};

				config {
					pins = "gpio70";
					drive-strength = <2>; /* 2 MA */
					bias-pull-up;
				};
			};

			nfc_int_suspend: nfc_int_suspend {
				/* sleep state */
				mux {
					/* GPIO 70 NFC Read Interrupt */
					pins = "gpio70";
					function = "gpio";
				};

				config {
					pins = "gpio70";
					drive-strength = <2>; /* 2 MA */
					bias-pull-up;
				};
			};

			nfc_enable_active: nfc_enable_active {
				/* active state */
				mux {
					/* 69: Enable 31: Firmware */
					pins = "gpio69", "gpio31";
					function = "gpio";
				};

				config {
					pins = "gpio69", "gpio31";
					drive-strength = <2>; /* 2 MA */
					bias-pull-up;
				};
			};

			nfc_enable_suspend: nfc_enable_suspend {
				/* sleep state */
				mux {
					/* 69: Enable 31: Firmware */
					pins = "gpio69", "gpio31";
					function = "gpio";
				};

				config {
					pins = "gpio69", "gpio31";
					drive-strength = <2>; /* 2 MA */
					bias-disable;
				};
			};

			nfc_clk_req_active: nfc_clk_req_active {
				/* active state */
				mux {
					/* GPIO 86: NFC CLOCK REQUEST */
					pins = "gpio86";
					function = "gpio";
				};

				config {
					pins = "gpio86";
					drive-strength = <2>; /* 2 MA */
					bias-pull-up;
				};
			};

			nfc_clk_req_suspend: nfc_clk_req_suspend {
				/* sleep state */
				mux {
					/* GPIO 86: NFC CLOCK REQUEST */
					pins = "gpio86";
					function = "gpio";
				};

				config {
					pins = "gpio86";
					drive-strength = <2>; /* 2 MA */
					bias-disable;
				};
			};
		};


		qupv3_se2_i2c_pins: qupv3_se2_i2c_pins {
			qupv3_se2_i2c_active: qupv3_se2_i2c_active {
				mux {
					pins = "gpio6", "gpio7";
					function = "qup2";
				};

				config {
					pins = "gpio6", "gpio7";
					drive-strength = <2>;
					bias-disable;
				};
			};

			qupv3_se2_i2c_sleep: qupv3_se2_i2c_sleep {
				mux {
					pins = "gpio6", "gpio7";
					function = "gpio";
				};

				config {
					pins = "gpio6", "gpio7";
					drive-strength = <2>;
					bias-pull-up;
				};
			};
		};

		qupv3_se0_spi_pins: qupv3_se0_spi_pins {
			qupv3_se0_spi_active: qupv3_se0_spi_active {
				mux {
					pins = "gpio0", "gpio1",
							"gpio2", "gpio3";
					function = "qup0";
				};

				config {
					pins = "gpio0", "gpio1",
							"gpio2", "gpio3";
					drive-strength = <6>;
					bias-disable;
				};
			};

			qupv3_se0_spi_sleep: qupv3_se0_spi_sleep {
				mux {
					pins = "gpio0", "gpio1",
							"gpio2", "gpio3";
					function = "gpio";
				};

				config {
					pins = "gpio0", "gpio1",
							"gpio2", "gpio3";
					drive-strength = <6>;
					bias-disable;
				};
			};
		};

		qupv3_se1_spi_pins: qupv3_se1_spi_pins {
			qupv3_se1_spi_active: qupv3_se1_spi_active {
				mux {
					pins = "gpio4", "gpio5",
							"gpio69", "gpio70";
					function = "qup1";
				};

				config {
					pins = "gpio4", "gpio5",
							"gpio69", "gpio70";
					drive-strength = <6>;
					bias-disable;
				};
			};

			qupv3_se1_spi_sleep: qupv3_se1_spi_sleep {
				mux {
					pins = "gpio4", "gpio5",
							"gpio69", "gpio70";
					function = "gpio";
				};

				config {
					pins = "gpio4", "gpio5",
							"gpio69", "gpio70";
					drive-strength = <6>;
					bias-disable;
				};
			};
		};

		qupv3_se5_spi_pins: qupv3_se5_spi_pins {
			qupv3_se5_spi_active: qupv3_se5_spi_active {
				mux {
					pins = "gpio14", "gpio15",
							"gpio16", "gpio17";
					function = "qup5";
				};

				config {
					pins = "gpio14", "gpio15",
							"gpio16", "gpio17";
					drive-strength = <6>;
					bias-disable;
				};
			};

			qupv3_se5_spi_sleep: qupv3_se5_spi_sleep {
				mux {
					pins = "gpio14", "gpio15",
							"gpio16", "gpio17";
					function = "gpio";
				};

				config {
					pins = "gpio14", "gpio15",
							"gpio16", "gpio17";
					drive-strength = <6>;
					bias-disable;
				};
			};
		};

		cci0_suspend: cci0_suspend {
			mux {
				/* CLK, DATA*/
				pins = "gpio23", "gpio22";
				function = "cci_i2c";
			};

			config {
				pins = "gpio23", "gpio22";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cci0_active: cci0_active {
			mux {
				/* CLK, DATA*/
				pins = "gpio23", "gpio22";
				function = "cci_i2c";
			};

			config {
				pins = "gpio23", "gpio22";
				bias-pull-up; /* PULL UP*/
				drive-strength = <2>; /* 2 MA */
			};
		};

		cci1_suspend: cci1_suspend {
			mux {
				/* CLK, DATA*/
				pins = "gpio30", "gpio29";
				function = "cci_i2c";
			};

			config {
				pins = "gpio30", "gpio29";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cci1_active: cci1_active {
			mux {
				/* CLK, DATA*/
				pins = "gpio30", "gpio29";
				function = "cci_i2c";
			};

			config {
				pins = "gpio30", "gpio29";
				bias-pull-up; /* PULL UP*/
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk0_active: cam_sensor_mclk0_active {
			/* MCLK 0*/
			mux {
				pins = "gpio20";
				function = "cam_mclk";
			};

			config {
				pins = "gpio20";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend {
			/* MCLK 0*/
			mux {
				pins = "gpio20";
				function = "cam_mclk";
			};

			config {
				pins = "gpio20";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk1_active: cam_sensor_mclk1_active {
			/* MCLK 1*/
			mux {
				pins = "gpio21";
				function = "cam_mclk";
			};

			config {
				pins = "gpio21";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend {
			/* MCLK 1*/
			mux {
				pins = "gpio21";
				function = "cam_mclk";
			};

			config {
				pins = "gpio21";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk2_active: cam_sensor_mclk2_active {
			/* MCLK 2*/
			mux {
				pins = "gpio27";
				function = "cam_mclk";
			};

			config {
				pins = "gpio27";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
			/* MCLK 2*/
			mux {
				pins = "gpio27";
				function = "cam_mclk";
			};

			config {
				pins = "gpio27";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk3_active: cam_sensor_mclk3_active {
			/* MCLK 3*/
			mux {
				pins = "gpio28";
				function = "cam_mclk";
			};

			config {
				pins = "gpio28";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend {
			/* MCLK 3*/
			mux {
				pins = "gpio28";
				function = "cam_mclk";
			};

			config {
				pins = "gpio28";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_rear0_reset_active: cam_sensor_rear0_reset_active {
			/* RESET0 */
			mux {
				pins = "gpio18";
				function = "gpio";
			};

			config {
				pins = "gpio18";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_rear0_reset_suspend: cam_sensor_rear0_reset_suspend {
			/* RESET0 */
			mux {
				pins = "gpio18";
				function = "gpio";
			};

			config {
				pins = "gpio18";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		cam_sensor_rear1_reset_active: cam_sensor_rear1_reset_active {
			/* RESET1 */
			mux {
				pins = "gpio19";
				function = "gpio";
			};

			config {
				pins = "gpio19";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_rear1_reset_suspend: cam_sensor_rear1_reset_suspend {
			/* RESET1 */
			mux {
				pins = "gpio19";
				function = "gpio";
			};

			config {
				pins = "gpio19";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		cam_sensor_rear2_reset_active: cam_sensor_rear2_reset_active {
			/* RESET2 */
			mux {
				pins = "gpio65";
				function = "gpio";
			};

			config {
				pins = "gpio65";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_rear2_reset_suspend: cam_sensor_rear2_reset_suspend {
			/* RESET2 */
			mux {
				pins = "gpio65";
				function = "gpio";
			};

			config {
				pins = "gpio65";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		cam_sensor_front0_reset_active: cam_sensor_front0_reset_active {
			/* RESET0 */
			mux {
				pins = "gpio24";
				function = "gpio";
			};

			config {
				pins = "gpio24";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_front0_reset_suspend: cam_sensor_front0_reset_suspend {
			/* RESET0 */
			mux {
				pins = "gpio24";
				function = "gpio";
			};

			config {
				pins = "gpio24";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		cam_sensor_csi_mux_oe_active: cam_sensor_csi_mux_oe_active {
			/*CSIMUX_OE*/
			mux {
				pins = "gpio66";
				function = "gpio";
			};

			config {
				pins = "gpio66";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_csi_mux_oe_suspend: cam_sensor_csi_mux_oe_suspend {
			/* CSIMUX_OE */
			mux {
				pins = "gpio66";
				function = "gpio";
			};

			config {
				pins = "gpio66";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		cam_sensor_csi_mux_sel_active: cam_sensor_csi_mux_sel_active {
			/*CSIMUX_SEL*/
			mux {
				pins = "gpio67";
				function = "gpio";
			};

			config {
				pins = "gpio67";
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_csi_mux_sel_suspend: cam_sensor_csi_mux_sel_suspend {
			/* CSIMUX_SEL */
			mux {
				pins = "gpio67";
				function = "gpio";
			};

			config {
				pins = "gpio67";
				bias-pull-down; /* PULL DOWN */
				drive-strength = <2>; /* 2 MA */
				output-low;
			};
		};

		pmx_sde: pmx_sde {
			sde_dsi_active: sde_dsi_active {
				mux {
					pins = "gpio82";
					function = "gpio";
				};

				config {
					pins = "gpio82";
					drive-strength = <8>;
					bias-disable = <0>;
				};
			};

			sde_dsi_suspend: sde_dsi_suspend {
				mux {
					pins = "gpio82";
					function = "gpio";
				};

				config {
					pins = "gpio82";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		pmx_sde_te {
			sde_te_active: sde_te_active {
				mux {
					pins = "gpio81";
					function = "mdp_vsync";
				};

				config {
					pins = "gpio81";
					drive-strength = <2>;
					bias-pull-down;
				};
			};

			sde_te_suspend: sde_te_suspend {
				mux {
					pins = "gpio81";
					function = "mdp_vsync";
				};

				config {
					pins = "gpio81";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		pmx_ts_int_active {
			ts_int_active: ts_int_active {
				mux {
					pins = "gpio80";
					function = "gpio";
				};

				config {
					pins = "gpio80";
					drive-strength = <8>;
					bias-pull-up;
				};
			};
		};

		pmx_ts_int_suspend {
			ts_int_suspend: ts_int_suspend {
				mux {
					pins = "gpio80";
					function = "gpio";
				};

				config {
					pins = "gpio80";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		pmx_ts_reset_active {
			ts_reset_active: ts_reset_active {
				mux {
					pins = "gpio71";
					function = "gpio";
				};

				config {
					pins = "gpio71";
					drive-strength = <8>;
					bias-pull-up;
				};
			};
		};

		pmx_ts_reset_suspend {
			ts_reset_suspend: ts_reset_suspend {
				mux {
					pins = "gpio71";
					function = "gpio";
				};

				config {
					pins = "gpio71";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		pmx_ts_release {
			ts_release: ts_release {
				mux {
					pins = "gpio80", "gpio71";
					function = "gpio";
				};

				config {
					pins = "gpio80", "gpio71";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		pm8008_active: pm8008_active {
			mux {
				pins = "gpio26";
				function = "gpio";
			};

			config {
				pins = "gpio26";
				bias-pull-up;
				output-high;
				drive-strength = <2>;
			};
		};

		pm8008_interrupt: pm8008_interrupt {
			mux {
				pins = "gpio25";
				function = "gpio";
			};

			config {
				pins = "gpio25";
				bias-disable;
				input-enable;
			};
		};
	};
};
