[Feature][T108][task-view-1608][thermal]add gsw_get_modem_temperture and demo
Only Configure: No
Affected branch: GSW_V1453
Affected module: thermal
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I99f8e68b342dfe2bc5289cd6eb30e709ab6eb36c
diff --git a/mbtk/libgsw_lib/gsw_at_interface.c b/mbtk/libgsw_lib/gsw_at_interface.c
index 2f48b47..cbf2c21 100755
--- a/mbtk/libgsw_lib/gsw_at_interface.c
+++ b/mbtk/libgsw_lib/gsw_at_interface.c
@@ -339,3 +339,30 @@
{
return GSW_HAL_SUCCESS;
}
+
+int gsw_get_modem_temperture(ZONE_NUM num,int *temp)
+{
+ if (num == soc_max)
+ {
+ char *cmd = "/sys/class/thermal/thermal_zone0/temp";
+ FILE *fp;
+ char buf[128];
+ fp = fopen(cmd, "r");
+ if (fp == NULL)
+ {
+ perror("Unable to open file");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ if (fgets(buf, sizeof(buf), fp) != NULL)
+ {
+ *temp = atoi(buf) * 0.001;
+ //printf("Temperature: %d °C\n", *temp);
+ }
+
+ fclose(fp);
+ return GSW_HAL_SUCCESS;
+ }
+ else
+ return GSW_HAL_FUNC_UNSUPPORT;
+}
diff --git a/mbtk/test/libgsw_lib/gsw_thermal_test.c b/mbtk/test/libgsw_lib/gsw_thermal_test.c
new file mode 100755
index 0000000..a3e996d
--- /dev/null
+++ b/mbtk/test/libgsw_lib/gsw_thermal_test.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <termios.h>
+#include <time.h>
+#include <sys/ioctl.h>
+#include <dlfcn.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+typedef enum{
+ soc_max=0,
+ cpu0,
+ cpu1,
+ cpu2,
+ cpu3,
+ gpu0,
+ gpu1,
+ dramc,
+ mmsys,
+ md_5g,
+ md_4g,
+ md_3g,
+ soc_dram_ntc,
+ pa_5g,
+ pa_4g,
+ rf_ntc,
+ pmic,
+ pmic_vcore,
+ pmic_vpro,
+ pmic_vgpu=19,
+ }ZONE_NUM;
+
+int (*gsw_get_modem_temperture)(ZONE_NUM,int *temp);
+void *dlHandle_pm;
+char *lynqLib_pm = "/lib/libgsw_lib.so";
+int main(void)
+{
+ int ret;
+ int opt = 0;
+ int temp;
+ dlHandle_pm = dlopen(lynqLib_pm, RTLD_NOW);
+ gsw_get_modem_temperture=(int32_t(*)())dlsym(dlHandle_pm, "gsw_get_modem_temperture");
+ ret = gsw_get_modem_temperture(0,&temp);
+ if(ret < 0)
+ {
+ printf("gsw_autosleep_enable FAIL.\n");
+ return -1;
+ }
+ printf("gsw_autosleep_enable success.temp : %d\n",temp);
+ dlclose(dlHandle_pm);
+ return 0;
+}
\ No newline at end of file