/*
 * 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;
				};
			};

//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -s
/*
			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;
				};
			};
*/
//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -e

		};
		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;
			};
		};

//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -s
/*
		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;
			};
		};
*/
//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -e

		/* 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;
				};
			};
		};

//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -s
		i2c_6 {
			i2c_6_active: i2c_6_active {
				/* active state */
				mux {
					pins = "gpio22", "gpio23";
					function = "blsp_i2c6";
				};

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

			i2c_6_sleep: i2c_6_sleep {
				/* suspended state */
				mux {
					pins = "gpio22", "gpio23";
					function = "gpio";
				};

				config {
					pins = "gpio22", "gpio23";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};
//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -e

		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;
				};
			};
		};

//[FairPhone][Audio][jinjia]=2019.02.01=Remove the config of us-eu-gpios. -s
/*
		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;
				};
			};
		};
*/
//[FairPhone][Audio][jinjia]=2019.02.01=Remove the config of us-eu-gpios. -e

		/* 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;
				};
			};
		};

//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -s
		pri-tlmm-lines {
			pri_tlmm_lines_act: pri_tlmm_lines_act {
				mux {
					pins = "gpio91", "gpio93", "gpio88";
					function = "pri_mi2s";
				};

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

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

				config {
					pins = "gpio91", "gpio93", "gpio88";
					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;
				};
			};
		};
//[FairPhone][Audio][jinjia]=2018.11.21=smart amp porting. -e

/*[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*/

		/* 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;
			};
		};
	};
};
