/*
 * Copyright (c) 2015-2018, 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.
 */

&soc {
	tlmm: pinctrl@1000000 {
		compatible = "qcom,msm8953-pinctrl";
		reg = <0x1000000 0x300000>;
		reg-names = "pinctrl_regs";
		interrupts = <0 208 0>;
		interrupts-extended = <&wakegic GIC_SPI 208 IRQ_TYPE_NONE>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		interrupt-parent = <&wakegpio>;
		#interrupt-cells = <2>;

		pmx-uartconsole {
			uart_console_active: uart_console_active {
				mux {
					pins = "gpio4", "gpio5";
					function = "blsp_uart2";
				};

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

			uart_console_sleep: uart_console_sleep {
				mux {
					pins = "gpio4", "gpio5";
					function = "blsp_uart2";
				};

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

			uart1_console_active: uart1_console_active {
				mux {
					pins = "gpio20", "gpio21";
					function = "blsp_uart6";
				};

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

			uart1_console_sleep: uart1_console_sleep {
				mux {
					pins = "gpio20", "gpio21";
					function = "blsp_uart6";
				};

				config {
					pins = "gpio20", "gpio21";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};
		cci {
			cci0_active: cci0_active {
				/* cci0 active state */
				mux {
					/* CLK, DATA */
					pins = "gpio29", "gpio30";
					function = "cci_i2c";
				};

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

			cci0_suspend: cci0_suspend {
				/* cci0 suspended state */
				mux {
					/* CLK, DATA */
					pins = "gpio29", "gpio30";
					function = "cci_i2c";
				};

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

			cci1_active: cci1_active {
				/* cci1 active state */
				mux {
					/* CLK, DATA */
					pins = "gpio31", "gpio32";
					function = "cci_i2c";
				};

				config {
					pins = "gpio31", "gpio32";
				/*<2019/05/10-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][]Pull up the strength level when camera cannot detected sometimes */
					drive-strength = <4>; /* 2 MA */
				/*>2019/05/10-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][] */
					bias-disable; /* No PULL */
				};
			};

			cci1_suspend: cci1_suspend {
				/* cci1 suspended state */
				mux {
					/* CLK, DATA */
					pins = "gpio31", "gpio32";
					function = "cci_i2c";
				};

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

		/*sensors */
		cam_sensor_mclk0_default: cam_sensor_mclk0_default {
			/* MCLK0 */
			mux {
				/* CLK, DATA */
				pins = "gpio26";
				function = "cam_mclk";
			};

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

		cam_sensor_mclk0_sleep: cam_sensor_mclk0_sleep {
			/* MCLK0 */
			mux {
				/* CLK, DATA */
				pins = "gpio26";
				function = "cam_mclk";
			};

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

		cam_sensor_rear_default: cam_sensor_rear_default {
			/* RESET, STANDBY */
			mux {
				pins = "gpio40", "gpio39";
				function = "gpio";
			};

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

		cam_sensor_rear_sleep: cam_sensor_rear_sleep {
			/* RESET, STANDBY */
			mux {
				pins = "gpio40","gpio39";
				function = "gpio";
			};

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

		cam_sensor_ir_cut_default: cam_sensor_ir_cut_default {
			/* RESET, STANDBY */
			mux {
				pins = "gpio38", "gpio39";
				function = "gpio";
			};

			config {
				pins = "gpio38","gpio39";
				bias-pull-up; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_ir_cut_sleep: cam_sensor_ir_cut_sleep {
			/* RESET, STANDBY */
			mux {
				pins = "gpio38","gpio39";
				function = "gpio";
			};

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

		cam_sensor_rear_vana: cam_sensor_rear_vdig {
			/* VDIG */
			mux {
				pins = "gpio128";
				function = "gpio";
			};

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

		cam_sensor_rear_vana_sleep: cam_sensor_rear_vdig_sleep {
			/* VDIG */
			mux {
				pins = "gpio128";
				function = "gpio";
			};

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

		cam_sensor_mclk1_default: cam_sensor_mclk1_default {
			/* MCLK1 */
			mux {
				/* CLK, DATA */
				pins = "gpio27";
				function = "cam_mclk";
			};

			config {
				pins = "gpio27";
				bias-disable; /* No PULL */
			/*<2019/05/10-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][]Pull up the MIPI CLK strength level when camera cannot detected sometimes */
				drive-strength = <8>; /* <2>; */ /* 2 MA */
			/*>2019/05/10-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][] */
			};
		};

		cam_sensor_mclk1_sleep: cam_sensor_mclk1_sleep {
			/* MCLK1 */
			mux {
				/* CLK, DATA */
				pins = "gpio27";
				function = "cam_mclk";
			};

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

		cam_sensor_front_default: cam_sensor_front_default {
			/* RESET, STANDBY */
			mux {
				pins = "gpio131","gpio132";
				function = "gpio";
			};

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

		cam_sensor_front_sleep: cam_sensor_front_sleep {
			/* RESET, STANDBY */
			mux {
				pins = "gpio131","gpio132";
				function = "gpio";
			};

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

		cam_sensor_mclk2_default: cam_sensor_mclk2_default {
			/* MCLK2 */
			mux {
				/* CLK, DATA */
				pins = "gpio28";
				function = "cam_mclk";
			};

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

		cam_sensor_mclk2_sleep: cam_sensor_mclk2_sleep {
			/* MCLK2 */
			mux {
				/* CLK, DATA */
				pins = "gpio28";
				function = "cam_mclk";
			};

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

/*<2018/10/18-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][]Modified for new front camera device driver S5K4H7YX. */
/*<2018/11/14-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][]VOI control pin.PCBA EP0 is GPIO123;EP1 and above is GPIO130 */
		cam_sensor_front1_vio_default: cam_sensor_front1_vio_default {
			/* CAM IOVDD */
			mux {
			#if 1
				pins = "gpio130";
			#else /* PCBA EP0 */
				pins = "gpio123";
			#endif
				function = "gpio";
			};

			config {
			#if 1
				pins = "gpio130";
			#else /* PCBA EP0 */
				pins = "gpio123";
			#endif
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_front1_vio_sleep: cam_sensor_front1_vio_sleep {
			/* CAM IOVDD */
			mux {
			#if 1
				pins = "gpio130";
			#else /* PCBA EP0 */
				pins = "gpio123";
			#endif
				function = "gpio";
			};

			config {
			#if 1
				pins = "gpio130";
			#else /* PCBA EP0 */
				pins = "gpio123";
			#endif
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};
/*>2018/11/14-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][] */

		cam_sensor_front1_vdig_default: cam_sensor_front1_vdig_default {
			/* CAM DVDD */
			mux {
				pins = "gpio46";
				function = "gpio";
			};

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

		cam_sensor_front1_vdig_sleep: cam_sensor_front1_vdig_sleep {
			/* CAM DVDD */
			mux {
				pins = "gpio46";
				function = "gpio";
			};

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

		cam_sensor_front1_default: cam_sensor_front1_default {
			/* RESET, STANDBY */
			mux {
			#if 1
				pins = "gpio129";   /* Only Reset,Non-standby GPIO */
			#else /* Qualcomm default */
				pins = "gpio129", "gpio130";
			#endif
				function = "gpio";
			};

			config {
			#if 1
				pins = "gpio129";   /* Only Reset,Non-standby GPIO */
			#else /* Qualcomm default */
				pins = "gpio129", "gpio130";
			#endif
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};

		cam_sensor_front1_sleep: cam_sensor_front1_sleep {
			/* RESET, STANDBY */
			mux {
			#if 1
				pins = "gpio129";   /* Only Reset,Non-standby GPIO */
			#else /* Qualcomm default */
				pins = "gpio129", "gpio130";
			#endif
				function = "gpio";
			};

			config {
			#if 1
				pins = "gpio129";   /* Only Reset,Non-standby GPIO */
			#else /* Qualcomm default */
				pins = "gpio129", "gpio130";
			#endif
				bias-disable; /* No PULL */
				drive-strength = <2>; /* 2 MA */
			};
		};
/*>2018/10/18-Yuting Shih.[FAIRPHONE][MISC][COMMON][CAMERA][][]. */

		pmx_adv7533_int: pmx_adv7533_int {
			adv7533_int_active: adv7533_int_active {
				mux {
					pins = "gpio90";
					function = "gpio";
				};

				config {
					pins = "gpio90";
					drive-strength = <16>;
					bias-disable;
				};
			};

			adv7533_int_suspend: adv7533_int_suspend {
				mux {
					pins = "gpio90";
					function = "gpio";
				};

				config {
					pins = "gpio90";
					drive-strength = <16>;
					bias-disable;
				};
			};

		};

//<2020/04/23-louisliu, Fingerprint. Driver porting.
		fps {
			fps_int_active: fps_int_active {
				mux {
					pins = "gpio48";
					function = "gpio";
				};

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

			fps_int_suspend: fps_int_suspend {
				mux {
					pins = "gpio48";
					function = "gpio";
				};

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

			fps_reset_active: fps_reset_active {
				mux {
					pins = "gpio140";
					function = "gpio";
				};

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

			fps_reset_suspend1: fps_reset_suspend1 {
				mux {
					pins = "gpio140";
					function = "gpio";
				};

				config {
					pins = "gpio140";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};
//>2020/04/23-louisliu

		pmx_mdss: pmx_mdss {

			/*[Arima_8901][Jialong] lcm driver porting begin*/
			mdss_dsi_active: mdss_dsi_active {
				mux {
					pins = "gpio61", "gpio96";
					function = "gpio";
				};

				config {
					pins = "gpio61", "gpio96";
					drive-strength = <8>; /* 8 mA */
					bias-disable = <0>; /* no pull */
					output-high;
				};
			};

			mdss_dsi_suspend: mdss_dsi_suspend {
				mux {
					pins = "gpio61", "gpio96";
					function = "gpio";
				};

				config {
					pins = "gpio61", "gpio96";
					drive-strength = <2>; /* 2 mA */
					bias-pull-down; /* pull down */
					//output-high;
				};
			};
			/*[Arima_8901][Jialong] lcm driver porting end*/

			mdss_dsi_gpio: mdss_dsi_gpio {
				mux {
					pins = "gpio141";
					function = "gpio";
				};

				config {
					pins = "gpio141";
					drive-strength = <8>;
					bias-pull-down;
					output-low;
				};
			};
		};

		pmx_mdss_te {
			mdss_te_active: mdss_te_active {
				mux {
					pins = "gpio24";
					function = "mdp_vsync";
				};
				config {
					pins = "gpio24";
					drive-strength = <2>; /* 8 mA */
					bias-pull-down; /* pull down*/
				};
			};

			mdss_te_suspend: mdss_te_suspend {
				mux {
					pins = "gpio24";
					function = "mdp_vsync";
				};
				config {
					pins = "gpio24";
					drive-strength = <2>; /* 2 mA */
					bias-pull-down; /* pull down */
				};
			};
		};

		ext_amp_ctrl {
			label = "ext_amp_ctrl";
			ext_amp_ctrl_active: ext_amp_ctrl_active {
				mux {
					pins = "gpio68";
					function = "gpio";
				};
				config {
					pins = "gpio68";
					drive-strength = <8>;   /* 8 MA */
					bias-pull-up;           /*  PULL UP */
					output-high;
				};
			};

			ext_amp_ctrl_sleep: ext_amp_ctrl_sleep {
				mux {
					pins = "gpio68";
					function = "gpio";
				};
				configs {
					pins = "gpio68";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;         /* PULL DOWN */
				};
			};
		};

		cdc_dmic0_clk_act: cdc_dmic0_clk_act_default {
				mux {
						pins = "gpio89";
						function = "dmic0_clk";
				};

				config {
						pins = "gpio89";
						drive-strength = <8>;
				};
			};

		cdc_dmic0_clk_sus: cdc_dmic0_clk_sus_sleep {
				mux {
						pins = "gpio89";
						function = "gpio";
				};

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

		cdc_dmic0_data_act: cdc_dmic0_data_act_default {
				mux {
						pins = "gpio90";
						function = "dmic0_data";
				};

				config {
						pins = "gpio90";
						drive-strength = <8>;
				};
		};

		cdc_dmic0_data_sus: cdc_dmic0_data_sus_sleep {
				mux {
						pins = "gpio90";
						function = "gpio";
				};

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

		sec-tlmm-lines {
			sec_tlmm_lines_act: sec_tlmm_lines_act {
				mux {
					pins = "gpio135", "gpio136",
					       "gpio137", "gpio138";
					function = "sec_mi2s";
				};

				config {
					pins = "gpio135", "gpio136",
					       "gpio137", "gpio138";
					drive-strength = <8>;
				};
			};

			sec_tlmm_lines_sus: sec_tlmm_lines_sus {
				mux {
					pins = "gpio135", "gpio136",
					       "gpio137", "gpio138";
					function = "sec_mi2s";
				};

				config {
					pins = "gpio135", "gpio136",
					       "gpio137", "gpio138";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		hsuart_active: default {
			mux {
				pins = "gpio12", "gpio13", "gpio14", "gpio15";
				function = "blsp_uart4";
			};

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

		hsuart_sleep: sleep {
			mux {
				pins = "gpio12", "gpio13", "gpio14", "gpio15";
				function = "gpio";
			};

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

		blsp2_uart0_active: blsp2_uart0_active {
			mux {
				pins = "gpio16", "gpio17", "gpio18", "gpio19";
				function = "blsp_uart5";
			};

			config {
				pins = "gpio16", "gpio17", "gpio18", "gpio19";
				drive-strength = <16>;
				bias-disable;
			};
		};

		blsp2_uart0_sleep: blsp2_uart0_sleep {
			mux {
				pins = "gpio16", "gpio17", "gpio18", "gpio19";
				function = "gpio";
			};

			config {
				pins = "gpio16", "gpio17", "gpio18", "gpio19";
				drive-strength = <2>;
				bias-disable;
			};
		};

		blsp2_uart1_active: blsp2_uart1_active {
			mux {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				function = "blsp_uart6";
			};

			config {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				drive-strength = <16>;
				bias-disable;
			};
		};

		blsp2_uart1_sleep: blsp2_uart1_sleep {
			mux {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				function = "gpio";
			};

			config {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				drive-strength = <2>;
				bias-disable;
			};
		};

		/* SDC pin type */
		sdc1_clk_on: sdc1_clk_on {
			config {
				pins = "sdc1_clk";
				bias-disable;		/* NO pull */
				drive-strength = <16>;	/* 16 MA */
			};
		};

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

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

		sdc1_cmd_off: sdc1_cmd_off {
			config {
				pins = "sdc1_cmd";
				num-grp-pins = <1>;
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};
		};

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

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

		sdc1_rclk_on: sdc1_rclk_on {
			config {
				pins = "sdc1_rclk";
				bias-pull-down; /* pull down */
			};
		};

		sdc1_rclk_off: sdc1_rclk_off {
			config {
				pins = "sdc1_rclk";
				bias-pull-down; /* pull down */
			};
		};

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

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

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

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

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

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

		sdc2_cd_on: cd_on {
			mux {
				pins = "gpio133";
				function = "gpio";
			};

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

		sdc2_cd_off: cd_off {
			mux {
				pins = "gpio133";
				function = "gpio";
			};

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

		i2c_1 {
			i2c_1_active: i2c_1_active {
				mux {
					pins = "gpio2", "gpio3";
					function = "blsp_i2c1";
				};
				config {
					pins = "gpio2", "gpio3";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			i2c_1_sleep: i2c_1_sleep {
				mux {
					pins = "gpio2", "gpio3";
					function = "blsp_i2c1";
				};
				config {
					pins = "gpio2", "gpio3";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		i2c_2 {
			i2c_2_active: i2c_2_active {
				/* active state */
				mux {
					pins = "gpio6", "gpio7";
					function = "blsp_i2c2";
				};

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

			i2c_2_sleep: i2c_2_sleep {
				/* suspended state */
				mux {
					pins = "gpio6", "gpio7";
					function = "gpio";
				};

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

		i2c_3 {
			i2c_3_active: i2c_3_active {
				/* active state */
				mux {
					pins = "gpio10", "gpio11";
					function = "blsp_i2c3";
				};

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

			i2c_3_sleep: i2c_3_sleep {
				/* suspended state */
				mux {
					pins = "gpio10", "gpio11";
					function = "gpio";
				};

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

		i2c_5 {
			i2c_5_active: i2c_5_active {
				/* active state */
				mux {
					pins = "gpio18", "gpio19";
					function = "blsp_i2c5";
				};

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

			i2c_5_sleep: i2c_5_sleep {
				/* suspended state */
				mux {
					pins = "gpio18", "gpio19";
					function = "gpio";
				};

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

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

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

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

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

/*<<2019-01-29-Michael Lin-[FairPhone][NFC]Reassign ESE Enable gpio in case of collision*/
			nfc_disable_active: nfc_disable_active {
				/* active state */
				mux {
					/* 16: NFC ENABLE 62: FW DNLD */
					/* 134: ESE Enable */
					pins = "gpio16", "gpio62", "gpio134";
					function = "gpio";
				};

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

			nfc_disable_suspend: nfc_disable_suspend {
				/* sleep state */
				mux {
					/* 16: NFC ENABLE 62: FW DNLD */
					/* 134: ESE Enable */
					pins = "gpio16", "gpio62", "gpio134";
					function = "gpio";
				};

				config {
					pins = "gpio16", "gpio62", "gpio134";
					drive-strength = <2>; /* 2 MA */
					bias-disable;
				};
			};
		};
/*>>2019-01-29-Michael Lin-[FairPhone][NFC]Reassign ESE Enable gpio in case of collision*/

		wcnss_pmux_5wire {
			/* Active configuration of bus pins */
			wcnss_default: wcnss_default {
				wcss_wlan2 {
					pins = "gpio76";
					function = "wcss_wlan2";
				};
				wcss_wlan1 {
					pins = "gpio77";
					function = "wcss_wlan1";
				};
				wcss_wlan0 {
					pins = "gpio78";
					function = "wcss_wlan0";
				};
				wcss_wlan {
					pins = "gpio79", "gpio80";
					function = "wcss_wlan";
				};

				config {
					pins = "gpio76", "gpio77",
						"gpio78", "gpio79",
						"gpio80";
					drive-strength = <6>; /* 6 MA */
					bias-pull-up; /* PULL UP */
				};
			};

			wcnss_sleep: wcnss_sleep {
				wcss_wlan2 {
					pins = "gpio76";
					function = "wcss_wlan2";
				};
				wcss_wlan1 {
					pins = "gpio77";
					function = "wcss_wlan1";
				};
				wcss_wlan0 {
					pins = "gpio78";
					function = "wcss_wlan0";
				};
				wcss_wlan {
					pins = "gpio79", "gpio80";
					function = "wcss_wlan";
				};

				config {
					pins = "gpio76", "gpio77",
						"gpio78", "gpio79",
						"gpio80";
					drive-strength = <2>; /* 2 MA */
					bias-pull-down; /* PULL Down */
				};
			};
		};

		wcnss_pmux_gpio: wcnss_pmux_gpio {
			wcnss_gpio_default: wcnss_gpio_default {
				/* Active configuration of bus pins */
				mux {
					/* Uses general purpose pins */
					pins = "gpio76", "gpio77",
					"gpio78", "gpio79",
					"gpio80";
					function = "gpio";
				};

				config {
					pins = "gpio76", "gpio77",
						"gpio78", "gpio79",
						"gpio80";
					drive-strength = <6>; /* 6 MA */
					bias-pull-up; /* PULL UP */
				};
			};
		};

		wcd9xxx_intr {
			wcd_intr_default: wcd_intr_default{
				mux {
					pins = "gpio73";
					function = "gpio";
				};

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

		cdc_reset_ctrl {
			cdc_reset_sleep: cdc_reset_sleep {
				mux {
					pins = "gpio67";
					function = "gpio";
				};
				config {
					pins = "gpio67";
					drive-strength = <16>;
					bias-disable;
					output-low;
				};
			};
			cdc_reset_active:cdc_reset_active {
				mux {
					pins = "gpio67";
					function = "gpio";
				};
				config {
					pins = "gpio67";
					drive-strength = <16>;
					bias-pull-down;
					output-high;
				};
			};
		};

		cdc_mclk2_pin {
			cdc_mclk2_sleep: cdc_mclk2_sleep {
				mux {
					pins = "gpio66";
					function = "pri_mi2s";
				};
				config {
					pins = "gpio66";
					drive-strength = <2>; /* 2 mA */
					bias-pull-down;       /* PULL DOWN */
				};
			};
			cdc_mclk2_active: cdc_mclk2_active {
				mux {
					pins = "gpio66";
					function = "pri_mi2s";
				};
				config {
					pins = "gpio66";
					drive-strength = <8>; /* 8 mA */
					bias-disable;         /* NO PULL */
				};
			};
		};

		cdc-pdm-2-lines {
			cdc_pdm_lines_2_act: pdm_lines_2_on {
				mux {
					pins = "gpio70", "gpio71", "gpio72";
					function = "cdc_pdm0";
				};

				config {
					pins = "gpio70", "gpio71", "gpio72";
					drive-strength = <8>;
				};
			};

			cdc_pdm_lines_2_sus: pdm_lines_2_off {
				mux {
					pins = "gpio70", "gpio71", "gpio72";
					function = "cdc_pdm0";
				};

				config {
					pins = "gpio70", "gpio71", "gpio72";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		cdc-pdm-lines {
			cdc_pdm_lines_act: pdm_lines_on {
				mux {
					pins = "gpio69", "gpio73", "gpio74";
					function = "cdc_pdm0";
				};

				config {
					pins = "gpio69", "gpio73", "gpio74";
					drive-strength = <8>;
				};
			};
			cdc_pdm_lines_sus: pdm_lines_off {
				mux {
					pins = "gpio69", "gpio73", "gpio74";
					function = "cdc_pdm0";
				};

				config {
					pins = "gpio69", "gpio73", "gpio74";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		cdc-pdm-comp-lines {
			cdc_pdm_comp_lines_act: pdm_comp_lines_on {
				mux {
					pins = "gpio67", "gpio68";
					function = "cdc_pdm0";
				};

				config {
					pins = "gpio67", "gpio68";
					drive-strength = <8>;
				};
			};

			cdc_pdm_comp_lines_sus: pdm_comp_lines_off {
				mux {
					pins = "gpio67", "gpio68";
					function = "cdc_pdm0";
				};

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

		cross-conn-det {
			cross_conn_det_act: lines_on {
				mux {
					pins = "gpio63";
					function = "gpio";
				};

				config {
					pins = "gpio63";
					drive-strength = <8>;
					output-low;
					bias-pull-down;
				};
			};

			cross_conn_det_sus: lines_off {
				mux {
					pins = "gpio63";
					function = "gpio";
				};

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

		/* WSA VI sense */
		wsa-vi {
			wsa_vi_on: wsa_vi_on {
				mux {
					pins = "gpio94", "gpio95";
					function = "wsa_io";
				};

				config {
					pins = "gpio94", "gpio95";
					drive-strength = <8>; /* 8 MA */
					bias-disable; /* NO pull */
				};
			};

			wsa_vi_off: wsa_vi_off {
				mux {
					pins = "gpio94", "gpio95";
					function = "wsa_io";
				};

				config {
					pins = "gpio94", "gpio95";
					drive-strength = <2>; /* 2 MA */
					bias-pull-down;
				};
			};
		};

		/* WSA Reset */
		wsa_reset {
			wsa_reset_on: wsa_reset_on {
				mux {
					//pins = "gpio96";
					function = "gpio";
				};

				config {
					//pins = "gpio96";
					drive-strength = <2>; /* 2 MA */
					output-high;
				};
			};

			wsa_reset_off: wsa_reset_off {
				mux {
					//pins = "gpio96";
					function = "gpio";
				};

				config {
					//pins = "gpio96";
					drive-strength = <2>; /* 2 MA */
					output-high;
				};
			};
		};

		/* WSA CLK */
		wsa_clk {
			wsa_clk_on: wsa_clk_on {
				mux {
					pins = "gpio25";
					function = "pri_mi2s_mclk_a";
				};

				config {
					pins = "gpio25";
					drive-strength = <8>; /* 8 MA */
					output-high;
				};
			};

			wsa_clk_off: wsa_clk_off {
				mux {
					pins = "gpio25";
					function = "pri_mi2s_mclk_a";
				};

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

		pri-tlmm-lines {
			pri_tlmm_lines_act: pri_tlmm_lines_act {
				mux {
					pins = "gpio91", "gpio93";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio93";
					drive-strength = <8>;
				};
			};

			pri_tlmm_lines_sus: pri_tlmm_lines_sus {
				mux {
					pins = "gpio91", "gpio93";
					function = "pri_mi2s";
				};

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

		pri-tlmm-ws-lines {
			pri_tlmm_ws_act: pri_tlmm_ws_act {
				mux {
					pins = "gpio92";
					function = "pri_mi2s_ws";
				};

				config {
					pins = "gpio92";
					drive-strength = <8>;
				};
			};

			pri_tlmm_ws_sus: pri_tlmm_ws_sus {
				mux {
					pins = "gpio92";
					function = "pri_mi2s_ws";
				};

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

/*[20200429][TracyChui]Touch driver porting start*/
//		spi3 {
//			spi3_default: spi3_default {
//				/* active state */
//				mux {
//					/* MOSI, MISO, CLK */
//					pins = "gpio8", "gpio9", "gpio11";
//					function = "blsp_spi3";
//				};

//				config {
//					pins = "gpio8", "gpio9", "gpio11";
//					drive-strength = <12>; /* 12 MA */
//					bias-disable = <0>; /* No PULL */
//				};
//			};

//			spi3_sleep: spi3_sleep {
//				/* suspended state */
//				mux {
//					/* MOSI, MISO, CLK */
//					pins = "gpio8", "gpio9", "gpio11";
//					function = "gpio";
//				};

//				config {
//					pins = "gpio8", "gpio9", "gpio11";
//					drive-strength = <2>; /* 2 MA */
//					bias-pull-down; /* PULL Down */
//				};
//			};

//			spi3_cs0_active: cs0_active {
//				/* CS */
//				mux {
//					pins = "gpio10";
//					function = "blsp_spi3";
//				};

//				config {
//					pins = "gpio10";
//					drive-strength = <2>;
//					bias-disable = <0>;
//				};
//			};

//			spi3_cs0_sleep: cs0_sleep {
//				/* CS */
//				mux {
//					pins = "gpio10";
//					function = "gpio";
//				};

//				config {
//					pins = "gpio10";
//					drive-strength = <2>;
//					bias-disable = <0>;
//				};
//			};
//		};
/*[20200429][TracyChui]Touch driver porting end*/

		spi6 {
			spi6_default: spi6_default {
				/* active state */
				mux {
					/* MOSI, MISO, CLK */
					pins = "gpio20", "gpio21", "gpio23";
					function = "blsp_spi6";
				};

				config {
					pins = "gpio20", "gpio21", "gpio23";
					drive-strength = <12>; /* 12 MA */
					bias-disable = <0>; /* No PULL */
				};
			};

			spi6_sleep: spi6_sleep {
				/* suspended state */
				mux {
					/* MOSI, MISO, CLK */
					pins = "gpio20", "gpio21", "gpio23";
					function = "gpio";
				};

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

			spi6_cs0_active: cs0_active {
				/* CS */
				mux {
					pins = "gpio22";
					function = "blsp_spi6";
				};

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

			spi6_cs0_sleep: cs0_sleep {
				/* CS */
				mux {
					pins = "gpio22";
					function = "gpio";
				};

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

		/* add pingrp for touchscreen */
		ts_int_default: ts_int_default {
			mux {
				pins = "gpio65";
				function = "gpio";
			};
			config {
				pins = "gpio65";
				drive-strength = <16>;
				/*bias-pull-up;*/
				input-enable;
				bias-disable;
			};
		};

		ts_int_output_high: ts_int_output_high {
			mux {
				pins = "gpio65";
				function = "gpio";
			};
			config {
				pins = "gpio65";
				output-high;
			};
		};

		ts_int_output_low: ts_int_output_low {
			mux {
				pins = "gpio65";
				function = "gpio";
			};
			config {
				pins = "gpio65";
				output-low;
			};
		};

		ts_int_input: ts_int_input {
			mux {
				pins = "gpio65";
				function = "gpio";
			};
			config {
				pins = "gpio65";
				input-enable;
				bias-disable;
			};
		};

		ts_rst_default: ts_rst_default {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				drive-strength = <16>;
				/*bias-pull-up;*/
				input-enable;
				bias-disable;
			};
		};

		ts_rst_output_high: ts_rst_output_high {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				output-high;
			};
		};

		ts_rst_output_low: ts_rst_output_low {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				output-low;
			};
		};

		ts_rst_input: ts_rst_input {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				input-enable;
				bias-disable;
			};
		};

		/* add pingrp for touchscreen */
		pmx_ts_int_active {
			ts_int_active: ts_int_active {
				mux {
					pins = "gpio65";
					function = "gpio";
				};

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

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

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

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

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

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

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

		pmx_ts_release {
			ts_release: ts_release {
				mux {
					pins = "gpio65", "gpio64";
					function = "gpio";
				};

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

		tlmm_gpio_key {
			gpio_key_active: gpio_key_active {
				mux {
					pins = "gpio85", "gpio86", "gpio87";
					function = "gpio";
				};

				config {
					pins = "gpio85", "gpio86", "gpio87";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			gpio_key_suspend: gpio_key_suspend {
				mux {
					pins = "gpio85", "gpio86", "gpio87";
					function = "gpio";
				};

				config {
					pins = "gpio85", "gpio86", "gpio87";
					drive-strength = <2>;
					bias-pull-up;
				};
			};
		};
		pmx_qdsd_clk {
			qdsd_clk_sdcard: clk_sdcard {
				config {
					pins = "qdsd_clk";
					bias-disable;/* NO pull */
					drive-strength = <16>; /* 16 MA */
				};
			};
			qdsd_clk_trace: clk_trace {
				config {
					pins = "qdsd_clk";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_clk_swdtrc: clk_swdtrc {
				config {
					pins = "qdsd_clk";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_clk_spmi: clk_spmi {
				config {
					pins = "qdsd_clk";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		pmx_qdsd_cmd {
			qdsd_cmd_sdcard: cmd_sdcard {
				config {
					pins = "qdsd_cmd";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_cmd_trace: cmd_trace {
				config {
					pins = "qdsd_cmd";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_cmd_swduart: cmd_uart {
				config {
					pins = "qdsd_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_cmd_swdtrc: cmd_swdtrc {
				config {
					pins = "qdsd_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_cmd_jtag: cmd_jtag {
				config {
					pins = "qdsd_cmd";
					bias-disable; /* NO pull */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_cmd_spmi: cmd_spmi {
				config {
					pins = "qdsd_cmd";
					bias-pull-down; /* pull down */
					drive-strength = <10>; /* 10 MA */
				};
			};
		};

		pmx_qdsd_data0 {
			qdsd_data0_sdcard: data0_sdcard {
				config {
					pins = "qdsd_data0";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data0_trace: data0_trace {
				config {
					pins = "qdsd_data0";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data0_swduart: data0_uart {
				config {
					pins = "qdsd_data0";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data0_swdtrc: data0_swdtrc {
				config {
					pins = "qdsd_data0";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data0_jtag: data0_jtag {
				config {
					pins = "qdsd_data0";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data0_spmi: data0_spmi {
				config {
					pins = "qdsd_data0";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		pmx_qdsd_data1 {
			qdsd_data1_sdcard: data1_sdcard {
				config {
					pins = "qdsd_data1";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data1_trace: data1_trace {
				config {
					pins = "qdsd_data1";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data1_swduart: data1_uart {
				config {
					pins = "qdsd_data1";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data1_swdtrc: data1_swdtrc {
				config {
					pins = "qdsd_data1";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data1_jtag: data1_jtag {
				config {
					pins = "qdsd_data1";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		pmx_qdsd_data2 {
			qdsd_data2_sdcard: data2_sdcard {
				config {
					pins = "qdsd_data2";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data2_trace: data2_trace {
				config {
					pins = "qdsd_data2";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data2_swduart: data2_uart {
				config {
					pins = "qdsd_data2";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data2_swdtrc: data2_swdtrc {
				config {
					pins = "qdsd_data2";
					bias-pull-down; /* pull down */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data2_jtag: data2_jtag {
				config {
					pins = "qdsd_data2";
					bias-pull-up; /* pull up */
					drive-strength = <8>; /* 8 MA */
				};
			};
		};

		pmx_qdsd_data3 {
			qdsd_data3_sdcard: data3_sdcard {
				config {
					pins = "qdsd_data3";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data3_trace: data3_trace {
				config {
					pins = "qdsd_data3";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
			qdsd_data3_swduart: data3_uart {
				config {
					pins = "qdsd_data3";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data3_swdtrc: data3_swdtrc {
				config {
					pins = "qdsd_data3";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data3_jtag: data3_jtag {
				config {
					pins = "qdsd_data3";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
			qdsd_data3_spmi: data3_spmi {
				config {
					pins = "qdsd_data3";
					bias-pull-down; /* pull down */
					drive-strength = <8>; /* 8 MA */
				};
			};
		};

		typec_ssmux_config: typec_ssmux_config {
			mux {
				pins = "gpio139";
				function = "gpio";
			};

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

		ssusb_mode_sel: ssusb_mode_sel {
			mux {
				pins = "gpio12";
				function = "gpio";
			};

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