[Feature] add GA346 baseline version
Change-Id: Ic62933698569507dcf98240cdf5d9931ae34348f
diff --git a/lib/liblynq-system-own/include/lynq-system-own.h b/lib/liblynq-system-own/include/lynq-system-own.h
new file mode 100644
index 0000000..0e5ff80
--- /dev/null
+++ b/lib/liblynq-system-own/include/lynq-system-own.h
@@ -0,0 +1,17 @@
+#ifndef LYNQ_SYSTEM_OWN
+#define LYNQ_SYSTEM_OWN
+typedef void (*LYNQ_Lpm_Handler_T) ( int lpm_edge);
+int LYNQ_Lpm_Init(LYNQ_Lpm_Handler_T lynq_lpm_handler);
+int LYNQ_Lpm_Deinit();
+int LYNQ_Autosleep_Enable(int enable);
+int LYNQ_SLP_WakeLock_Lock(const char *name);
+int LYNQ_SLP_WakeLock_Unlock(const char *name);
+void LYNQ_Power_Mode(char *power_mode);
+void LYNQ_Power_Down(int mode);
+int LYNQ_Adc_Show(int adc_num);
+void lynq_lpm_handler(int lpm_edge);
+LYNQ_Lpm_Handler_T LYNQ_Lpm_Handler=NULL;
+int last_state=0;
+#endif
+
+
diff --git a/lib/liblynq-system-own/makefile b/lib/liblynq-system-own/makefile
new file mode 100644
index 0000000..97a234e
--- /dev/null
+++ b/lib/liblynq-system-own/makefile
@@ -0,0 +1,57 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+ -std=gnu++14 \
+ -g -Os \
+ -flto \
+ -fPIC \
+ -fpermissive \
+
+$(warning ################# RITA ROOT: $(ROOT),includedir:$(includedir))
+LOCAL_PATH = .
+
+LOCAL_C_INCLUDES = \
+ -I. \
+ -I$(LOCAL_PATH)/include \
+
+LOCAL_LIBS := \
+ -L. \
+ -ldl \
+
+
+SOURCES = $(wildcard *.c wildcard *.h src/*.c)
+
+EXECUTABLE = liblynq-system-own.so
+
+OBJECTS=$(SOURCES:.c=.o)
+
+
+.PHONY: build clean install pack_rootfs
+
+all: build
+$(EXECUTABLE): $(OBJECTS)
+ $(CXX) -shared -Wl,--no-undefined $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@
+
+%.o : %.c
+ $(CC) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+
+build: $(EXECUTABLE)
+ $(warning ########## build $(EXECUTABLE) ##########)
+
+install:
+ mkdir -p $(ROOT)$(base_libdir)/
+ install $(EXECUTABLE) $(ROOT)$(base_libdir)/
+ mkdir -p $(ROOT)$(includedir)/$(NAME)/sdk
+
+pack_rootfs:
+ mkdir -p $(PACK_INITRAMFS_TO)$(base_libdir)/
+ cp -af $(EXECUTABLE) $(PACK_INITRAMFS_TO)$(base_libdir)/
+ $(CROSS)strip $(PACK_INITRAMFS_TO)$(base_libdir)/$(EXECUTABLE)
+ mkdir -p $(PACK_TO)$(base_libdir)/
+ cp -af $(EXECUTABLE) $(PACK_TO)$(base_libdir)/
+ $(CROSS)strip $(PACK_TO)$(base_libdir)/$(EXECUTABLE)
+
+.PHONY: clean
+clean:
+ $(RM) $(OBJECTS) $(EXECUTABLE)
diff --git a/lib/liblynq-system-own/power_mode_own.sh b/lib/liblynq-system-own/power_mode_own.sh
new file mode 100644
index 0000000..188cc03
--- /dev/null
+++ b/lib/liblynq-system-own/power_mode_own.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+case "$1" in
+ "flight")
+ echo "Sys flight mode" >/dev/console
+ killall -9 lynq-function-test
+ echo 11 | emdlogger_ctrl ##set log status
+ sleep 1
+ mdlogctlstop ##stop modem log
+ echo mem > /sys/power/autosleep ##set autosleep modem
+ /usr/bin/telephony & ##initialize Ril function.
+ sleep 5
+ sh/usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 0 ##switch sim card 0
+ echo "RIL_REQUEST_RADIO_POWER 0" > dev/udp/127.0.0.1/8000 ##turn off radio off sim card 0
+ sh/usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 1 ##switch sim card 1
+ echo "RIL_REQUEST_RADIO_POWER 0" >/dev/udp/127.0.0.1/8000 ##turn off radio off sim card 1
+ ;;
+
+ "standby")
+ echo "Sys standby mode" >/dev/console
+ killall -9 lynq-function-test
+ echo 7 | emdlogger_ctrl
+ /usr/bin/telephony &
+ sleep 5
+ sh /usr/bin/demoscript/Network_API/SetPrefferredNetworkType.sh 11
+ sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 1
+ echo "RIL_REQUEST_SCREEN_STATE 0" > /dev/udp/127.0.0.1/8000
+ sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 0
+ echo "RIL_REQUEST_SCREEN_STATE 0" > /dev/udp/127.0.0.1/8000
+ echo mem > /sys/power/autosleep
+ ;;
+
+ "talking")
+ echo "Sys standby mode" >/dev/console
+ killall -9 lynq-function-test
+ echo 7 | emdlogger_ctrl
+ /usr/bin/telephony &
+ sleep 5
+ sh /usr/bin/demoscript/Network_API/SetPrefferredNetworkType.sh 2
+ sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 1
+ echo "RIL_REQUEST_SCREEN_STATE 0" > /dev/udp/127.0.0.1/8000
+ sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 0
+ echo "RIL_REQUEST_SCREEN_STATE 0" > /dev/udp/127.0.0.1/8000
+ sh /usr/bin/demoscript/CC_API/dialACall.sh <number>
+ echo mem > /sys/power/autosleep
+ ;;
+
+ *)
+ echo $0 'power - start system'
+ ;;
+esac
\ No newline at end of file
diff --git a/lib/liblynq-system-own/src/lynq-system-own.c b/lib/liblynq-system-own/src/lynq-system-own.c
new file mode 100644
index 0000000..0c5334a
--- /dev/null
+++ b/lib/liblynq-system-own/src/lynq-system-own.c
@@ -0,0 +1,114 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <unistd.h>
+#include <time.h>
+#include <lynq-system-own.h>
+
+void lynq_lpm_handler(int lpm_edge)
+{
+ FILE * fp = NULL;
+ char buft[32] = {0};
+ char * cmd="cat /sys/devices/platform/10005000.pinctrl/mt_gpio | grep 000: | cut -b 8";
+ //printf("[%s][%d]cmd=[%s]\n",__FUNCTION__,__LINE__,cmd);
+
+ fp = popen (cmd, "r");
+ if (fp) {
+ if (fgets(buft, sizeof(buft), fp) != NULL) {
+ //printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,buft);
+ strtok(buft, "\n");
+
+ }
+ pclose(fp);
+ }
+ //printf("[%s][%d]last_state %d\n",__FUNCTION__,__LINE__,last_state);
+ if(atoi(buft)!=last_state){
+ last_state=atoi(buft);
+ lpm_edge=atoi(buft);
+ printf("[%s][%d]lpm_edge=%d\n",__FUNCTION__,__LINE__,lpm_edge);
+ }
+}
+
+int LYNQ_Lpm_Init (LYNQ_Lpm_Handler_T lynq_lpm_handler)
+{
+ LYNQ_Lpm_Handler=lynq_lpm_handler;
+ return 0;
+}
+int LYNQ_Lpm_Deinit (void)
+{
+ LYNQ_Lpm_Handler=NULL;
+ return 0;
+}
+
+void suspendOperatingSystem()
+{
+ system("killall -9 lynq-function-test");
+ system("echo 7 | emdlogger_ctrl");
+ system("/usr/bin/telephony &");
+ system("sleep 5");
+ system("sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 0");
+ system("sh /usr/bin/demoscript/Network_API/RadioOn.sh 0");
+ system("sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 1");
+ system("sh /usr/bin/demoscript/Network_API/RadioOn.sh 0");
+ system("echo mem > /sys/power/autosleep");
+}
+
+int LYNQ_Autosleep_Enable(int enable)
+{
+ if(enable){
+ suspendOperatingSystem();
+ }
+ return 0;
+}
+
+int LYNQ_SLP_WakeLock_Lock(const char *name)
+{
+ char gyCmd[64] = {0};
+ sprintf(gyCmd,"echo %s > /sys/power/wake_lock",name);
+ system(gyCmd);
+}
+
+int LYNQ_SLP_WakeLock_Unlock(const char *name)
+{
+ char gyCmd[64] = {0};
+ sprintf(gyCmd,"echo %s > /sys/power/wake_unlock",name);
+ system(gyCmd);
+}
+
+void LYNQ_Power_Mode(char *power_mode)
+{
+ char gyCmd[64] = {0};
+ sprintf(gyCmd,"sh /etc/powerscript/power_mode_own %s",power_mode);
+ system(gyCmd);
+}
+
+void LYNQ_Power_Down(int mode)
+{
+ if(mode){
+ system("reboot");
+ }else{
+ system("init 0");
+ }
+}
+
+int LYNQ_Adc_Show(int adc_num)
+{
+ FILE * fp = NULL;
+ char buft[32] = {0};
+ char * cmd="cat /sys/bus/iio/devices/iio:device0/in_voltage0_BATADC_input";
+ //printf("[%s][%d]cmd=[%s]\n",__FUNCTION__,__LINE__,cmd);
+
+ fp = popen (cmd, "r");
+ if (fp) {
+ if (fgets(buft, sizeof(buft), fp) != NULL) {
+ //printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,buft);
+ strtok(buft, "\n");
+
+ }
+ pclose(fp);
+ }
+ return atoi(buft);
+}
+
+