[Feature] get temp api

Change-Id: I9819738ad7f757c7d3614c7272f2b286368c1794
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-thermal/liblynq-thermal.bb b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-thermal/liblynq-thermal.bb
new file mode 100755
index 0000000..a7fe858f
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-thermal/liblynq-thermal.bb
@@ -0,0 +1,60 @@
+inherit externalsrc package

+

+DESCRIPTION = "lynq thermal lib"

+SECTION = "base"

+LICENSE = "CLOSED"

+LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"

+DEPENDS += "platform-libs"

+inherit workonsrc

+WORKONSRC = "${TOPDIR}/../src/lynq/lib/liblynq-thermal"

+

+TARGET_CC_ARCH += "${LDFLAGS}"

+BB_INCLUDE_ADD = "--sysroot=${STAGING_DIR_HOST}"

+BB_LDFLAGS_ADD = "--sysroot=${STAGING_DIR_HOST} -Wl,--hash-style=gnu"

+

+

+FILES_${PN} = "${base_libdir}/*.so \

+               ${base_bindir}\

+               ${base_sbindir}"

+

+

+FILES_${PN}-dev = "/test \

+                   ${includedir}"

+

+FILES_${PN}-doc = "/doc"

+

+FILES_${PN}-dbg ="${base_bindir}/.debug \

+                  ${base_libdir}/.debug \

+                  ${base_sbindir}/.debug"

+

+INSANE_SKIP_${PN} += "already-stripped"

+INSANE_SKIP_${PN} += "installed-vs-shipped"

+

+

+#INHIBIT_PACKAGE_STRIP = "1"

+do_compile () {

+	if [ "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" ]; then

+		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE"

+	elif [ "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4" ]; then

+		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE"

+	elif [ "${PACKAGE_ARCH}" = "cortexa53hf-neon-fp-armv8" ]; then

+		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE -mhard-float -mfpu=neon-fp-armv8 -mfloat-abi=hard -mcpu=cortex-a53 -mtune=cortex-a53"

+	else

+		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -Wl,--hash-style=gnu -DTELEPHONYWARE"

+	fi

+}

+

+do_install () {

+    oe_runmake install ROOT=${D}

+

+    if [ -d "${WORKONSRC}" ] ; then

+        install -d ${D}${includedir}/liblynq-thermal

+		cp -af ${S}/include/liblynq-thermal ${D}${includedir}/liblynq-thermal

+      fi

+}

+

+addtask bachclean

+do_bachclean () {

+    oe_runmake clean

+}

+

diff --git a/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h b/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h
new file mode 100755
index 0000000..8228710
--- /dev/null
+++ b/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h
@@ -0,0 +1,40 @@
+#ifndef __LYNQ_GET_THERMAL_H__

+#define __LYNQ_GET_THERMAL_H__

+

+#define LYNQ_THM_PATH 256

+

+#define TYPE_PATH_PRE "/sys/class/thermal"

+

+#define LYNQ_THM_OK 0

+#define LYNQ_THM_OPEN_ERROR -1

+#define LYNQ_THM_READ_ERROR -2

+#define LYNQ_THM_ACCESS_ERROR -3

+#define LYNQ_THM_ZONE_ERROR -4

+

+#define LYNQ_THM_ZONE_KEY "thermal_zone"

+#define LYNQ_THM_COOLER_KEY "cooling_device"

+

+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;

+

+#endif  //__LYNQ_GET_THERMAL_H__
\ No newline at end of file
diff --git a/src/lynq/lib/liblynq-thermal/makefile b/src/lynq/lib/liblynq-thermal/makefile
new file mode 100755
index 0000000..bae164e
--- /dev/null
+++ b/src/lynq/lib/liblynq-thermal/makefile
@@ -0,0 +1,85 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+                -std=gnu++14 \
+                -g -Os \
+                -flto \
+                -fPIC \
+                -fpermissive \
+
+$(warning ################# C2K support: $(RAT_CONFIG_C2K_SUPPORT))
+ifeq ($(strip $(RAT_CONFIG_C2K_SUPPORT)), yes)
+    LOCAL_CFLAGS += -DC2K_SUPPORT
+
+endif
+
+ifeq ($(strip $(MTK_MULTI_SIM_SUPPORT)), dsds)
+    LOCAL_CFLAGS += -DANDROID_SIM_COUNT_2 \
+                     -DANDROID_MULTI_SIM \
+                     -DMODE_DSDS
+endif
+
+ifeq ($(strip $(MTK_MULTI_SIM_SUPPORT)), dsss)
+    LOCAL_CFLAGS += -DMODE_DSSS
+endif
+
+$(warning ################# TARGET_PLATFORM: $(TARGET_PLATFORM))
+ifeq ($(strip $(TARGET_PLATFORM)), mt2731)
+$(warning ################# TARGET_PLATFORM_MT2731)
+    LOCAL_CFLAGS += -DTARGET_PLATFORM_MT2731 \
+                    -DMD_93_SUPPORT
+else ifeq ($(strip $(TARGET_PLATFORM)), mt2635)
+$(warning ################# TARGET_PLATFORM_MT2635)
+    LOCAL_CFLAGS += -DTARGET_PLATFORM_MT2635 \
+                    -DMD_90_SUPPORT
+endif
+
+$(warning ################# RITA ROOT: $(ROOT),includedir:$(includedir))
+LOCAL_PATH   = .
+
+LOCAL_C_INCLUDES = \
+  -I. \
+  -I$(LOCAL_PATH)/include \
+
+
+LOCAL_LIBS := \
+    -L. \
+    -ldl \
+    -lpthread \
+
+SOURCES = $(wildcard *.c wildcard *.h src/*.c)
+
+EXECUTABLE = liblynq-thermal.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/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c b/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c
new file mode 100755
index 0000000..0b3f3c0
--- /dev/null
+++ b/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c
@@ -0,0 +1,63 @@
+#include <sys/types.h>

+#include <dirent.h>

+#include <unistd.h>

+#include <stdio.h>

+#include <string.h>

+#include <fcntl.h>

+#include <stdlib.h>

+#include <unistd.h>

+#include "liblynq-thermal/lynq_get_thermal.h"

+

+

+char* lynq_read_version()

+{

+    return "THERMAL-V1.0";

+}

+

+int read_sys_info(char *sys_path, char *out_buf)

+{

+    int fd, ret;

+    char buf[LYNQ_THM_PATH] = "";

+    

+    if ((access(sys_path, F_OK)) == -1) 

+        return LYNQ_THM_ACCESS_ERROR;

+    

+    fd = open(sys_path, O_RDONLY);

+    

+    if (fd < 0)

+    {

+        printf("[%s-%d] open error!!!\n", __FUNCTION__, __LINE__);

+        return LYNQ_THM_OPEN_ERROR;

+    }

+    

+    ret = read(fd, buf, sizeof(buf));

+    memcpy(out_buf, buf, strlen(buf));

+

+    if(ret<0){

+        printf("[%s-%d] read error!!!\n", __FUNCTION__, __LINE__);

+        return LYNQ_THM_READ_ERROR;

+    }

+    close(fd);

+    

+    return LYNQ_THM_OK;

+}

+

+int lynq_get_zone_tmp(ZONE_NUM num, int *temp)

+{

+    char tz_path[LYNQ_THM_PATH] = "";

+    char buf[LYNQ_THM_PATH] = "";

+    

+    if(num < 0 && num > 19)

+    {

+        printf("[%s-%d] no such device,please reinput!!\n", __FUNCTION__, __LINE__);

+        return  LYNQ_THM_ZONE_ERROR;

+    }

+    sprintf(tz_path, "%s/%s%d/temp", TYPE_PATH_PRE, LYNQ_THM_ZONE_KEY, num);

+    int ret = read_sys_info(tz_path, buf);

+    if(!ret)

+    {

+        *temp = atoi(buf);

+    }

+    

+    return ret;

+}