[Feature][ZK-9][codec]Add ZK set codec tlv320aic3x API register

Change-Id: Idedc0fcc5c6f1b03833474930ec413a3fff60f66
diff --git a/src/lynq/framework/lynq-ril-service/src/cc.cpp b/src/lynq/framework/lynq-ril-service/src/cc.cpp
index de73cd9..4225ab6 100755
--- a/src/lynq/framework/lynq-ril-service/src/cc.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/cc.cpp
@@ -1273,6 +1273,139 @@
     }
     return;
 }
+
+#ifdef ZK_RIL_CFG
+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register start*/
+void set_codec(int open)
+{
+    RLOGD("set_codec %d",open);
+    if(open==0)
+    {
+        system("echo out 201 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo out 113 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo out 29 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+    }
+    else
+    {
+        system("echo out 201 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        usleep(10);//just open need usleep 10us
+        system("echo out 113 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        usleep(10);//just open need usleep 10us
+        system("echo out 29 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo 0x00 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x01 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x02 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x03 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x04 0x04 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x05 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x06 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x07 0xa0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x08 0x20 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x09 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0b 0x32 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0f 0x10 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x10 0x20 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x11 0xf8 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x12 0xff > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x13 0x7a > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x14 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x15 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x16 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x17 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x18 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x19 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1b 0xfe > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1e 0xfe > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x20 0x18 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x21 0x18 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x22 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x23 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x24 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x25 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x26 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x27 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x28 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x29 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2b 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2c 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2e 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2f 0x85 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x30 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x31 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x32 0x85 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x33 0x9f > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x34 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x35 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x36 0x82 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x37 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x38 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x39 0x82 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3a 0x9f > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3f 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x40 0xaf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x41 0x0d > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x42 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x43 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x44 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x45 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x46 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x47 0xaf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x48 0x0d > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x49 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x50 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x51 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x52 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x53 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x54 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x55 0xbf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x56 0x9b > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x57 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x58 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x59 0xbf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5d 0x08 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5e 0xde > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5f 0x0c > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x60 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x61 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x62 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x63 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x64 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x65 0x01 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x66 0xa2 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x67 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x68 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x69 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6c 0x40 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+    }
+}
+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register end*/
+#endif
+
 #ifdef GSW_RIL_CFG
 
 /*hqing add for Geely demand on 11/07/2022, after cs call, codec should sleep*/
@@ -1410,7 +1543,7 @@
     RLOGD("callnum = %d, Call State Change then judge speech on/off!", callnum);
     callIndex = callnum;
     lock_rtp_audio_mtx(); 	
-#ifdef GSW_RIL_CFG
+#if (defined GSW_RIL_CFG) || (defined ZK_RIL_CFG)
     if( callIndex > 0 && speechStatus == SPEECH_OFF) {  //speech on
         //RLOGD("DemoAPP Call shell command (pactl set-card-profile 0 phonecall)");
         //system("pactl set-card-profile 0 phonecall");
@@ -1454,7 +1587,7 @@
         inCallstatus = CALL_OFF;
         resetMute();
         unlock_rtp_audio_mtx();
-#ifdef GSW_RIL_CFG
+#if (defined GSW_RIL_CFG) || (defined ZK_RIL_CFG)
         set_codec(0); //hqing add for Geely demand on 11/07/2022, after cs call, close codec for power Manager
 #endif
         RLOGD("[speech]: set off");
diff --git a/src/lynq/framework/lynq-ril-service/src/makefile b/src/lynq/framework/lynq-ril-service/src/makefile
index b9cb52b..a01484d 100755
--- a/src/lynq/framework/lynq-ril-service/src/makefile
+++ b/src/lynq/framework/lynq-ril-service/src/makefile
@@ -58,6 +58,10 @@
 
 endif
 
+ifeq ($(strip $(MOBILETEK_RIL_CFG)), ZK)
+    LOCAL_CFLAGS += -DZK_RIL_CFG
+endif
+
 ifeq ($(strip $(MOBILETEK_RIL_CFG)), PLATFORM)
     LOCAL_CFLAGS += -DMOBILETEK_RIL_CFG
 
diff --git a/src/lynq/lib/liblynq-media/liblynq-media/makefile b/src/lynq/lib/liblynq-media/liblynq-media/makefile
index f0116b8..967c0db 100755
--- a/src/lynq/lib/liblynq-media/liblynq-media/makefile
+++ b/src/lynq/lib/liblynq-media/liblynq-media/makefile
@@ -16,6 +16,9 @@
 
 endif
 
+ifeq ($(strip $(MOBILETEK_MEDIA_CFG)), ZK)
+    LOCAL_CFLAGS += -DZK_MEDIA_CFG
+endif
 
 $(warning ################# RITA ROOT: $(ROOT),includedir:$(includedir))
 LOCAL_PATH   = .
diff --git a/src/lynq/lib/liblynq-media/liblynq-media/media_control.c b/src/lynq/lib/liblynq-media/liblynq-media/media_control.c
index 261a4aa..d20b695 100755
--- a/src/lynq/lib/liblynq-media/liblynq-media/media_control.c
+++ b/src/lynq/lib/liblynq-media/liblynq-media/media_control.c
@@ -257,6 +257,139 @@
     return 0;

 }

 

+#ifdef ZK_MEDIA_CFG

+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register start*/

+void set_codec(int open)

+{

+    RLOGD("set_codec %d",open);

+

+    if(open==0)

+    {

+        system("echo out 201 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+        system("echo out 113 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+        system("echo out 29 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+    }

+    else

+    {

+        system("echo out 201 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+        usleep(10);//just open need usleep 10us

+        system("echo out 113 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+        usleep(10);//just open need usleep 10us

+        system("echo out 29 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");

+        system("echo 0x00 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x01 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x02 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x03 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x04 0x04 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x05 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x06 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x07 0xa0 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x08 0x20 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x09 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x0a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x0b 0x32 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x0c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x0d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x0f 0x10 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x10 0x20 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x11 0xf8 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x12 0xff > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x13 0x7a > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x14 0x78 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x15 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x16 0x78 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x17 0x78 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x18 0x78 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x19 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1b 0xfe > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1e 0xfe > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x1f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x20 0x18 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x21 0x18 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x22 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x23 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x24 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x25 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x26 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x27 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x28 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x29 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2b 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2c 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2e 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x2f 0x85 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x30 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x31 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x32 0x85 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x33 0x9f > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x34 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x35 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x36 0x82 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x37 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x38 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x39 0x82 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3a 0x9f > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x3f 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x40 0xaf > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x41 0x0d > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x42 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x43 0x80 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x44 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x45 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x46 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x47 0xaf > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x48 0x0d > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x49 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x4f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x50 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x51 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x52 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x53 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x54 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x55 0xbf > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x56 0x9b > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x57 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x58 0x02 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x59 0xbf > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5d 0x08 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5e 0xde > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x5f 0x0c > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x60 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x61 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x62 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x63 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x64 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x65 0x01 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x66 0xa2 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x67 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x68 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x69 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x6a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x6b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x6c 0x40 > /sys/kernel/debug/regmap/0-0018/registers");

+        system("echo 0x6d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");

+    }

+}

+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register end*/

+#endif

+

 #ifdef GSW_MEDIA_CFG

 

 /*hqing add for Geely demand on 11/07/2022, after playing audio, codec should sleep*/

@@ -406,7 +539,7 @@
   free(param);

   param = NULL;

   g_media_handle=NULL;

-#ifdef GSW_MEDIA_CFG

+#if (defined GSW_MEDIA_CFG) || (defined ZK_MEDIA_CFG)  

   set_codec(0); //hqing add for Geely demand on 11/07/2022, stop audio, close codec

 #endif

   return 0;

@@ -493,8 +626,7 @@
   param->handle = handle;  

   start_main_loop(param);

   RLOGD ("gst_bus_add_watch.\n");

-  

-#ifdef GSW_MEDIA_CFG

+#if (defined GSW_MEDIA_CFG) || (defined ZK_MEDIA_CFG)  

   set_codec(1);

 #endif

   gst_element_set_state (playbin, GST_STATE_PLAYING);

diff --git a/src/lynq/lib/liblynq-rtp/Makefile b/src/lynq/lib/liblynq-rtp/Makefile
index 4e3f785..8e81d11 100755
--- a/src/lynq/lib/liblynq-rtp/Makefile
+++ b/src/lynq/lib/liblynq-rtp/Makefile
@@ -16,6 +16,10 @@
 
 endif
 
+ifeq ($(strip $(MOBILETEK_RTP_CFG)), ZK)
+    LOCAL_CFLAGS += -DZK_RTP_CFG
+endif
+
 CPPFLAGS=\
   -std=c++11 \
 
@@ -64,4 +68,4 @@
 
 clean:
 	rm -f $(EXECUTABLE) rm -rf *.o
-	find ./ -name *.o | xargs rm -rf
\ No newline at end of file
+	find ./ -name *.o | xargs rm -rf
diff --git a/src/lynq/lib/liblynq-rtp/src/lynq_rtp.c b/src/lynq/lib/liblynq-rtp/src/lynq_rtp.c
index af668ec..e1eeaff 100755
--- a/src/lynq/lib/liblynq-rtp/src/lynq_rtp.c
+++ b/src/lynq/lib/liblynq-rtp/src/lynq_rtp.c
@@ -136,6 +136,138 @@
     return 0;
 }
 
+#ifdef ZK_RTP_CFG
+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register start*/
+void set_codec(int open)
+{
+    RLOGD("set_codec %d",open);
+    if(open==0)
+    {
+        system("echo out 201 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo out 113 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo out 29 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+    }
+    else
+    {
+        system("echo out 201 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        usleep(10);//just open need usleep 10us
+        system("echo out 113 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        usleep(10);//just open need usleep 10us
+        system("echo out 29 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+        system("echo 0x00 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x01 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x02 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x03 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x04 0x04 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x05 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x06 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x07 0xa0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x08 0x20 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x09 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0b 0x32 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x0f 0x10 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x10 0x20 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x11 0xf8 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x12 0xff > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x13 0x7a > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x14 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x15 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x16 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x17 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x18 0x78 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x19 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1b 0xfe > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1e 0xfe > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x1f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x20 0x18 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x21 0x18 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x22 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x23 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x24 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x25 0xc0 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x26 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x27 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x28 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x29 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2b 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2c 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2e 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x2f 0x85 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x30 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x31 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x32 0x85 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x33 0x9f > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x34 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x35 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x36 0x82 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x37 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x38 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x39 0x82 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3a 0x9f > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x3f 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x40 0xaf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x41 0x0d > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x42 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x43 0x80 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x44 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x45 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x46 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x47 0xaf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x48 0x0d > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x49 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4e 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x4f 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x50 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x51 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x52 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x53 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x54 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x55 0xbf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x56 0x9b > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x57 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x58 0x02 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x59 0xbf > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5c 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5d 0x08 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5e 0xde > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x5f 0x0c > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x60 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x61 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x62 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x63 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x64 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x65 0x01 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x66 0xa2 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x67 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x68 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x69 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6a 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6b 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6c 0x40 > /sys/kernel/debug/regmap/0-0018/registers");
+        system("echo 0x6d 0x00 > /sys/kernel/debug/regmap/0-0018/registers");
+    }
+}
+/*dongyu@2023.5.31 Add ZK set codec tlv320aic3x API register end*/
+#endif
+
 #ifdef GSW_RTP_CFG
 /*hqing add for Geely demand on 11/17/2022, after playing audio, codec should sleep*/
 void set_codec(int open)
@@ -271,8 +403,8 @@
     ret = pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);
     if (g_lynq_rtp_mode == 0)
     {
-	
-#ifdef GSW_RTP_CFG
+
+#if (defined GSW_RTP_CFG) || (defined ZK_RTP_CFG)
 		set_codec(1);
 #endif
 
@@ -380,4 +512,4 @@
         strcpy(file_address,lynq_rtp_server_info.address);
     }
     return 0;
-}
\ No newline at end of file
+}