[Feature][T106_eSDK]update from T106-V2.01.01.02P56U09.AP.17.09_CAP.17.09.01 to T106-M42-PLXXXX-P56U11.AP.19.00_CAP.19.00.01 -- code

Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: I5eb7f586f78a987785b0f9885f1300c42bfd6819
diff --git a/upstream/linux-5.10/drivers/tty/serial/zx29_uart.c b/upstream/linux-5.10/drivers/tty/serial/zx29_uart.c
index b29437a..7029976 100755
--- a/upstream/linux-5.10/drivers/tty/serial/zx29_uart.c
+++ b/upstream/linux-5.10/drivers/tty/serial/zx29_uart.c
@@ -591,6 +591,48 @@
 		);
 }
 DEVICE_ATTR(statics, S_IRUGO, statics_show, NULL);
+
+static unsigned int uart_io_seletc = 0;
+ 
+ 
+static ssize_t uart_io_select_show(struct device *_dev,
+struct device_attribute *attr, char *buf)
+{
+struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+//struct zx29_uart_platdata *pdata = pdev->dev.platform_data;
+ 
+return sprintf(buf, "%d\n",uart_io_seletc );
+ 
+}
+ 
+static ssize_t uart_io_select_store(struct device *_dev,
+struct device_attribute *attr,
+const char *buf, size_t count)
+{
+    uint32_t  flag = 0;
+struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+flag = simple_strtoul(buf, NULL, 16);
+ 
+if(flag == 1){
+	printk("uart io is 1\n");
+pinctrl_pm_select_default_state(_dev);
+}else if(flag == 0){
+pinctrl_pm_select_sleep_state(_dev);
+}
+else{
+printk("uart io select flag invaild\n");
+}
+ 
+uart_io_seletc = flag;
+ 
+ 
+   
+return count;
+}
+ 
+DEVICE_ATTR(uart_io_select, S_IRUGO | S_IWUSR, uart_io_select_show,
+    uart_io_select_store);
+
 #define VEHICLE_USE_ONE_UART_LOG 1
 #if VEHICLE_USE_ONE_UART_LOG
 #define ICP_CORE_ID_PS CORE_PS0
@@ -4412,6 +4454,9 @@
 		error = device_create_file(&pdev->dev, &dev_attr_app_ctrl);
 		
 	}
+	if(pdev->id == 2){
+		error = device_create_file(&pdev->dev, &dev_attr_uart_io_select); 
+		}
 		error = device_create_file(&pdev->dev, &dev_attr_statics);
 	device_init_wakeup(&pdev->dev, true);
 /*