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