Merge "[Feature][T106]version update to T106CN-ZS03.V2.01.01.02P52U02.AP.09.01_CAP.09.01"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-irq-demo/files/lynq-irq-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-irq-demo/files/lynq-irq-demo.cpp
index 537273e..0f8ddef 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-irq-demo/files/lynq-irq-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-irq-demo/files/lynq-irq-demo.cpp
@@ -5,10 +5,35 @@
#include <include/lynq-irq.h>
+#define CMD_SET_WAKE "set_wake"
+#define CMD_GET_WAKE "get_wake\n"
+#define CMD_SET_TYPE "set_type"
+#define CMD_GET_TYPE "get_type\n"
+#define CMD_UNINSTALL "uninstall\n"
+#define CMD_QUIT_TEST "quit\n"
+
+int line;
+
+
+static void printUsage(void)
+{
+ printf("Usage:\n");
+ printf("-set_wake <en>\n");
+ printf("-set_type <en>\n");
+ printf("-get_type\n");
+ printf("-get_wake\n");
+ printf("-uninstall\n");
+ printf("-quit\n");
+ printf("Please input an cmd:");
+}
+
static void irq_test_handler(void)
{
- printf("this is irq_test_handler\n");
+ int trig_type;
+ trig_type = lynq_irq_get_type(line);
+ printf("this is irq_test_handler\nthis irq is gpio %d,trig_type is %d\n", line_gpio[line], trig_type);
+ return NULL;
}
@@ -18,60 +43,45 @@
int irq;
int trig_type;
int en;
+ char cmd[16];
+ char *cmd2;
+ char *cmd1;
- if(argc < 2)
+ if(argc != 3)
{
- printf("wrong input format, please -h \n");
+ printf("wrong input format, please inout lynq-irq-demo <irq_line> <trig_type/wake_state> \n");
return -1;
}
-
- if(strcmp(argv[1],"-h") == 0)
- {
- printf(" -h --help\n");
- printf(" -t [irq][trig_type] --lynq_irq_set_type\n");
- printf(" -sw [irq][en] --lynq_irq_set_wake\n");
- printf(" -gw [irq] --lynq_irq_get_wake\n");
- return 0;
- }
-
- if(argv[2] == NULL)
- {
- printf("wrong input format, please -h \n");
- return -1;
- }
-
- irq = atoi(argv[2]);
- ret = lynq_irq_install(irq, irq_test_handler, 1);
+ irq = atoi(argv[1]);
+ trig_type = atoi(argv[2]);
+ ret = lynq_irq_install(irq, irq_test_handler, trig_type);
if(ret != 0)
{
printf("lynq_irq_install fail\n");
+ return 0;
}
else
{
printf("lynq_irq_install success\n");
+ line = irq;
}
- if(strcmp(argv[1],"-t") == 0)
+ while(1)
{
- if(argv[3] != NULL)
+ printUsage();
+ memset(cmd,0,sizeof(cmd));
+ fgets(cmd, sizeof(cmd), stdin);
+ printf("cmd:%s\n",cmd);
+ cmd1 = strtok(cmd, " ");
+ cmd2 = strtok(NULL, " ");
+ if(strcmp(cmd1, CMD_SET_WAKE) == 0)
{
- trig_type = atoi(argv[3]);
- ret = lynq_irq_set_type(irq, trig_type);
- if(ret < 0)
+ if(cmd2 == NULL)
{
- printf("lynq_irq_set_type fail\n");
+ printf("wake_state is NULL\n");
+ break;
}
- else
- {
- printf("lynq_irq_set_type success\n");
- }
- }
- }
- else if (strcmp(argv[1],"-sw") == 0)
- {
- if(argv[3] != NULL)
- {
- en = atoi(argv[3]);
+ en = atoi(cmd2);
ret = lynq_irq_set_wake(irq, en);
if(ret < 0)
{
@@ -84,30 +94,66 @@
printf("ret=%d\n", ret);
}
}
- }
- else if (strcmp(argv[1],"-gw") == 0)
- {
- ret = lynq_irq_get_wake(irq);
- printf("lynq_irq_get_wake ret %d\n", ret);
- }
- else
- {
- printf("wrong input format, please -h \n");
- return -1;
+ else if(strcmp(cmd1, CMD_GET_WAKE) == 0)
+ {
+ ret = lynq_irq_get_wake(irq);
+ printf("lynq_irq_get_wake ret %d\n", ret);
+ }
+ else if(strcmp(cmd1, CMD_SET_TYPE) == 0)
+ {
+ if(cmd2 == NULL)
+ {
+ printf("trig_type is NULL\n");
+ break;
+ }
+ trig_type = atoi(cmd2);
+ ret = lynq_irq_set_type(line, trig_type);
+ if(ret < 0)
+ {
+ printf("lynq_irq_set_type fail\n");
+ }
+ else
+ {
+ printf("lynq_irq_set_type success\n");
+ }
+ }
+ else if(strcmp(cmd1, CMD_GET_TYPE) == 0)
+ {
+ ret = lynq_irq_get_type(irq);
+ printf("lynq_irq_get_type ret %d\n", ret);
+ }
+ else if(strcmp(cmd1, CMD_UNINSTALL) == 0)
+ {
+ ret = lynq_irq_uninstall(irq);
+ if(ret != 0)
+ {
+ printf("lynq_irq_uninstall fail\n");
+ }
+ else
+ {
+ printf("lynq_irq_uninstall success\n");
+ }
+ }
+ else if(strcmp(cmd1, CMD_QUIT_TEST) == 0)
+ {
+ ret = lynq_irq_uninstall(irq);
+ if(ret != 0)
+ {
+ printf("lynq_irq_uninstall fail\n");
+ }
+ else
+ {
+ printf("lynq_irq_uninstall success\n");
+ break;
+ }
+ }
+ else
+ {
+ printf("wrong input format\n");
+ }
}
- ret = lynq_irq_uninstall(irq);
- if(ret != 0)
- {
- printf("lynq_irq_uninstall fail\n");
- }
- else
- {
- printf("lynq_irq_uninstall success\n");
- }
-
return 0;
-
}
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/poweralarm-demo/files/poweralarm-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/poweralarm-demo/files/poweralarm-demo.cpp
index a83d3d7..75da1e1 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/poweralarm-demo/files/poweralarm-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/poweralarm-demo/files/poweralarm-demo.cpp
@@ -16,20 +16,26 @@
st_api_test_case at_api_testcases[] =
{
{0, "print_help"},
- {1, "poweralarm"},
- {2, "wakealarm"},
- {3, "cancel_wakealarm"},
- {4, "lynq_set_poweralarm"},
- {5, "lynq_set_wakealarm"},
+ {1, "lynq_rtc_service_init"},
+ {2, "poweralarm"},
+ {3, "wakealarm"},
+ {4, "cancel_wakealarm"},
+ {5, "lynq_set_poweralarm"},
+ {6, "lynq_set_wakealarm"},
+ {7, "lynq_rtc_service_deinit"},
{-1, NULL}
};
+int src_id = -1;
+typedef int (*lynq_wakealarm_add_cb)(unsigned int src_id, int rtc_id);
-int (*poweralarm)(char *buffer);
-int (*wakealarm)(char *buffer);
-int (*cancel_wakealarm)();
-int (*lynq_set_poweralarm)(unsigned long time_sec);
-int (*lynq_set_wakealarm)(unsigned long time_sec);
+int (*lynq_rtc_service_init)(void);
+int (*lynq_rtc_service_deinit)(void);
+int (*poweralarm)(char *buffer,int src_id);
+int (*wakealarm)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
+int (*cancel_wakealarm)(int src_id,int rtc_id);
+int (*lynq_set_poweralarm)(unsigned long time_sec,int src_id);
+int (*lynq_set_wakealarm)(unsigned long time_sec,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
void *dlHandle_poweralarm = NULL;
@@ -48,10 +54,16 @@
}
}
+int lynq_wakealarm_add_callback(unsigned int src_id, int rtc_id)
+{
+ printf("wake alarm callback test \n");
+ return 0;
+}
+
+
int main(int argc,char *argv[])
{
- int flag = 0;
int cmdIdx = 0;
printf("Enter main function\n");
@@ -63,38 +75,53 @@
return -1;
}
- poweralarm = (int (*)(char *buffer))dlsym(dlHandle_poweralarm, "poweralarm");
+ poweralarm = (int (*)(char *buffer,int src_ids))dlsym(dlHandle_poweralarm, "poweralarm");
if(poweralarm == NULL)
{
printf("poweralarm is null\n");
return -1;
}
- wakealarm = (int (*)(char *buffer))dlsym(dlHandle_poweralarm, "wakealarm");
+ wakealarm = (int (*)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm, "wakealarm");
if(wakealarm == NULL)
{
printf("wakealarm is null\n");
return -1;
}
- lynq_set_poweralarm = (int (*)(unsigned long))dlsym(dlHandle_poweralarm,"lynq_set_poweralarm");
+ lynq_set_poweralarm = (int (*)(unsigned long,int src_id))dlsym(dlHandle_poweralarm,"lynq_set_poweralarm");
if(lynq_set_poweralarm == NULL)
{
printf("lynq_set_poweralarm is null\n");
return -1;
}
- lynq_set_wakealarm = (int (*)(unsigned long))dlsym(dlHandle_poweralarm,"lynq_set_wakealarm");
+ lynq_set_wakealarm = (int (*)(unsigned long,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm,"lynq_set_wakealarm");
if(lynq_set_wakealarm == NULL)
{
printf("lynq_set_wakealarm is null\n");
return -1;
}
- cancel_wakealarm = (int (*)())dlsym(dlHandle_poweralarm, "cancel_wakealarm");
+ cancel_wakealarm = (int (*)(int src_id,int rtc_id))dlsym(dlHandle_poweralarm, "cancel_wakealarm");
if(cancel_wakealarm == NULL)
{
printf("cancel_wakealarm is null\n");
return -1;
}
+
+ lynq_rtc_service_init = (int(*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_init");
+ if(lynq_rtc_service_init == NULL)
+ {
+ printf("lynq_rtc_service_init is null\n");
+ return -1;
+ }
+
+ lynq_rtc_service_deinit = (int (*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_deinit");
+ if(lynq_rtc_service_deinit == NULL)
+ {
+ printf("lynq_rtc_service_deinit is null \n");
+ return -1;
+ }
+
print_help();
while(1)
{
@@ -111,11 +138,16 @@
break;
case 1:
{
+ src_id = lynq_rtc_service_init();
+ break;
+ }
+ case 2:
+ {
int ret = 0;
char tmp_time[32] = {0};
printf("Set poweralarm time,e.g: 60 (seconds)\n");
scanf("%s",tmp_time);
- ret = poweralarm(tmp_time);
+ ret = poweralarm(tmp_time,src_id);
if(ret != 0)
{
printf("set poweralarm failed\n");
@@ -123,13 +155,15 @@
}
break;
}
- case 2:
+ case 3:
{
int ret = 0;
char tmp_time[32]={0};
- printf("Set wakealarm time ,e.g: 60 (seconds)\n");
- scanf("%s",tmp_time);
- ret = wakealarm(tmp_time);
+ int rtc_id = 0;
+ printf("Set wakealarm time ,e.g: 60 1 (seconds)\n");
+ scanf("%s%d",tmp_time,&rtc_id);
+
+ ret = wakealarm(tmp_time,src_id,rtc_id,lynq_wakealarm_add_callback);
if(ret != 0)
{
printf("set wakealarm failed\n");
@@ -137,10 +171,13 @@
}
break;
}
- case 3:
+ case 4:
{
int ret = 0;
- ret = cancel_wakealarm();
+ int rtc_id = 0;
+ printf("Please input you want cancel rtc timer rtc id\n");
+ scanf("%d",&rtc_id);
+ ret = cancel_wakealarm(src_id,rtc_id);
if(ret != 0)
{
printf("Cancel_wakealarm failed!!!");
@@ -148,13 +185,13 @@
}
break;
}
- case 4:
+ case 5:
{
int ret = 0;
unsigned long time_sec = 0;
- printf("Input time_sec you want poweralarm,e.g:60 (seconds)\n");
+ printf("Input time_sec you want poweralarm,e.g: 60 (seconds)\n");
scanf("%lu",&time_sec);
- ret =lynq_set_poweralarm(time_sec);
+ ret =lynq_set_poweralarm(time_sec,src_id);
printf("ret is %d\n",ret);
if(ret != 0)
{
@@ -163,25 +200,40 @@
}
break;
}
- case 5:
- {
+ case 6:
+ {
int ret = 0;
unsigned long time_sec = 0;
- printf("Input time_sec you want wakealarm,e.g:60 (seconds)\n");
- scanf("%lu",&time_sec);
- ret =lynq_set_wakealarm(time_sec);
+ int rtc_id;
+ printf("Input time_sec you want wakealarm,e.g:60 1(seconds)\n");
+ scanf("%lu%d",&time_sec,&rtc_id);
+ ret =lynq_set_wakealarm(time_sec,src_id,rtc_id,lynq_wakealarm_add_callback);
if(ret != 0)
{
printf("lynq_set_wakealarm failed\n");
return -1;
}
break;
- }
+ }
+ case 7:
+ {
+ int ret = -1;
+ printf("rtc servce deinit !!!!!!!!!!!!");
+ ret = lynq_rtc_service_deinit();
+ if(ret != 0)
+ {
+ printf("lynq rtc service deinit failed \n");
+ return -1;
+
+ }
+ break;
+ }
default:
break;
}
}
+
return 0;
}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
index 6edd109..8bc48e6 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
@@ -1975,12 +1975,12 @@
# CONFIG_SND_SOC_ZX29_TI3100 is not set
#dongyu@modify for codec start
# CONFIG_SND_SOC_ZX29_NAU8810 is not set
-CONFIG_SND_SOC_ZX29_TI3104=y
+# CONFIG_SND_SOC_ZX29_TI3104 is not set
# CONFIG_SND_SOC_ZX29_ES8374 is not set
# CONFIG_SND_SOC_ZX29_ES8312 is not set
# CONFIG_SND_SOC_ZX29_AK4940 is not set
# CONFIG_SND_SOC_ZX29_MAX9867 is not set
-# CONFIG_SND_SOC_ZX29_ES8311 is not set
+CONFIG_SND_SOC_ZX29_ES8311=y
CONFIG_SND_SOC_ZX_VOICE=y
CONFIG_SND_SOC_ZX297520V3=y
CONFIG_SND_SOC_ZX_I2S=y
@@ -1988,9 +1988,9 @@
# CONFIG_SND_SOC_ZX_TDM is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_NAU8810 is not set
-CONFIG_SND_SOC_TLV320AIC3X=y
+# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_MAX9867 is not set
-# CONFIG_SND_SOC_ES8311 is not set
+CONFIG_SND_SOC_ES8311=y
#dongyu@modify for codec end
CONFIG_SND_EXTRA_CTRL=y
CONFIG_USE_TOP_I2S0=y
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-atcid/zxic_at_func_wrapper.cpp b/cap/zx297520v3/src/lynq/framework/lynq-atcid/zxic_at_func_wrapper.cpp
index 3037e62..99794fb 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-atcid/zxic_at_func_wrapper.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-atcid/zxic_at_func_wrapper.cpp
@@ -29,7 +29,7 @@
template <int n>
void zxic_at_callback(unsigned char * input, unsigned char * output)
{
- char org_cmd[64] = {0};
+ char *org_cmd = NULL;
if (input == NULL || output == NULL)
{
ALOGE("zxic_at_callback invalid params %p-%p \n", input, output);
@@ -37,6 +37,12 @@
}
strcpy((char*)output, "\r\n");
struct callback_entry *pEntry = g_all_reg_entry[n];
+ org_cmd = new char [strlen(input) + 32];
+ if (org_cmd == NULL)
+ {
+ strcat(output, "+CME ERROR: 100\r\n");
+ }
+ org_cmd[0] = '\0';
strcat(org_cmd, pEntry->at_prefix);
strcat(org_cmd, (char *)input);
pEntry->plugin_entry->output_buffer = (char*)output;
@@ -44,6 +50,7 @@
pEntry->plugin_entry->atsvc_incb(org_cmd, strlen(org_cmd));
pEntry->plugin_entry->output_buffer = NULL;
ALOGD("zxic_at_callback output -- %s \n", output);
+ delete [] org_cmd;
//return 0;
}
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-irq/include/lynq-irq.h b/cap/zx297520v3/src/lynq/lib/liblynq-irq/include/lynq-irq.h
index 298e75a..36fd9ed 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-irq/include/lynq-irq.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-irq/include/lynq-irq.h
@@ -6,6 +6,9 @@
extern "C" {
#endif
+
+int line_gpio[15]={-1,48,49,50,51,52,53,54,119,128,129,-1,131,-1,125};//this is the line match gpio
+
typedef void (*irq_handler)(void);
int lynq_irq_install(int line, irq_handler irq_handler, int trig_type);
@@ -14,6 +17,8 @@
int lynq_irq_set_type(int line, int trig_type);
+int lynq_irq_get_type(int line);
+
int lynq_irq_set_wake(int line, int en);
int lynq_irq_get_wake(int line);
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-irq/lynq-irq.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-irq/lynq-irq.cpp
index 566961e..a48090e 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-irq/lynq-irq.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-irq/lynq-irq.cpp
@@ -12,7 +12,6 @@
extern "C" {
#endif
-#define USER_LOG_TAG "LYNQ_IRQ"
/*****************************************
* @brief:lynq_irq_install
@@ -27,8 +26,10 @@
int lynq_irq_install(int line, irq_handler irq_test_handler, int trig_type)
{
int ret;
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
+ if(trig_type < 0)
+ {
+ return -1;
+ }
ret = sc_irq_install(line, irq_test_handler, trig_type);
if (ret != 0)
{
@@ -52,8 +53,6 @@
int lynq_irq_uninstall(int line)
{
int ret;
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
ret = sc_irq_uninstall(line);
if (ret != 0)
{
@@ -77,8 +76,10 @@
int lynq_irq_set_type(int line, int trig_type)
{
int ret;
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
+ if(trig_type < 0)
+ {
+ return -1;
+ }
ret = sc_irq_set_type(line, trig_type);
if (ret < 0)
{
@@ -89,6 +90,29 @@
}
+/*****************************************
+* @brief:lynq_irq_get_type
+* @param count [IN]:1
+* @param sum [OUT]:NA
+* @return :success >= 0, failed other
+* @todo:NA
+* @see:NA
+* @warning:NA
+******************************************/
+int lynq_irq_get_type(int line)
+{
+ int ret;
+ int trig_type;
+ ret = sc_irq_get_type(line, &trig_type);
+ if (ret != 0)
+ {
+ LYINFLOG("get_type failed, ret:%d\n", ret);
+ return ret;
+ }
+ LYINFLOG("get_type readback(%d)\n", trig_type);
+ return trig_type;
+}
+
/*****************************************
* @brief:lynq_irq_set_wake
@@ -102,8 +126,6 @@
int lynq_irq_set_wake(int line, int en)
{
int ret;
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
ret = sc_irq_set_wake(line, en);
if (ret < 0)
{
@@ -126,8 +148,6 @@
{
int ret;
int en;
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
ret = sc_irq_get_wake(line, &en);
if (ret != 0)
{
diff --git a/cap/zx297520v3/src/lynq/lib/libpoweralarm/include/libpoweralarm.h b/cap/zx297520v3/src/lynq/lib/libpoweralarm/include/libpoweralarm.h
index 54191a6..4110fba 100755
--- a/cap/zx297520v3/src/lynq/lib/libpoweralarm/include/libpoweralarm.h
+++ b/cap/zx297520v3/src/lynq/lib/libpoweralarm/include/libpoweralarm.h
@@ -15,11 +15,17 @@
extern "C" {
#endif
-ssize_t poweralarm(char * buffer);
-ssize_t wakealarm(char *buffer);
-ssize_t cancel_wakealarm(void);
-int lynq_set_wakealarm(unsigned long time_sec);
-int lynq_set_poweralarm(unsigned long time_sec);
+typedef int (*lynq_wakealarm_add_cb)(unsigned int src_id, int rtc_id);
+int lynq_rtc_service_init(void);
+int lynq_rtc_service_deinit(void);
+ssize_t poweralarm(char *buffer,int src_id);
+ssize_t wakealarm(char *buffer,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify );
+ssize_t cancel_wakealarm(int src_id, int rtc_id);
+
+int lynq_set_wakealarm(unsigned long time_sec,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify );
+int lynq_set_poweralarm(unsigned long time_sec,int src_id);
+
+
#ifdef __cplusplus
diff --git a/cap/zx297520v3/src/lynq/lib/libpoweralarm/libpoweralarm.cpp b/cap/zx297520v3/src/lynq/lib/libpoweralarm/libpoweralarm.cpp
index b3b7827..26f57be 100755
--- a/cap/zx297520v3/src/lynq/lib/libpoweralarm/libpoweralarm.cpp
+++ b/cap/zx297520v3/src/lynq/lib/libpoweralarm/libpoweralarm.cpp
@@ -30,10 +30,9 @@
#define MAX_TIME 268435456
-static int wk_rtc_id = 1;
-static int wk_srcid = 0;
-
typedef int (*sc_rtc_timer_exp_cb)(unsigned int src_id, int rtc_id);
+typedef int (*lynq_wakealarm_add_cb)(unsigned int src_id, int rtc_id);
+
extern int sc_rtc_timer_init(void);
extern int sc_rtc_timer_uninit(void );
extern int sc_rtc_timer_add(int srcid, int rtc_id, unsigned long ulSec, sc_rtc_timer_exp_cb rtc_notify);
@@ -45,31 +44,67 @@
extern int sc_rtc_add_poweroff_alarm(int srcid, int alarm_modid, int rtc_id, struct tm *utc_sec, sc_rtc_timer_exp_cb rtc_notify);
+
/*****************************************
-* @brief:sc_rtc_timer_add_cb
-* @param count [IN]:src_id, rtc_id,
+* @brief:lynq_rtc_service_init
+* @param count [IN]:NA
* @param sum [OUT]:NA
-* @return :0
+* @return :success src_id, failed -1
* @todo:
* @see:NA
* @warning:
-******************************************/
-int sc_rtc_timer_add_cb(unsigned int src_id, int rtc_id)
+*****************************************/
+int lynq_rtc_service_init(void)
{
+ int src_id = -1;
+
+ LYLOGSET(LOG_INFO);
+ LYLOGEINIT(USER_LOG_TAG);
+
+ src_id = sc_rtc_timer_init();
+ if (src_id <= 0)
+ {
+ LYERRLOG("rtc_timer_init fail!");
+ return -1;
+ }
+ return src_id;
+
+}
+
+/*****************************************
+* @brief:lynq_rtc_service_init
+* @param count [IN]:NA
+* @param sum [OUT]:NA
+* @return :success src_id, failed -1
+* @todo:
+* @see:NA
+* @warning:
+*****************************************/
+int lynq_rtc_service_deinit(void)
+{
+ int ret = -1;
+ ret = sc_rtc_timer_uninit();
+ if(ret != 0)
+ {
+ LYINFLOG("Deinit failed!!!");
+ return -1;
+ }
+
return 0;
+
}
/*****************************************
* @brief:Set wakealarm time
-* @param count [IN]:buffer,
+* @param count [IN]:char *buffer,int src_id ...
* @param sum [OUT]:NA
* @return :success 0, failed -1
* @todo:
* @see:NA
* @warning:
******************************************/
-ssize_t wakealarm(char *buffer)
+ssize_t wakealarm(char *buffer,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify )
{
unsigned long time_sec = 0;
int ret = 0;
@@ -80,9 +115,6 @@
tmp_time = time(NULL);
localtime(&tmp_time);
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
-
if(buffer == NULL)
{
LYINFLOG("Bad input parameter,exit!!!!");
@@ -115,15 +147,8 @@
wake_arlarm = localtime(&tmp_time);
LYINFLOG("Set wakealarm %lu seconds ",time_sec);
-
- wk_srcid = sc_rtc_timer_init();
- if (wk_srcid <= 0)
- {
- LYINFLOG("rtc_timer_init fail!");
- return -1;
- }
-
- ret = sc_rtc_timer_add_utc(wk_srcid, wk_rtc_id,wake_arlarm,0,sc_rtc_timer_add_cb);
+
+ ret = sc_rtc_timer_add_utc(src_id, rtc_id,wake_arlarm,0,wakealarm_notify);
if(ret < 0)
{
LYINFLOG("Add rtc timer failed!!!!");
@@ -132,12 +157,6 @@
LYINFLOG("Set wakealarm success !!!");
- ret = sc_rtc_timer_uninit();
- if(ret != 0)
- {
- LYINFLOG("Deinit failed");
- }
-
return 0;
}
@@ -145,28 +164,26 @@
/*****************************************
* @brief:set poweralarm time
-* @param count [IN]:buffer,
+* @param count [IN]:char *buffer, int srcid
* @param sum [OUT]:NA
* @return :success 0, failed -1
* @todo:
* @see:NA
* @warning:
******************************************/
-ssize_t poweralarm(char *buffer)
+ssize_t poweralarm(char *buffer,int src_id )
{
- int srcid = 0;
+
unsigned long time_sec = 0;
int ret = 0;
char *buf_bak = buffer;
-
+
int alarmid = 0;
char username[8] = "user";
time_t tmp_time = 0;
struct tm *power_arlarm = NULL;
tmp_time = time(NULL);
localtime(&tmp_time);
-
-
LYLOGSET(LOG_INFO);
LYLOGEINIT(USER_LOG_TAG);
@@ -203,21 +220,16 @@
}
LYINFLOG("Set poweralarm %lu seconds",time_sec);
- srcid = sc_rtc_timer_init();
- if (srcid <= 0)
- {
- LYERRLOG("rtc_timer_init fail!");
- return -1;
- }
- alarmid = sc_rtc_get_poweroff_alarm_modid(srcid, username);
+
+ alarmid = sc_rtc_get_poweroff_alarm_modid(src_id, username);
if(alarmid < 0)
{
LYERRLOG("Get poweroff alarm id failed !!!");
return -1;
}
- ret = sc_rtc_add_poweroff_alarm(srcid, alarmid, 0, power_arlarm, sc_rtc_timer_add_cb);
+ ret = sc_rtc_add_poweroff_alarm(src_id, alarmid, 0, power_arlarm, NULL);
if(ret < 0)
{
LYERRLOG("Set power alarm failed !!!");
@@ -225,37 +237,31 @@
}
LYINFLOG("Set power alarm success !!!!");
- ret = sc_rtc_timer_uninit();
- if(ret != 0)
- {
- LYINFLOG("Deinit failed!!!");
- }
-
return 0;
}
/**********************************************
* @brief:cancel_wakealarm,
-* @param count [IN]:void
+* @param count [IN]:int src_id, int rtc_id
* @param sum [OUT]:NA
* @return :success 0, failed -1
* @todo:
* @see:NA
* @warning:
********************************************/
-ssize_t cancel_wakealarm(void)
+ssize_t cancel_wakealarm(int src_id, int rtc_id)
{
int ret = 0;
LYINFLOG("Enter cancel_wakealarm ");
- ret = sc_rtc_timer_del(wk_srcid, wk_rtc_id);
+ ret = sc_rtc_timer_del(src_id, rtc_id);
if(ret < 0)
{
LYERRLOG("Del wakealarm failed!!!");
return -1;
}
-
+ LYINFLOG("Cancel success ");
return 0;
}
@@ -263,19 +269,17 @@
/*****************************************
* @brief:lynq_set_poweralarm
-* @param count [IN]:unsigned long time_sec
+* @param count [IN]:unsigned long time_sec , int src_id
* @param sum [OUT]:NA
* @return :success 0, failed -1
* @todo:
* @see:NA
* @warning:
******************************************/
-int lynq_set_poweralarm(unsigned long time_sec)
+int lynq_set_poweralarm(unsigned long time_sec,int src_id)
{
int ret = 0;
- int srcid = 0;
-
int alarmid = 0;
char username[8] = "user";
@@ -283,14 +287,11 @@
struct tm *power_arlarm = NULL;
tmp_time = time(NULL);
localtime(&tmp_time);
-
+
tmp_time += time_sec;
power_arlarm = localtime(&tmp_time);
-
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
-
+
if(time_sec < MIN_TIME || time_sec > MAX_TIME )
{
LYERRLOG("Illeagle input: too large or too small !!!");
@@ -298,21 +299,16 @@
}
LYINFLOG("lynq_set_poweralarm %lu seconds",time_sec);
- srcid = sc_rtc_timer_init();
- if (srcid <= 0)
- {
- LYERRLOG("rtc_timer_init fail!");
- return -1;
- }
- alarmid = sc_rtc_get_poweroff_alarm_modid(srcid, username);
+
+ alarmid = sc_rtc_get_poweroff_alarm_modid(src_id, username);
if(alarmid < 0)
{
LYERRLOG("Get poweroff alarm id failed !!!");
return -1;
}
- ret = sc_rtc_add_poweroff_alarm(srcid, alarmid, 0, power_arlarm, sc_rtc_timer_add_cb);
+ ret = sc_rtc_add_poweroff_alarm(src_id, alarmid, 0, power_arlarm, NULL);
if(ret < 0)
{
LYERRLOG("Set power alarm failed !!!");
@@ -321,12 +317,6 @@
LYINFLOG("Set power alarm success !!!!");
- ret = sc_rtc_timer_uninit();
- if(ret != 0)
- {
- LYINFLOG("Deinit rtc_timer failed!!!");
- }
-
return 0;
@@ -335,14 +325,14 @@
/*****************************************
* @brief:lynq_set_wakealarm
-* @param count [IN]:unsigned long time_sec
+* @param count [IN]:unsigned long time_sec,....
* @param sum [OUT]:NA
* @return :success 0, failed -1
* @todo:
* @see:NA
* @warning:
******************************************/
-int lynq_set_wakealarm(unsigned long time_sec)
+int lynq_set_wakealarm(unsigned long time_sec,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify )
{
int ret = 0;
@@ -350,10 +340,7 @@
struct tm *wake_arlarm = NULL;
tmp_time = time(NULL);
localtime(&tmp_time);
-
- LYLOGSET(LOG_INFO);
- LYLOGEINIT(USER_LOG_TAG);
-
+
if(time_sec < MIN_TIME || time_sec > MAX_TIME)
{
LYERRLOG("Illeagle input: too large or too small !!!");
@@ -361,19 +348,12 @@
}
LYINFLOG("lynq_set_wakealarm %lu seconds ",time_sec);
-
- wk_srcid = sc_rtc_timer_init();
- if (wk_srcid <= 0)
- {
- LYINFLOG("rtc_timer_init fail!");
- return -1;
- }
-
+
tmp_time += time_sec;
wake_arlarm = localtime(&tmp_time);
LYINFLOG("Set wakealarm %lu seconds ",time_sec);
- ret = sc_rtc_timer_add_utc(wk_srcid, wk_rtc_id,wake_arlarm,0,sc_rtc_timer_add_cb);
+ ret = sc_rtc_timer_add_utc(src_id, rtc_id,wake_arlarm,0,wakealarm_notify);
if(ret < 0)
{
LYINFLOG("Add rtc timer failed!!!!");
@@ -381,17 +361,12 @@
}
LYINFLOG("Set wakealarm success !!!");
-
- ret = sc_rtc_timer_uninit();
- if(ret != 0)
- {
- LYINFLOG("Deinit failed!!!");
- }
return 0;
}
+
DEFINE_LYNQ_LIB_LOG(LYNQ_POWERALARM)
#ifdef __cplusplus
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-pinctrl.dtsi b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-pinctrl.dtsi
index f9f558d..1a6ab53 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-pinctrl.dtsi
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-pinctrl.dtsi
@@ -288,97 +288,97 @@
sc_ext_int0: sc_ext_int0 {
pins = "EXT_INT0";
function = "EXT_INT0";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int1: sc_ext_int1 {
pins = "EXT_INT1";
function = "EXT_INT1";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int2: sc_ext_int2 {
pins = "EXT_INT2";
function = "EXT_INT2";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int3: sc_ext_int3 {
pins = "EXT_INT3";
function = "EXT_INT3";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int4: sc_ext_int4 {
pins = "EXT_INT4";
function = "EXT_INT4";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int5: sc_ext_int5 {
pins = "EXT_INT5";
function = "EXT_INT5";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int6: sc_ext_int6 {
pins = "EXT_INT6";
function = "EXT_INT6";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int7: sc_ext_int7 {
pins = "EXT_INT7";
function = "EXT_INT7";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int8: sc_ext_int8 {
pins = "EXT_INT8";
function = "EXT_INT8";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int9: sc_ext_int9 {
pins = "EXT_INT9";
function = "EXT_INT9";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int10: sc_ext_int10 {
pins = "GPIO129"; /*jb.qi add for EXT_INIT10 success*/
function = "EXT_INT10";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int11: sc_ext_int11 {
pins = "EXT_INT11";
function = "EXT_INT11";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int12: sc_ext_int12 {
pins = "GPIO131"; //"EXT_INT12";
function = "EXT_INT12";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int13: sc_ext_int13 {
pins = "EXT_INT13";
function = "EXT_INT13";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int14: sc_ext_int14 {
pins = "EXT_INT14";
function = "EXT_INT14";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
sc_ext_int15: sc_ext_int15 {
pins = "EXT_INT15";
function = "EXT_INT15";
- bias-disable;
+ //bias-disable; jb.qi changed for pullset fail on 20231107
};
};
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
index da48fcc..6f7cf69 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
@@ -130,11 +130,11 @@
// status = "okay";
};
&codec_ti3104 {
- status = "okay";
+// status = "okay";
};
&zx29_ti3104 {
pinctrl-0 = <&i2s0_pins>;
- status = "okay";
+// status = "okay";
};
&codec_nau8810 {
// status = "okay";
@@ -155,11 +155,11 @@
// status = "okay";
};
&codec_es8311 {
-// status = "okay";
+ status = "okay";
};
&zx29_es8311 {
pinctrl-0 = <&i2s0_pins>;
-// status = "okay";
+ status = "okay";
};
&gmac {
port-nums = <1>;
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/ethernet/zte/zx29_gmac.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/ethernet/zte/zx29_gmac.c
index 05a5b0b..7bc3ed0 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/ethernet/zte/zx29_gmac.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/ethernet/zte/zx29_gmac.c
@@ -1357,11 +1357,45 @@
return 0;
}
+/*jb.qi add for gamc power down on 20231116 start*/
+
+extern int gmac_power = 1;
+int gmac_power_flag = 0;
+
+ssize_t gmac_power_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+{
+ int val = 0;
+ int ret;
+ ret = sscanf(buf, "%d", &val);
+ if(ret < 1)
+ {
+ printk(KERN_INFO "gmac: failed ti read user buf, ret=%d, input %d\n", ret,val);
+ return count;
+ }
+ gmac_power = val;
+ gpio_direction_output(gmac_power_flag, val);
+ return count;
+}
+
+ssize_t gmac_power_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ if(gmac_power)
+ memcpy(buf, "on",3);
+ else
+ memcpy(buf, "off", 4);
+
+ printk("gmac_power %s\n", buf);
+ return 0;
+
+}
+/*jb.qi add for gamc power down on 20231116 end */
+
static DEVICE_ATTR(gmac_test, 0664, show_fun, store_fun);
static DEVICE_ATTR(mdio_test, 0664, mdio_show, mdio_store);
static DEVICE_ATTR(free_mdio, 0664, free_mdio_show, free_mdio_store);
static DEVICE_ATTR(debug_on, 0664, debug_on_show, debug_on_store);
-
+static DEVICE_ATTR(gmac_power, 0664, gmac_power_show, gmac_power_store);//jb.qi add for gamc power down on 20231116
+
static int zx29_gmac_probe(struct platform_device *pdev)
{
struct zx29_gmac_dev *prv = NULL;
@@ -1387,6 +1421,7 @@
device_create_file(&pdev->dev, &dev_attr_mdio_test);
device_create_file(&pdev->dev, &dev_attr_free_mdio);
device_create_file(&pdev->dev, &dev_attr_debug_on);
+ device_create_file(&pdev->dev, &dev_attr_gmac_power);//jb.qi add for gamc power down on 20231116
prv = netdev_priv(ndev);
memset(prv, 0, sizeof(*prv));
@@ -1422,7 +1457,7 @@
gpio_direction_output(prv->gpio_power[1], 1);
mdelay(15);
#endif
-
+ gmac_power_flag = prv->gpio_power[0];
SET_NETDEV_DEV(ndev, &pdev->dev); //if not, will panic
base = devm_platform_ioremap_resource(pdev, 0);
@@ -1630,7 +1665,8 @@
device_remove_file(&pdev->dev, &dev_attr_gmac_test);
device_remove_file(&pdev->dev, &dev_attr_mdio_test);
device_remove_file(&pdev->dev, &dev_attr_free_mdio);
- device_remove_file(&pdev->dev, &dev_attr_debug_on);
+ device_remove_file(&pdev->dev, &dev_attr_debug_on);
+ device_remove_file(&pdev->dev, &dev_attr_gmac_power);//jb.qi add for gamc power down on 20231116
}
return 0;
}