remove robby sensor code

In Emerald, robby project's sensor code has been moved to
/vendor/intel/robby/sensors

Change-Id: Iff11b2f079ba47003637c9a3024f997da34b5b02
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 5d8471d..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2015 Intel Corp
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-ifeq ($(BOARD_USES_ROBBY_SENSOR), true)
-include $(call first-makefiles-under,$(LOCAL_PATH))
-endif
diff --git a/als/AlsSensor.cpp b/als/AlsSensor.cpp
deleted file mode 100644
index a0f8c1a..0000000
--- a/als/AlsSensor.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <fcntl.h>
-#include <errno.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <poll.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/select.h>
-#include <cutils/log.h>
-#include <cutils/properties.h>
-
-#include "AlsSensor.h"
-
-#define ALS_DATA_NAME "tsl2584 ambient light sensor"
-#define SYSFS_ENABLE_FILE "/sys/class/i2c-adapter/i2c-6/6-0029/als_enable"
-#define SYSFS_POLL_FILE "/sys/class/i2c-adapter/i2c-6/6-0029/als_delay"
-
-/*****************************************************************************/
-
-#define FIRST_GOOD_EVENT    1
-
-LightSensor::LightSensor()
-    : SensorBase(NULL, ALS_DATA_NAME),
-      mEnabled(0),
-      mEventsSinceEnable(0),
-      mInputReader(4),
-      mHasPendingEvent(false)
-{
-    mPendingEvent.version = sizeof(sensors_event_t);
-    mPendingEvent.sensor = ID_L;
-    mPendingEvent.type = SENSOR_TYPE_LIGHT;
-    memset(mPendingEvent.data, 0, sizeof(mPendingEvent.data));
-}
-
-LightSensor::~LightSensor() {
-    if (mEnabled) {
-        enable(0, 0);
-    }
-}
-
-int LightSensor::setDelay(int32_t /* handle */, int64_t ns)
-{
-    int fd;
-    int len, ms, ret = -1;
-    char buf[6];
-
-    ms = ns / 1000000;
-
-    fd = open(SYSFS_POLL_FILE, O_RDWR);
-    if (fd) {
-        len = 6;
-        memset(buf, 0, len);
-        snprintf(buf, len, "%d", ms);
-        write(fd, buf, sizeof(buf));
-        close(fd);
-        ret = 0;
-    } else
-        ALOGE("file  open failure\n");
-
-    return ret;
-}
-int LightSensor::enable(int32_t /* handle */, int en)
-{
-    int flags = en ? 1 : 0;
-
-    mEventsSinceEnable = 0;
-    mPreviousLight = -1;
-    if (flags != mEnabled) {
-        int fd;
-        fd = open(SYSFS_ENABLE_FILE, O_RDWR);
-        if (fd >= 0) {
-            char buf[2];
-            buf[1] = 0;
-            if (flags) {
-                buf[0] = '1';
-            } else {
-                buf[0] = '0';
-            }
-            write(fd, buf, sizeof(buf));
-            close(fd);
-            mEnabled = flags;
-            return 0;
-        }
-        return -1;
-    }
-
-    if (en)
-        mEnabled=1;
-    else
-        mEnabled=0;
-
-    return 0;
-}
-
-int LightSensor::isActivated(int /* handle */)
-{
-    return mEnabled;
-}
-
-#ifdef HAL_VERSION_GT_1_0
-int LightSensor::batch(int /* handle */, int /* flags */, int64_t period_ns, int64_t /* timeout */)
-{
-    int fd;
-    int len, ms, ret = -1;
-    char buf[6];
-
-    ms = period_ns / 1000000;
-
-    fd = open(SYSFS_POLL_FILE, O_RDWR);
-    if (fd) {
-       len = 6;
-       memset(buf, 0, len);
-       snprintf(buf, len, "%d", ms);
-       write(fd, buf, sizeof(buf));
-       close(fd);
-       ret = 0;
-    }
-    else
-        ALOGE("file  open failure\n");
-
-    return ret;
-}
-#endif
-
-bool LightSensor::hasPendingEvents() const {
-    return mHasPendingEvent;
-}
-
-int LightSensor::readEvents(sensors_event_t* data, int count)
-{
-    if (count < 1)
-        return -EINVAL;
-
-    if (mHasPendingEvent) {
-        mHasPendingEvent = false;
-        mPendingEvent.timestamp = getTimestamp();
-        *data = mPendingEvent;
-        return mEnabled ? 1 : 0;
-    }
-
-    ssize_t n = mInputReader.fill(data_fd);
-    if (n < 0)
-        return n;
-
-    int numEventReceived = 0;
-    input_event const* event;
-
-    while (count && mInputReader.readEvent(&event)) {
-        int type = event->type;
-        if (type == EV_MSC) {
-            if (event->code == EVENT_TYPE_LIGHT) {
-                 mPendingEvent.light = event->value;
-                 if (mEventsSinceEnable < FIRST_GOOD_EVENT)
-                    mEventsSinceEnable++;
-            }
-        } else if (type == EV_SYN) {
-            mPendingEvent.timestamp = timevalToNano(event->time);
-            if (mEnabled && (mPendingEvent.light != mPreviousLight) &&
-                    mEventsSinceEnable >= FIRST_GOOD_EVENT) {
-                *data++ = mPendingEvent;
-                count--;
-                numEventReceived++;
-                mPreviousLight = mPendingEvent.light;
-            }
-        } else {
-            ALOGE("LightSensor: unknown event (type=%d, code=%d)",
-                    type, event->code);
-        }
-        mInputReader.next();
-    }
-
-    return numEventReceived;
-}
diff --git a/als/AlsSensor.h b/als/AlsSensor.h
deleted file mode 100644
index 3bf726f..0000000
--- a/als/AlsSensor.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-
-#ifndef ANDROID_LIGHT_SENSOR_H
-#define ANDROID_LIGHT_SENSOR_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include "sensors.h"
-#include "SensorBase.h"
-#include "InputEventReader.h"
-
-/*****************************************************************************/
-/* the GP2A is a binary proximity sensor that triggers around 5 cm on
- * this hardware */
-#define PROXIMITY_THRESHOLD_GP2A  5.0f
-
-struct input_event;
-
-class LightSensor : public SensorBase {
-    int mEnabled;
-    int mEventsSinceEnable;
-    InputEventCircularReader mInputReader;
-    sensors_event_t mPendingEvent;
-    bool mHasPendingEvent;
-    char input_sysfs_path[PATH_MAX];
-    int input_sysfs_path_len;
-
-    int setInitialState();
-    float mPreviousLight;
-    float indexToValue(size_t index) const;
-
-public:
-            LightSensor();
-    virtual ~LightSensor();
-    virtual int readEvents(sensors_event_t* data, int count);
-    virtual bool hasPendingEvents() const;
-    virtual int setDelay(int32_t handle, int64_t ns);
-    virtual int enable(int32_t handle, int enabled);
-    virtual int isActivated(int handle);
-#ifdef HAL_VERSION_GT_1_0
-    virtual int batch(int handle, int flags, int64_t period_ns, int64_t timeout);
-#endif
-
-};
-
-/*****************************************************************************/
-
-#endif  // ANDROID_LIGHT_SENSOR_H
diff --git a/als/Android.mk b/als/Android.mk
deleted file mode 100644
index 9a1d5db..0000000
--- a/als/Android.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2015 Intel Corp
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-ifeq ($(USE_SENSOR_HAL_PREBUILTS),false)
-
-LOCAL_PATH := $(call my-dir)
-
-# HAL module implemenation, not prelinked, and stored in
-# hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.product.board>.so
-include $(CLEAR_VARS)
-
-# ANDROID version check
-MAJOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f1 -d.)
-MINOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f2 -d.)
-
-VERSION_JB := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 1 && echo true)
-VERSION_JB := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 2 && echo true)
-VERSION_JB_MR2 := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 3 && echo true)
-VERSION_KK := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 4 && echo true)
-VERSION_L := $(shell test $(MAJOR_VERSION) -eq 5 && echo true)
-VERSION_M := $(shell test $(MAJOR_VERSION) -eq 6 && echo true)
-#ANDROID version check END
-
-LOCAL_MODULE := sensor_als.robby
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
-
-LOCAL_MODULE_TAGS := optional
-# TODO: remove LOG_NDEBUG=0 for production builds, keep it during integration
-LOCAL_CFLAGS := -DLOG_TAG=\"LightSensor\" -DANDROID_VERSION=$(MAJOR_VERSION)
-
-ifeq ($(VERSION_JB),true)
-LOCAL_CFLAGS += -DANDROID_JB
-endif
-
-ifeq ($(VERSION_JBMR2),true)
-LOCAL_CFLAGS += -DANDROID_JBMR2
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-endif
-
-ifeq ($(VERSION_KK),true)
-LOCAL_CFLAGS += -DANDROID_KK
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-ifeq ($(VERSION_L),true)
-LOCAL_CFLAGS += -DANDROID_L
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-ifeq ($(VERSION_M),true)
-LOCAL_CFLAGS += -DANDROID_M
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-##LOCAL_C_INCLUDES += hardware/invensense/libsensors_iio
-LOCAL_SRC_FILES := \
-    sensors.cpp \
-    InputEventReader.cpp \
-    AlsSensor.cpp \
-    SensorBase.cpp
-
-LOCAL_SHARED_LIBRARIES := liblog libutils libdl
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # USE_SENSOR_HAL_PREBUILTS
diff --git a/als/InputEventReader.cpp b/als/InputEventReader.cpp
deleted file mode 100644
index 4799dfa..0000000
--- a/als/InputEventReader.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <poll.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/input.h>
-#include <cutils/log.h>
-#include "InputEventReader.h"
-
-/*****************************************************************************/
-
-struct input_event;
-
-InputEventCircularReader::InputEventCircularReader(size_t numEvents)
-    : mBuffer(new input_event[numEvents * 2]),
-      mBufferEnd(mBuffer + numEvents),
-      mHead(mBuffer),
-      mCurr(mBuffer),
-      mFreeSpace(numEvents)
-{
-    FUNC_LOG;
-    mLastFd = -1;
-}
-
-InputEventCircularReader::~InputEventCircularReader()
-{
-    FUNC_LOG;
-    delete [] mBuffer;
-}
-
-/* TODO: clear DEBUG flag on production builds, keep it during integration */
-#define INPUT_EVENT_DEBUG (0)
-ssize_t InputEventCircularReader::fill(int fd)
-{
-    FUNC_LOG;
-    size_t numEventsRead = 0;
-    mLastFd = fd;
-
-    LOGV_IF(INPUT_EVENT_DEBUG,
-            "DEBUG:%s enter, fd=%d\n", __PRETTY_FUNCTION__, fd);
-    if (mFreeSpace) {
-        const ssize_t nread = read(fd, mHead, mFreeSpace * sizeof(input_event));
-        if (nread < 0 || nread % sizeof(input_event)) {
-            if (INPUT_EVENT_DEBUG) {
-                LOGV_IF(nread < 0, "DEBUG:%s exit nread < 0\n",
-                        __PRETTY_FUNCTION__);
-                LOGV_IF(nread % sizeof(input_event),
-                        "DEBUG:%s exit nread %% sizeof(input_event)\n",
-                        __PRETTY_FUNCTION__);
-            }
-            return (nread < 0 ? -errno : -EINVAL);
-        }
-
-        numEventsRead = nread / sizeof(input_event);
-        if (numEventsRead) {
-            mHead += numEventsRead;
-            mFreeSpace -= numEventsRead;
-            if (mHead > mBufferEnd) {
-                size_t s = mHead - mBufferEnd;
-                memcpy(mBuffer, mBufferEnd, s * sizeof(input_event));
-                mHead = mBuffer + s;
-            }
-        }
-    }
-
-    LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s exit, numEventsRead:%d\n",
-            __PRETTY_FUNCTION__, numEventsRead);
-    return numEventsRead;
-}
-
-ssize_t InputEventCircularReader::readEvent(input_event const** events)
-{
-    FUNC_LOG;
-    *events = mCurr;
-    ssize_t available = (mBufferEnd - mBuffer) - mFreeSpace;
-    LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s fd:%d, available:%d\n",
-            __PRETTY_FUNCTION__, mLastFd, (int)available);
-    return (available ? 1 : 0);
-}
-
-void InputEventCircularReader::next()
-{
-    FUNC_LOG;
-    mCurr++;
-    mFreeSpace++;
-    if (mCurr >= mBufferEnd) {
-        mCurr = mBuffer;
-    }
-    ssize_t available = (mBufferEnd - mBuffer) - mFreeSpace;
-    LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s fd:%d, still available:%d\n",
-            __PRETTY_FUNCTION__, mLastFd, (int)available);
-}
-
diff --git a/als/InputEventReader.h b/als/InputEventReader.h
deleted file mode 100644
index ab09458..0000000
--- a/als/InputEventReader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#ifndef ANDROID_INPUT_EVENT_READER_H
-#define ANDROID_INPUT_EVENT_READER_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include "SensorBase.h"
-
-/*****************************************************************************/
-
-struct input_event;
-
-class InputEventCircularReader
-{
-    struct input_event* const mBuffer;
-    struct input_event* const mBufferEnd;
-    struct input_event* mHead;
-    struct input_event* mCurr;
-    ssize_t mFreeSpace;
-    int mLastFd;
-
-public:
-    InputEventCircularReader(size_t numEvents);
-    ~InputEventCircularReader();
-    ssize_t fill(int fd);
-    ssize_t readEvent(input_event const** events);
-    void next();
-};
-
-/*****************************************************************************/
-
-#endif  // ANDROID_INPUT_EVENT_READER_H
diff --git a/als/SensorBase.cpp b/als/SensorBase.cpp
deleted file mode 100644
index 20ab370..0000000
--- a/als/SensorBase.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <fcntl.h>
-#include <errno.h>
-#include <math.h>
-#include <poll.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/select.h>
-#include <cutils/log.h>
-#include <linux/input.h>
-
-#include "SensorBase.h"
-
-/*****************************************************************************/
-
-SensorBase::SensorBase(const char* dev_name,
-                       const char* data_name) : dev_name(dev_name),
-                                                data_name(data_name),
-                                                dev_fd(-1),
-                                                data_fd(-1)
-{
-    FUNC_LOG;
-    int ret;
-    unsigned int clockId;
-    ALOGV("%s(): dev_name=%s, data_name=%s ", __func__, dev_name, data_name);
-
-    if (data_name) {
-        data_fd = openInput(data_name);
-        if (data_fd >= 0) {
-            clockId = CLOCK_BOOTTIME;
-            ret = ioctl(data_fd, EVIOCSCLOCKID, &clockId);
-            if (ret != 0)
-               ALOGE("set timestamp to CLOCK_BOOTTIME failed!");
-        }
-    }
-}
-
-SensorBase::~SensorBase() {
-    FUNC_LOG;
-    if (data_fd >= 0) {
-        close(data_fd);
-    }
-    if (dev_fd >= 0) {
-        close(dev_fd);
-    }
-}
-
-int SensorBase::open_device() {
-    FUNC_LOG;
-    if (dev_fd<0 && dev_name) {
-        dev_fd = open(dev_name, O_RDONLY);
-        LOGE_IF(dev_fd<0, "Couldn't open %s (%s)", dev_name, strerror(errno));
-    }
-    return 0;
-}
-
-int SensorBase::close_device() {
-    FUNC_LOG;
-    if (dev_fd >= 0) {
-        close(dev_fd);
-        dev_fd = -1;
-    }
-    return 0;
-}
-
-int SensorBase::getFd() const {
-    FUNC_LOG;
-    if (!data_name) {
-        return dev_fd;
-    }
-    return data_fd;
-}
-
-int SensorBase::setDelay(int32_t /* handle */, int64_t /* ns */) {
-    FUNC_LOG;
-    return 0;
-}
-
-bool SensorBase::hasPendingEvents() const {
-    FUNC_LOG;
-    return false;
-}
-
-int64_t SensorBase::getTimestamp() {
-    FUNC_LOG;
-    struct timespec t;
-    t.tv_sec = t.tv_nsec = 0;
-    clock_gettime(CLOCK_BOOTTIME, &t);
-    return int64_t(t.tv_sec) * 1000000000LL + t.tv_nsec;
-}
-
-int SensorBase::openInput(const char* inputName) {
-    FUNC_LOG;
-    int fd = -1;
-    const char *dirname = "/dev/input";
-    char devname[PATH_MAX];
-    char *filename;
-    DIR *dir;
-    struct dirent *de;
-    dir = opendir(dirname);
-    if(dir == NULL)
-        return -1;
-    strcpy(devname, dirname);
-    filename = devname + strlen(devname);
-    *filename++ = '/';
-    while((de = readdir(dir))) {
-        if(de->d_name[0] == '.' &&
-                (de->d_name[1] == '\0' ||
-                        (de->d_name[1] == '.' && de->d_name[2] == '\0')))
-            continue;
-        strcpy(filename, de->d_name);
-        fd = open(devname, O_RDONLY);
-        LOGV_IF(EXTRA_VERBOSE, "path open %s", devname);
-        LOGI("path open %s", devname);
-        if (fd >= 0) {
-            char name[80];
-            if (ioctl(fd, EVIOCGNAME(sizeof(name) - 1), &name) < 1) {
-                name[0] = '\0';
-            }
-            LOGV_IF(EXTRA_VERBOSE, "name read %s", name);
-            if (!strncmp(name, inputName, strlen(inputName))) {
-                break;
-            } else {
-                close(fd);
-                fd = -1;
-            }
-        }
-    }
-    closedir(dir);
-    LOGE_IF(fd < 0, "couldn't find '%s' input device", inputName);
-    return fd;
-}
-
-int SensorBase::enable(int32_t /* handle */, int /* enabled */)
-{
-    FUNC_LOG;
-    return 0;
-}
-
-int SensorBase::isActivated(int /* handle */)
-{
-    FUNC_LOG;
-    return 0;
-}
-
-#ifdef HAL_VERSION_GT_1_0
-int SensorBase::batch(int /* handle */, int /* flags */, int64_t /* period_ns */, int64_t /* timeout */)
-{
-    FUNC_LOG;
-    return 0;
-}
-#endif
diff --git a/als/SensorBase.h b/als/SensorBase.h
deleted file mode 100644
index 78b7c38..0000000
--- a/als/SensorBase.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#ifndef ANDROID_SENSOR_BASE_H
-#define ANDROID_SENSOR_BASE_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#if ANDROID_VERSION >= 5
-/* #warning "build for Wear" */
-#define LOGV_IF ALOGV_IF
-#define LOGE_IF ALOGE_IF
-#define LOGI_IF ALOGI_IF
-#define LOGI    ALOGI
-#define LOGE    ALOGE
-#define LOGV    ALOGV
-#define LOGW    ALOGW
-#else
-#warning "build for ICS or earlier version"
-#endif
-
-/* Log enablers, each of these independent */
-
-/* TODO: clear all logging below on production build, keep it during integration */
-#define PROCESS_VERBOSE (1) /* process log messages */
-#define EXTRA_VERBOSE   (1) /* verbose log messages */
-#define SYSFS_VERBOSE   (1) /* log sysfs interactions as cat/echo for repro
-                               purpose on a shell */
-#define FUNC_ENTRY      (1) /* log entry in all one-time functions */
-
-/* Note that enabling this logs may affect performance */
-#define HANDLER_ENTRY   (1) /* log entry in all handler functions */
-#define ENG_VERBOSE     (1) /* log some a lot more info about the internals */
-#define INPUT_DATA      (1) /* log the data input from the events */
-#define HANDLER_DATA    (1) /* log the data fetched from the handlers */
-
-#define FUNC_LOG \
-            LOGV("%s (hardware/intel/sensors/als)", __PRETTY_FUNCTION__)
-#define VFUNC_LOG \
-            LOGV_IF(FUNC_ENTRY, "Entering function '%s' (hardware/intel/sensors/als)", __PRETTY_FUNCTION__)
-#define VHANDLER_LOG \
-            LOGV_IF(HANDLER_ENTRY, "Entering handler '%s' (hardware/intel/sensors/als)", __PRETTY_FUNCTION__)
-#define CALL_MEMBER_FN(pobject, ptrToMember) ((pobject)->*(ptrToMember))
-
-#define MAX_SYSFS_NAME_LEN  (100)
-#define IIO_BUFFER_LENGTH   (480)
-
-/*****************************************************************************/
-
-struct sensors_event_t;
-
-class SensorBase {
-protected:
-    const char *dev_name;
-    const char *data_name;
-    int dev_fd;
-    int data_fd;
-
-    int openInput(const char* inputName);
-    static int64_t getTimestamp();
-    static int64_t timevalToNano(timeval const& t) {
-        return t.tv_sec * 1000000000LL + t.tv_usec * 1000;
-    }
-
-    int open_device();
-    int close_device();
-
-public:
-            SensorBase(const char* dev_name, const char* data_name);
-
-    virtual ~SensorBase();
-
-    virtual int readEvents(sensors_event_t* data, int count) = 0;
-    virtual bool hasPendingEvents() const;
-    virtual int getFd() const;
-    virtual int setDelay(int32_t handle, int64_t ns);
-    virtual int enable(int32_t handle, int enabled);
-    virtual int isActivated(int handle);
-#ifdef HAL_VERSION_GT_1_0
-    virtual int batch(int handle, int flags, int64_t period_ns, int64_t timeout);
-#endif
-};
-
-/*****************************************************************************/
-
-#endif  // ANDROID_SENSOR_BASE_H
diff --git a/als/sensors.cpp b/als/sensors.cpp
deleted file mode 100644
index 76a4537..0000000
--- a/als/sensors.cpp
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <hardware/sensors.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <dirent.h>
-#include <math.h>
-#include <poll.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <string.h>
-#include <linux/input.h>
-#include <utils/Atomic.h>
-#include <utils/Log.h>
-
-#include "sensors.h"
-#include "AlsSensor.h"
-
-/*****************************************************************************/
-
-#define DELAY_OUT_TIME          0x7FFFFFFF
-#define LIGHT_SENSOR_POLLTIME   2000000000
-
-#define SENSORS_LIGHT_HANDLE    (ID_L)
-#define SENSORS_TILT_HANDLE     (ID_T)
-/*****************************************************************************/
-
-/* The SENSORS Module */
-static struct sensor_t sSensorList[] = {
-        { "TSL2584 Ambient light sensor",
-          "ams, ltd.",
-          1, SENSORS_LIGHT_HANDLE,
-          SENSOR_TYPE_LIGHT, 65535.0f, 1.0f, 0.015f,
-          0, 0, 0, SENSOR_STRING_TYPE_LIGHT, NULL,
-          5000000, SENSOR_FLAG_ON_CHANGE_MODE, { } },
-};
-
-static int open_sensors(const struct hw_module_t* module, const char* id,
-                        struct hw_device_t** device);
-
-
-static int sensors__get_sensors_list(struct sensors_module_t* /* module */,
-                                     struct sensor_t const** list)
-{
-    *list = sSensorList;
-    return ARRAY_SIZE(sSensorList);
-}
-
-static struct hw_module_methods_t sensors_module_methods = {
-        open: open_sensors
-};
-
-struct sensors_module_t HAL_MODULE_INFO_SYM = {
-        common: {
-                tag: HARDWARE_MODULE_TAG,
-                version_major: 1,
-                version_minor: 0,
-                id: SENSORS_HARDWARE_MODULE_ID,
-                name: "Intel MVN Sensor module",
-                author: "Intel MVN Company",
-                methods: &sensors_module_methods,
-                dso: 0,
-                reserved: {},
-        },
-        get_sensors_list: sensors__get_sensors_list,
-};
-
-struct sensors_poll_context_t {
-#ifdef HAL_VERSION_GE_1_0
-    struct sensors_poll_device_1 device; // must be first
-#else
-    struct sensors_poll_device_t device; // must be first
-#endif
-    sensors_poll_context_t();
-    ~sensors_poll_context_t();
-    int activate(int handle, int enabled);
-    int setDelay(int handle, int64_t ns);
-#ifdef HAL_VERSION_GT_1_0
-    int batch(int handle, int flags, int64_t period_ns, int64_t timeout);
-    int flush(int handle);
-#endif
-    int pollEvents(sensors_event_t* data, int count);
-    bool getInitialized() { return mInitialized; };
-
-private:
-    bool mInitialized;
-
-    enum {
-        light = 0,
-        numSensorDrivers,       /* wake pipe goes here */
-        flushPipe,              /* flush pipe goes here */
-        numFds,
-    };
-
-    static const size_t wake = numFds - 2;
-    static const char WAKE_MESSAGE = 'W';
-    struct pollfd mPollFds[numFds];
-    int mWritePipeFd;
-    int mFlushWritePipeFd;
-    SensorBase* mSensors[numSensorDrivers];
-
-    int handleToDriver(int handle) const {
-        switch (handle) {
-            case ID_L:
-                return light;
-        }
-        return -EINVAL;
-    }
-};
-
-/*****************************************************************************/
-
-sensors_poll_context_t::sensors_poll_context_t()
-{
-    FUNC_LOG;
-    mInitialized = false;
-    /* Must clean this up early or else the destructor will make a mess */
-    memset(mSensors, 0, sizeof(mSensors));
-
-    mSensors[light] = new LightSensor();
-    mPollFds[light].fd = mSensors[light]->getFd();
-    mPollFds[light].events = POLLIN;
-    mPollFds[light].revents = 0;
-
-    int wakeFds[2];
-    int result = pipe(wakeFds);
-    ALOGE_IF(result<0, "error creating wake pipe (%s)", strerror(errno));
-    result = fcntl(wakeFds[0], F_SETFL, O_NONBLOCK);
-    ALOGE_IF(result<0, "error setting wakeFds[0] access mode (%s)", strerror(errno));
-    result = fcntl(wakeFds[1], F_SETFL, O_NONBLOCK);
-    ALOGE_IF(result<0, "error setting wakeFds[1] access mode (%s)", strerror(errno));
-    mWritePipeFd = wakeFds[1];
-
-    mPollFds[wake].fd = wakeFds[0];
-    mPollFds[wake].events = POLLIN;
-    mPollFds[wake].revents = 0;
-
-    int flushFds[2];
-    result = pipe(flushFds);
-    ALOGE_IF(result<0, "error creating flush pipe (%s)", strerror(errno));
-    result = fcntl(flushFds[0], F_SETFL, O_NONBLOCK);
-    ALOGE_IF(result<0, "error setting flushFds[0] access mode (%s)", strerror(errno));
-    result = fcntl(flushFds[1], F_SETFL, O_NONBLOCK);
-    ALOGE_IF(result<0, "error setting flushFds[1] access mode (%s)", strerror(errno));
-    mFlushWritePipeFd = flushFds[1];
-
-    mPollFds[flushPipe].fd = flushFds[0];
-    mPollFds[flushPipe].events = POLLIN;
-    mPollFds[flushPipe].revents = 0;
-    mInitialized = true;
-}
-
-sensors_poll_context_t::~sensors_poll_context_t()
-{
-    FUNC_LOG;
-    for (int i=0 ; i<numSensorDrivers ; i++) {
-        delete mSensors[i];
-    }
-    close(mPollFds[wake].fd);
-    close(mWritePipeFd);
-    close(mPollFds[flushPipe].fd);
-    close(mFlushWritePipeFd);
-    mInitialized = false;
-}
-
-int sensors_poll_context_t::activate(int handle, int enabled)
-{
-    FUNC_LOG;
-    if (!mInitialized) return -EINVAL;
-    int index = handleToDriver(handle);
-    if (index < 0) return index;
-    int err =  mSensors[index]->enable(handle, enabled);
-    if (!err) {
-        const char wakeMessage(WAKE_MESSAGE);
-        int result = write(mWritePipeFd, &wakeMessage, 1);
-        ALOGE_IF(result<0, "error sending wake message (%s)", strerror(errno));
-    }
-    return err;
-}
-
-int sensors_poll_context_t::setDelay(int handle, int64_t ns)
-{
-    FUNC_LOG;
-    int index = handleToDriver(handle);
-    if (index < 0) return index;
-    return mSensors[index]->setDelay(handle, ns);
-}
-
-#ifdef HAL_VERSION_GT_1_0
-int sensors_poll_context_t::batch(int handle, int flags, int64_t period_ns, int64_t timeout)
-{
-    FUNC_LOG;
-    int index = handleToDriver(handle);
-    if (index < 0) return index;
-    return mSensors[index]->batch(handle, flags, period_ns, timeout);
-}
-
-int sensors_poll_context_t::flush(int handle)
-{
-    FUNC_LOG;
-    int result;
-    sensors_event_t flush_event_data;
-
-    int index = handleToDriver(handle);
-    if (index < 0) return index;
-
-    result = mSensors[index]->isActivated(handle);
-    if (!result)
-        return -EINVAL;
-
-    flush_event_data.sensor = 0;
-    flush_event_data.timestamp = 0;
-    flush_event_data.meta_data.sensor = handle;
-    flush_event_data.meta_data.what = META_DATA_FLUSH_COMPLETE;
-    flush_event_data.type = SENSOR_TYPE_META_DATA;
-    flush_event_data.version = META_DATA_VERSION;
-
-    result = write(mFlushWritePipeFd, &flush_event_data, sizeof(sensors_event_t));
-    ALOGE_IF(result<0, "error sending flush event data (%s)", strerror(errno));
-
-    return (result >= 0 ? 0 : result);
-}
-#endif
-
-int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
-{
-    FUNC_LOG;
-    int nbEvents = 0;
-    int n = 0;
-    do {
-        for (int i=0 ; count && i<numSensorDrivers; i++) {
-            SensorBase* const sensor(mSensors[i]);
-            if ((mPollFds[i].revents & POLLIN) || (sensor->hasPendingEvents())) {
-                int nb;
-                nb = sensor->readEvents(data, count);
-                if (nb < count) {
-                    mPollFds[i].revents = 0;
-                }
-                count -= nb;
-                nbEvents += nb;
-                data += nb;
-            }
-        }
-
-        /* flush event data */
-        if (count) {
-            if (mPollFds[flushPipe].revents & POLLIN) {
-                int nb = read(mPollFds[flushPipe].fd, data, count * sizeof(sensors_event_t));
-                if (nb < 0) {
-                    ALOGE("error reading from flush pipe (%s)", strerror(errno));
-                    return -errno;
-                }
-                nb = nb/sizeof(sensors_event_t);
-                mPollFds[flushPipe].revents = 0;
-                count -= nb;
-                nbEvents += nb;
-                data += nb;
-            }
-        }
-
-        if (count) {
-            ALOGV("%s: start poll syscall to kernel", __func__);
-            n = poll(mPollFds, numFds, nbEvents ? 0 : -1);
-            if (n < 0) {
-                ALOGE("poll() failed (%s)", strerror(errno));
-                return -errno;
-            }
-
-            if (mPollFds[wake].revents & POLLIN) {
-                char msg;
-                int result = read(mPollFds[wake].fd, &msg, 1);
-                ALOGE_IF(result<0, "error reading from wake pipe (%s)", strerror(errno));
-                ALOGE_IF(msg != WAKE_MESSAGE, "unknown message on wake queue (0x%02x)", int(msg));
-                mPollFds[wake].revents = 0;
-            }
-        }
-    } while (n && count);
-    return nbEvents;
-}
-
-/*****************************************************************************/
-
-static int poll__close(struct hw_device_t *dev)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    if (ctx) {
-        delete ctx;
-    }
-    return 0;
-}
-
-static int poll__activate(struct sensors_poll_device_t *dev,
-                          int handle, int enabled)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    return ctx->activate(handle, enabled);
-}
-
-static int poll__setDelay(struct sensors_poll_device_t *dev,
-                          int handle, int64_t ns)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    return ctx->setDelay(handle, ns);
-}
-
-#ifdef HAL_VERSION_GT_1_0
-static int poll__batch(struct sensors_poll_device_1 *dev,
-                       int handle, int flags, int64_t period_ns, int64_t timeout)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    return ctx->batch(handle, flags, period_ns, timeout);
-}
-
-static int poll_flush(struct sensors_poll_device_1 *dev, int handle)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    return ctx->flush(handle);
-}
-#endif
-
-static int poll__poll(struct sensors_poll_device_t *dev,
-                      sensors_event_t* data, int count)
-{
-    FUNC_LOG;
-    sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-    return ctx->pollEvents(data, count);
-}
-
-/*****************************************************************************/
-
-/** Open a new instance of a sensor device using name */
-static int open_sensors(const struct hw_module_t* module, const char* id,
-                        struct hw_device_t** device)
-{
-    FUNC_LOG;
-    int status = -EINVAL;
-    sensors_poll_context_t *dev = new sensors_poll_context_t();
-
-    if (!dev->getInitialized()) {
-        ALOGE("Failed to open the sensors (%s)", id);
-        return status;
-    }
-#ifdef HAL_VERSION_GE_1_0
-    memset(&dev->device, 0, sizeof(sensors_poll_device_1));
-#else
-    memset(&dev->device, 0, sizeof(sensors_poll_device_t));
-#endif
-
-    dev->device.common.tag = HARDWARE_DEVICE_TAG;
-#ifdef ANDROID_KK
-    dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_1;
-#elif defined(ANDROID_JBMR2)
-    dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_0;
-#else
-    dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_3;
-#endif
-    dev->device.common.module   = const_cast<hw_module_t*>(module);
-    dev->device.common.close    = poll__close;
-    dev->device.activate        = poll__activate;
-    dev->device.setDelay        = poll__setDelay;
-#ifdef HAL_VERSION_GT_1_0
-    dev->device.batch           = poll__batch;
-    dev->device.flush           = poll_flush;
-#endif
-    dev->device.poll            = poll__poll;
-
-    *device = &dev->device.common;
-    status = 0;
-
-    return status;
-}
diff --git a/als/sensors.h b/als/sensors.h
deleted file mode 100644
index 2e8685a..0000000
--- a/als/sensors.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_INTELNDG_SENSORS_H
-#define ANDROID_INTELNDG_SENSORS_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/input.h>
-#include <hardware/hardware.h>
-#include <hardware/sensors.h>
-
-__BEGIN_DECLS
-
-/*****************************************************************************/
-
-#define ARRAY_SIZE(a)       (sizeof(a) / sizeof(a[0]))
-
-#define ID_INTELNDG_BASE    (0x1000)
-/* light sensor ID */
-#define ID_L                (ID_INTELNDG_BASE)
-/* tilt sensor ID */
-#define ID_T                (ID_L + 1)
-
-/*****************************************************************************/
-
-/*
- * The SENSORS Module
- */
-
-/*****************************************************************************/
-/* the GP2A is a binary proximity sensor that triggers around 5 cm on
- * this hardware */
-#define PROXIMITY_THRESHOLD_GP2A    5.0f
-
-/* input event code for light sensor */
-#define EVENT_TYPE_LIGHT            MSC_RAW
-/*****************************************************************************/
-
-__END_DECLS
-
-#endif  /* ANDROID_INTELNDG_SENSORS_H */
diff --git a/libsensors_iio/.config b/libsensors_iio/.config
deleted file mode 100644
index 2c2d62d..0000000
--- a/libsensors_iio/.config
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# SensorHAL IIO Configuration
-#
-CONFIG_ST_HAL_ANDROID_VERSION=1
-CONFIG_ST_HAL_HAS_6AX_FUSION=y
-# CONFIG_ST_HAL_HAS_9AX_FUSION is not set
-# CONFIG_ST_HAL_HAS_GEOMAG_FUSION is not set
-# CONFIG_ST_HAL_HAS_MAGN_CALIB is not set
-# CONFIG_ST_HAL_HAS_GYRO_GBIAS_ESTIMATION is not set
-# CONFIG_ST_HAL_HAS_TILT_FU_FD is not set
-
-#
-# Enable/disable sensors
-#
-CONFIG_ST_HAL_ACCEL_ENABLED=y
-CONFIG_ST_HAL_MAGN_ENABLED=y
-CONFIG_ST_HAL_GYRO_ENABLED=y
-CONFIG_ST_HAL_MAGN_UNCALIB_DISABLED=y
-CONFIG_ST_HAL_GYRO_UNCALIB_DISABLED=y
-CONFIG_ST_HAL_SIGN_MOTION_ENABLED=y
-CONFIG_ST_HAL_STEP_DETECTOR_ENABLED=y
-CONFIG_ST_HAL_STEP_COUNTER_ENABLED=y
-# CONFIG_ST_HAL_TILT_ENABLED is not set
-# CONFIG_ST_HAL_PRESSURE_ENABLED is not set
-CONFIG_ST_HAL_ORIENTATION_DISABLED=y
-# CONFIG_ST_HAL_GRAVITY_DISABLED is not set
-CONFIG_ST_HAL_GRAVITY_AP_ENABLED=y
-# CONFIG_ST_HAL_LINEAR_DISABLED is not set
-CONFIG_ST_HAL_LINEAR_AP_ENABLED=y
-CONFIG_ST_HAL_ROT_VECTOR_DISABLED=y
-CONFIG_ST_HAL_GAME_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED is not set
-CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_DISABLED=y
-
-#
-# Common configuration
-#
-CONFIG_ST_HAL_MAX_SAMPLING_FREQUENCY=200
-CONFIG_ST_HAL_DEBUG_LEVEL=0
-CONFIG_ST_HAL_ACCEL_ROT_MATRIX="1,0,0,0,-1,0,0,0,-1"
-CONFIG_ST_HAL_ACCEL_RANGE=17
-CONFIG_ST_HAL_MAGN_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_MAGN_RANGE=1000
-CONFIG_ST_HAL_GYRO_ROT_MATRIX="1,0,0,0,-1,0,0,0,-1"
-CONFIG_ST_HAL_GYRO_RANGE=35
-
-#
-# SensorFusion configuration
-#
-CONFIG_ST_HAL_MIN_FUSION_POLLRATE=50
-CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL="86999e-9"
-CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_GYRO="114999e-9"
-
-#
-# IIO supported sensors
-#
-CONFIG_ST_HAL_LSM6DS3_ENABLED=y
diff --git a/libsensors_iio/Android.mk b/libsensors_iio/Android.mk
deleted file mode 100644
index 8bb9e95..0000000
--- a/libsensors_iio/Android.mk
+++ /dev/null
@@ -1,113 +0,0 @@
-#
-# Copyright (C) 2013-2015 STMicroelectronics
-# Denis Ciocca - Motion MEMS Product Div.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#/
-
-ifneq ($(TARGET_SIMULATOR),true)
-
-CURRENT_DIRECTORY := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-MAJOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f1 -d.)
-MINOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f2 -d.)
-
-VERSION_KK := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 4 && echo true)
-VERSION_L := $(shell test $(MAJOR_VERSION) -eq 5 && echo true)
-
-ifeq ($(VERSION_KK),true)
-export ST_HAL_ANDROID_VERSION=0
-DEFCONFIG := android_KK_defconfig
-endif
-ifeq ($(VERSION_L),true)
-export ST_HAL_ANDROID_VERSION=1
-DEFCONFIG := android_L_defconfig
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/FUFD_CustomTilt/FUFD_CustomTilt*)","")
-export ST_HAL_HAS_FDFD_LIB=y
-else
-export ST_HAL_HAS_FDFD_LIB=n
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/iNemoEngine_gbias_Estimation/iNemoEngine_gbias_Estimation*)","")
-export ST_HAL_HAS_GBIAS_LIB=y
-else
-export ST_HAL_HAS_GBIAS_LIB=n
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/iNemoEngine_GeoMag_Fusion/iNemoEngine_GeoMag_Fusion*)","")
-export ST_HAL_HAS_GEOMAG_LIB=y
-else
-export ST_HAL_HAS_GEOMAG_LIB=n
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/iNemoEngine_SensorFusion/iNemoEngine_SensorFusion*)","")
-export ST_HAL_HAS_9X_LIB=y
-else
-export ST_HAL_HAS_9X_LIB=n
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/vSensorFusion/vSensorFusion*)","")
-export ST_HAL_HAS_6X_LIB=y
-else
-export ST_HAL_HAS_6X_LIB=n
-endif
-
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/lib/STCompass/STCompass*)","")
-export ST_HAL_HAS_COMPASS_LIB=y
-else
-export ST_HAL_HAS_COMPASS_LIB=n
-endif
-
-export ST_HAL_PATH=$(CURRENT_DIRECTORY)
-
-all_modules:
-ifeq (${menuconfig},y)
-ifeq ("$(wildcard $(CURRENT_DIRECTORY)/.config)","")
-$(error .config file not found! use `mm defconfig=y` first.)
-endif
-
-	gcc -o $(CURRENT_DIRECTORY)/tools/mkconfig $(CURRENT_DIRECTORY)/tools/mkconfig.c $(CURRENT_DIRECTORY)/tools/cfgdefine.c
-	$(CURRENT_DIRECTORY)/tools/kconfig-mconf $(CURRENT_DIRECTORY)/Kconfig
-	$(CURRENT_DIRECTORY)/tools/mkconfig $(CURRENT_DIRECTORY)/ > $(CURRENT_DIRECTORY)/configuration.h
-else
-ifeq (${defconfig},y)
-	cp $(CURRENT_DIRECTORY)/src/$(DEFCONFIG) $(CURRENT_DIRECTORY)/.config
-	$(CURRENT_DIRECTORY)/tools/mkconfig $(CURRENT_DIRECTORY)/ > $(CURRENT_DIRECTORY)/configuration.h
-else
-ifeq (${clean},y)
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/.config)","")
-	rm $(CURRENT_DIRECTORY)/.config
-endif
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/configuration.h)","")
-	rm $(CURRENT_DIRECTORY)/configuration.h
-endif
-ifneq ("$(wildcard $(CURRENT_DIRECTORY)/.config.old)","")
-	rm $(CURRENT_DIRECTORY)/.config.old
-endif
-else
-ifeq ("$(wildcard $(CURRENT_DIRECTORY)/.config)","")
-$(error .config file not found! use `mm defconfig=y` first.)
-endif
-
-$(shell $(CURRENT_DIRECTORY)/tools/mkconfig $(CURRENT_DIRECTORY)/ > $(CURRENT_DIRECTORY)/configuration.h)
-include $(call all-makefiles-under, $(CURRENT_DIRECTORY))
-
-endif
-endif
-endif
-
-endif # !TARGET_SIMULATOR
diff --git a/libsensors_iio/Kconfig b/libsensors_iio/Kconfig
deleted file mode 100644
index 243d81e..0000000
--- a/libsensors_iio/Kconfig
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see tools/kconfig-language.txt.
-#
-
-mainmenu "SensorHAL IIO Configuration"
-
-config ST_HAL_PATH
-	string
-	option env="ST_HAL_PATH"
-
-config ENV_ANDROID_VERSION
-	int
-	option env="ST_HAL_ANDROID_VERSION"
-
-if (ENV_ANDROID_VERSION = 0)
-config ST_HAL_ANDROID_VERSION
-	int
-	default 0
-endif
-if (ENV_ANDROID_VERSION = 1)
-config ST_HAL_ANDROID_VERSION
-	int
-	default 1
-endif
-
-
-config ST_HAL_HAS_6AX_FUSION_CHECK
-	bool
-	option env="ST_HAL_HAS_6X_LIB"
-
-config ST_HAL_HAS_9AX_FUSION_CHECK
-	bool
-	option env="ST_HAL_HAS_9X_LIB"
-
-config ST_HAL_HAS_GEOMAG_FUSION_CHECK
-	bool
-	option env="ST_HAL_HAS_GEOMAG_LIB"
-
-config ST_HAL_HAS_MAGN_CALIB_CHECK
-	bool
-	option env="ST_HAL_HAS_COMPASS_LIB"
-
-config ST_HAL_HAS_GYRO_GBIAS_ESTIMATION_CHECK
-	bool
-	option env="ST_HAL_HAS_GBIAS_LIB"
-
-config ST_HAL_HAS_TILT_FU_FD_CHECK
-	bool
-	option env="ST_HAL_HAS_FDFD_LIB"
-
-
-config ST_HAL_HAS_6AX_FUSION
-	bool
-	default ST_HAL_HAS_6AX_FUSION_CHECK
-
-config ST_HAL_HAS_9AX_FUSION
-	bool
-	default ST_HAL_HAS_9AX_FUSION_CHECK
-
-config ST_HAL_HAS_GEOMAG_FUSION
-	bool
-	default ST_HAL_HAS_GEOMAG_FUSION_CHECK
-
-config ST_HAL_HAS_MAGN_CALIB
-	bool
-	default ST_HAL_HAS_MAGN_CALIB_CHECK
-
-config ST_HAL_HAS_GYRO_GBIAS_ESTIMATION
-	bool
-	default ST_HAL_HAS_GYRO_GBIAS_ESTIMATION_CHECK
-
-config ST_HAL_HAS_TILT_FU_FD
-	bool
-	default ST_HAL_HAS_TILT_FU_FD_CHECK
-
-source "$ST_HAL_PATH/Kconfig_menu/Kconfig_enable_sensors"
-source "$ST_HAL_PATH/Kconfig_menu/Kconfig_common"
-source "$ST_HAL_PATH/Kconfig_menu/Kconfig_fusion_config"
-source "$ST_HAL_PATH/Kconfig_menu/Kconfig_drivers"
diff --git a/libsensors_iio/Kconfig_menu/Kconfig_common b/libsensors_iio/Kconfig_menu/Kconfig_common
deleted file mode 100644
index 697aa5f..0000000
--- a/libsensors_iio/Kconfig_menu/Kconfig_common
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Common configuration
-#
-
-menu "Common configuration"
-config ST_HAL_MAX_SAMPLING_FREQUENCY
-	int "Max sampling frequency selectable [Hz]"
-	range 50 400
-	default 200
-	help
-	  Maximium value of sampling frequency that can be used in IIO driver.
-
-config ST_HAL_DEBUG_LEVEL
-	int "Debug level"
-	range 0 3
-	default 0
-	help
-	  Debugging information level. [0 - 3]
-	  0: error only;
-	  1: info messages;
-	  2: verbose;
-	  3: extra-verbose;
-
-if ST_HAL_ACCEL_ENABLED
-config ST_HAL_ACCEL_ROT_MATRIX
-	string "Accelerometer Rotation matrix"
-	default "1,0,0,0,1,0,0,0,1"
-
-config ST_HAL_ACCEL_RANGE
-	int "Accelerometer Max Range (m/s^2)"
-	default 17
-
-endif
-
-if ST_HAL_MAGN_ENABLED || ST_HAL_MAGN_UNCALIB_HW_ENABLED
-config ST_HAL_MAGN_ROT_MATRIX
-	string "Magnetometer Rotation matrix"
-	default "1,0,0,0,1,0,0,0,1"
-
-config ST_HAL_MAGN_RANGE
-	int "Magnetometer Max Range (uTesla)"
-	default 1000
-
-endif
-
-if ST_HAL_GYRO_ENABLED || ST_HAL_GYRO_UNCALIB_HW_ENABLED
-config ST_HAL_GYRO_ROT_MATRIX
-	string "Gyroscope Rotation matrix"
-	default "1,0,0,0,1,0,0,0,1"
-
-config ST_HAL_GYRO_RANGE
-	int "Gyroscope Max Range (rad/sec)"
-	default 35
-
-endif
-
-endmenu # Common configuration
diff --git a/libsensors_iio/Kconfig_menu/Kconfig_drivers b/libsensors_iio/Kconfig_menu/Kconfig_drivers
deleted file mode 100644
index c45c70c..0000000
--- a/libsensors_iio/Kconfig_menu/Kconfig_drivers
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# IIO drivers configuration
-#
-
-menu "IIO supported sensors"
-
-config ST_HAL_LSM6DS3_ENABLED
-	bool "LSM6DS3 sensor"
-	default y
-	help
-	  Enable support for LSM6DS3 sensor.
-
-endmenu # IIO drivers configuration
diff --git a/libsensors_iio/Kconfig_menu/Kconfig_enable_sensors b/libsensors_iio/Kconfig_menu/Kconfig_enable_sensors
deleted file mode 100644
index 740f88a..0000000
--- a/libsensors_iio/Kconfig_menu/Kconfig_enable_sensors
+++ /dev/null
@@ -1,192 +0,0 @@
-#
-# Enable/Disable sensors
-#
-
-menu "Enable/disable sensors"
-config ST_HAL_ACCEL_ENABLED
-	bool "Accelerometer sensor"
-	default y
-	help
-	  Enable support for Accelerometer sensor.
-
-config ST_HAL_MAGN_ENABLED
-	bool "Magnetometer sensor"
-	default y
-	help
-	  Enable support for Magnetometer sensor.
-
-if ST_HAL_MAGN_ENABLED && ST_HAL_HAS_MAGN_CALIB
-config ST_HAL_MAGN_CALIB_ENABLED
-	bool "Enable Magnetometer calibration Library"
-	depends on ST_HAL_ACCEL_ENABLED
-	default n
-	help
-	  Enable Magnetometer calibration library on Software by Application Processor Library.
-
-endif
-
-config ST_HAL_GYRO_ENABLED
-	bool "Gyroscope sensor"
-	default y
-	help
-	  Enable support for Gyroscope sensor.
-
-if ST_HAL_GYRO_ENABLED && ST_HAL_HAS_GYRO_GBIAS_ESTIMATION
-config ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	bool "Enable Gyroscope gbias estimation Library"
-	depends on ST_HAL_ACCEL_ENABLED
-	default n
-	help
-	  Enable Gyroscope bias library estimation on Software by Application Processor Library.
-
-endif
-
-choice
-	prompt "Magnetometer Uncalibrated sensor"
-	default ST_HAL_MAGN_UNCALIB_DISABLED
-	help
-	  Enable support for Magnetometer Uncalibrated sensor.
-
-config ST_HAL_MAGN_UNCALIB_DISABLED
-	bool "Disabled"
-config ST_HAL_MAGN_UNCALIB_AP_ENABLED
-	depends on ST_HAL_MAGN_CALIB_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Gyroscope Uncalibrated sensor"
-	default ST_HAL_GYRO_UNCALIB_DISABLED
-	help
-	  Enable support for Gyroscope Uncalibrated sensor.
-
-config ST_HAL_GYRO_UNCALIB_DISABLED
-	bool "Disabled"
-config ST_HAL_GYRO_UNCALIB_AP_ENABLED
-	depends on ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-config ST_HAL_SIGN_MOTION_ENABLED
-	bool "Significant Motion sensor"
-	default y
-	help
-	  Enable support for Significant Motion sensor.
-
-config ST_HAL_STEP_DETECTOR_ENABLED
-	bool "Step Detector sensor sensor"
-	default y
-	help
-	  Enable support for Step Detector sensor.
-
-config ST_HAL_STEP_COUNTER_ENABLED
-	bool "Step Counter sensor"
-	default y
-	help
-	  Enable support for Step Counter sensor.
-
-config ST_HAL_TILT_ENABLED
-	bool "Tilt sensor"
-	default y
-	help
-	  Enable support for Tilt sensor.
-
-config ST_HAL_PRESSURE_ENABLED
-	bool "Pressure sensor"
-	default y
-	help
-	  Enable support for Pressure sensor.
-
-choice
-	prompt "Orientation sensor"
-	default ST_HAL_ORIENTATION_DISABLED
-	help
-	  Enable support for Orientation sensor.
-
-config ST_HAL_ORIENTATION_DISABLED
-	bool "Disabled"
-config ST_HAL_ORIENTATION_AP_ENABLED
-	depends on ST_HAL_HAS_9AX_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_MAGN_ENABLED
-	depends on ST_HAL_GYRO_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Gravity sensor"
-	default ST_HAL_GRAVITY_DISABLED
-	help
-	  Enable support for Gravity sensor.
-
-config ST_HAL_GRAVITY_DISABLED
-	bool "Disabled"
-config ST_HAL_GRAVITY_AP_ENABLED
-	depends on ST_HAL_HAS_6AX_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_GYRO_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Linear Acceleration sensor"
-	default ST_HAL_LINEAR_DISABLED
-	help
-	  Enable support for Linear Acceleration sensor.
-
-config ST_HAL_LINEAR_DISABLED
-	bool "Disabled"
-config ST_HAL_LINEAR_AP_ENABLED
-	depends on ST_HAL_HAS_6AX_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_GYRO_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Rotation Vector sensor"
-	default ST_HAL_ROT_VECTOR_DISABLED
-	help
-	  Enable support for Rotation Vector sensor.
-
-config ST_HAL_ROT_VECTOR_DISABLED
-	bool "Disabled"
-config ST_HAL_ROT_VECTOR_AP_ENABLED
-	depends on ST_HAL_HAS_9AX_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_MAGN_ENABLED
-	depends on ST_HAL_GYRO_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Game Rotation Vector sensor"
-	default ST_HAL_GAME_ROT_VECTOR_DISABLED
-	help
-	  Enable support for Game Rotation Vector sensor.
-
-config ST_HAL_GAME_ROT_VECTOR_DISABLED
-	bool "Disabled"
-config ST_HAL_GAME_ROT_VECTOR_AP_ENABLED
-	depends on ST_HAL_HAS_6AX_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_GYRO_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-choice
-	prompt "Geomagnetic Rotation Vector sensor"
-	default ST_HAL_GEOMAG_ROT_VECTOR_DISABLED
-	help
-	  Enable support for Geomagnetic Rotation Vector sensor.
-
-config ST_HAL_GEOMAG_ROT_VECTOR_DISABLED
-	bool "Disabled"
-config ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED
-	depends on ST_HAL_HAS_GEOMAG_FUSION
-	depends on ST_HAL_ACCEL_ENABLED
-	depends on ST_HAL_MAGN_ENABLED
-	bool "Software by Application Processor Library"
-endchoice
-
-endmenu # Enable/disable sensors
diff --git a/libsensors_iio/Kconfig_menu/Kconfig_fusion_config b/libsensors_iio/Kconfig_menu/Kconfig_fusion_config
deleted file mode 100644
index 843ed45..0000000
--- a/libsensors_iio/Kconfig_menu/Kconfig_fusion_config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# SensorFusion configuration
-#
-
-if ST_HAL_HAS_6AX_FUSION || ST_HAL_HAS_9AX_FUSION || ST_HAL_HAS_GEOMAG_FUSION
-menu "SensorFusion configuration"
-
-config ST_HAL_MIN_FUSION_POLLRATE
-	int "Min SensorFusion run frequency [Hz]"
-	range 20 ST_HAL_MAX_SAMPLING_FREQUENCY
-	default 50
-
-config ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL
-	string "Accelerometer Gbias thresold"
-	default "86999e-9"
-
-if ST_HAL_HAS_9AX_FUSION || ST_HAL_HAS_GEOMAG_FUSION
-config ST_HAL_INEMO_GBIAS_THRESOLD_MAGN
-	string "Magnetometer Gbias thresold"
-	default "599999e-9"
-
-endif
-
-if ST_HAL_HAS_6AX_FUSION || ST_HAL_HAS_9AX_FUSION
-config ST_HAL_INEMO_GBIAS_THRESOLD_GYRO
-	string "Gyroscope Gbias thresold"
-	default "114999e-9"
-
-endif
-endmenu # Sensor Fusion configuration
-endif
diff --git a/libsensors_iio/README b/libsensors_iio/README
deleted file mode 100644
index 4fdfd2d..0000000
--- a/libsensors_iio/README
+++ /dev/null
@@ -1,30 +0,0 @@
-	Android STMicroelectronics SensorHAL release 3.x
-
-These are the release notes for STMicroelectronics SensorHAL version 3.
-Read them carefully, as they tell you what this is all about, explain how
-to install the dynamic library, and what to do if something goes wrong.
-
-SOFTWARE REQUIREMENTS
-
-   Compiling and running the 3.x SensorHAL requires up-to-date versions of
-   various software packages.
-
-   Installing required packages:
-   $ sudo apt-get install build-essential libncurses5-dev
-
-LIBS
-   In order to run some sensors in the application processor side, libraries
-   are needed. Run auto-extract script packages in the root folder of the HAL.
-
-CONFIGURING the HAL:
-
-   "mm defconfig=y"	Generated default .config.
-
-   "mm menuconfig=y  KCONFIG_CONFIG=hardware/intel/sensors/libsensors_iio/.config"
-			Text based color menus, radiolists & dialogs.
-
-   "mm clean=y"		Delete .config and configuration.h files.
-
-COMPILING the HAL
-
-   "mm"			Build the code
diff --git a/libsensors_iio/configuration.h b/libsensors_iio/configuration.h
deleted file mode 100644
index 2d878cf..0000000
--- a/libsensors_iio/configuration.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* configuration.h -- Autogenerated file! Do not edit. */
-
-#ifndef __ST_SENSOR_HAL_CONFIG_H
-#define __ST_SENSOR_HAL_CONFIG_H
-
-
-
-#define CONFIG_ST_HAL_ANDROID_VERSION 1
-#define CONFIG_ST_HAL_HAS_6AX_FUSION 1
-
-
-#define CONFIG_ST_HAL_ACCEL_ENABLED 1
-#define CONFIG_ST_HAL_MAGN_ENABLED 1
-#define CONFIG_ST_HAL_GYRO_ENABLED 1
-#define CONFIG_ST_HAL_MAGN_UNCALIB_DISABLED 1
-#define CONFIG_ST_HAL_GYRO_UNCALIB_DISABLED 1
-#define CONFIG_ST_HAL_SIGN_MOTION_ENABLED 1
-#define CONFIG_ST_HAL_STEP_DETECTOR_ENABLED 1
-#define CONFIG_ST_HAL_STEP_COUNTER_ENABLED 1
-#define CONFIG_ST_HAL_ORIENTATION_DISABLED 1
-#define CONFIG_ST_HAL_GRAVITY_AP_ENABLED 1
-#define CONFIG_ST_HAL_LINEAR_AP_ENABLED 1
-#define CONFIG_ST_HAL_ROT_VECTOR_DISABLED 1
-#define CONFIG_ST_HAL_GAME_ROT_VECTOR_DISABLED 1
-#define CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_DISABLED 1
-
-
-#define CONFIG_ST_HAL_MAX_SAMPLING_FREQUENCY 200
-#define CONFIG_ST_HAL_DEBUG_LEVEL 0
-#define CONFIG_ST_HAL_ACCEL_ROT_MATRIX 1,0,0,0,-1,0,0,0,-1
-#define CONFIG_ST_HAL_ACCEL_RANGE 17
-#define CONFIG_ST_HAL_MAGN_ROT_MATRIX 1,0,0,0,1,0,0,0,1
-#define CONFIG_ST_HAL_MAGN_RANGE 1000
-#define CONFIG_ST_HAL_GYRO_ROT_MATRIX 1,0,0,0,-1,0,0,0,-1
-#define CONFIG_ST_HAL_GYRO_RANGE 35
-
-
-#define CONFIG_ST_HAL_MIN_FUSION_POLLRATE 50
-#define CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL 86999e-9
-#define CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_GYRO 114999e-9
-
-
-#define CONFIG_ST_HAL_LSM6DS3_ENABLED 1
-
-#endif /* __ST_SENSOR_HAL_CONFIG_H */
diff --git a/libsensors_iio/lib/Android.mk b/libsensors_iio/lib/Android.mk
deleted file mode 100644
index 83175be..0000000
--- a/libsensors_iio/lib/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 2012 STMicroelectronics
-# Matteo Dameno, Denis Ciocca - Motion MEMS Product Div.
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-include $(call all-subdir-makefiles)
diff --git a/libsensors_iio/lib/vSensorFusion/vSensorAPI.h b/libsensors_iio/lib/vSensorFusion/vSensorAPI.h
deleted file mode 100644
index 1a51303..0000000
--- a/libsensors_iio/lib/vSensorFusion/vSensorAPI.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __VSENSOR_API_H__
-#define __VSENSOR_API_H__
-
-#include <sys/types.h>
-#include <stdbool.h>
-
-static int init_flag;
-static float grav[3];
-static float lin_acc[3];
-
-void vSensor_API_Initialization_6X(void *);
-void vSensor_API_enable_6X(bool enable);
-int vSensor_API_Run_6X(float *accel,
-            float *gyro, long long timestamp);
-int vSensor_API_Get_Quaternion_6X(float *rotation_vector);
-int vSensor_API_Get_LinAcc_6X(float *lin_accel);
-int vSensor_API_Get_Gravity_6X(float *garvity);
-
-#endif  /* __VSENSOR_API_H__ */
diff --git a/libsensors_iio/lib/vSensorFusion/vSensorFusion.a b/libsensors_iio/lib/vSensorFusion/vSensorFusion.a
deleted file mode 100644
index ff5c763..0000000
--- a/libsensors_iio/lib/vSensorFusion/vSensorFusion.a
+++ /dev/null
Binary files differ
diff --git a/libsensors_iio/src/Accelerometer.cpp b/libsensors_iio/src/Accelerometer.cpp
deleted file mode 100644
index 5c9cadc..0000000
--- a/libsensors_iio/src/Accelerometer.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * STMicroelectronics Accelerometer Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "sensor_cal.h"
-#include "Accelerometer.h"
-
-Accelerometer::Accelerometer(HWSensorBaseCommonData *data, const char *name,
-		struct iio_sampling_frequency_available *sfa, int handle,
-		unsigned int hw_fifo_len, int pipe_data_fd, float power_consumption, bool wakeup) :
-			HWSensorBaseWithPollrate(data, name, sfa, handle,
-			SENSOR_TYPE_ACCELEROMETER, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_ACCELEROMETER;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = data->channels[0].scale;
-	sensor_t_data.maxRange = sensor_t_data.resolution * (pow(2.0, data->channels[0].bits_used - 1.0) - 1);
-}
-
-Accelerometer::~Accelerometer()
-{
-
-}
-
-void Accelerometer::ProcessData(SensorBaseData *data)
-{
-	float tmp_raw_data[num_data_axis];
-
-	memcpy(tmp_raw_data, data->raw, num_data_axis * sizeof(float));
-
-	data->raw[0] = SENSOR_X_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_ACCEL_ROT_MATRIX);
-	data->raw[1] = SENSOR_Y_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_ACCEL_ROT_MATRIX);
-	data->raw[2] = SENSOR_Z_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_ACCEL_ROT_MATRIX);
-
-	sensor_event.acceleration.x = data->raw[0];
-	sensor_event.acceleration.y = data->raw[1];
-	sensor_event.acceleration.z = data->raw[2];
-	if (accl_cal_data_loaded == true)
-		sensor_event.acceleration.status = SENSOR_STATUS_ACCURACY_LOW;
-	else
-		sensor_event.acceleration.status = SENSOR_STATUS_UNRELIABLE;
-	sensor_event.timestamp = data->timestamp;
-
-	HWSensorBaseWithPollrate::WriteDataToPipe();
-	HWSensorBaseWithPollrate::ProcessData(data);
-}
diff --git a/libsensors_iio/src/Accelerometer.h b/libsensors_iio/src/Accelerometer.h
deleted file mode 100644
index 3996adb..0000000
--- a/libsensors_iio/src/Accelerometer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_ACCELEROMETER_SENSOR_H
-#define ST_ACCELEROMETER_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class Accelerometer
- */
-class Accelerometer : public HWSensorBaseWithPollrate {
-public:
-	Accelerometer(HWSensorBaseCommonData *data, const char *name,
-			struct iio_sampling_frequency_available *sfa, int handle,
-			unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption, bool wakeup);
-	~Accelerometer();
-
-	virtual void ProcessData(SensorBaseData *data);
-};
-
-#endif /* ST_ACCELEROMETER_SENSOR_H */
diff --git a/libsensors_iio/src/Android.mk b/libsensors_iio/src/Android.mk
deleted file mode 100644
index aa5f757..0000000
--- a/libsensors_iio/src/Android.mk
+++ /dev/null
@@ -1,177 +0,0 @@
-#
-# Copyright (C) 2013-2015 STMicroelectronics
-# Denis Ciocca - Motion MEMS Product Div.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#/
-
-ifeq ($(USE_SENSOR_HAL_PREBUILTS),false)
-
-ifneq ($(TARGET_SIMULATOR),true)
-
-LOCAL_PATH := $(call my-dir)
-ST_HAL_ROOT_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-include $(ST_HAL_ROOT_PATH)/../.config
-
-LOCAL_PRELINK_MODULE := false
-
-ifdef TARGET_DEVICE
-LOCAL_MODULE := libsensors_iio.robby
-else
-LOCAL_MODULE := libsensors_iio.default
-endif
-
-LOCAL_MODULE_RELATIVE_PATH := hw
-
-LOCAL_MODULE_OWNER := STMicroelectronics
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/ bionic
-
-LOCAL_CFLAGS += -DLOG_TAG=\"SensorHAL\"
-
-
-ifeq ($(DEBUG),y)
-LOCAL_CFLAGS += -g -O0
-endif
-
-
-ifdef CONFIG_ST_HAL_HAS_6AX_FUSION
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/vSensorFusion
-LOCAL_LDFLAGS += $(LOCAL_PATH)/../lib/vSensorFusion/vSensorFusion.a
-else
-ifdef CONFIG_ST_HAL_HAS_9AX_FUSION
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/iNemoEngine_SensorFusion
-LOCAL_STATIC_LIBRARIES += iNemoEngine_SensorFusion
-endif
-endif
-
-ifdef CONFIG_ST_HAL_HAS_GYRO_GBIAS_ESTIMATION
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/iNemoEngine_gbias_Estimation
-LOCAL_STATIC_LIBRARIES += iNemoEngine_gbias_Estimation
-endif
-
-ifdef CONFIG_ST_HAL_HAS_TILT_FU_FD
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/FUFD_CustomTilt
-LOCAL_STATIC_LIBRARIES += FUFD_CustomTilt
-endif
-
-ifdef CONFIG_ST_HAL_HAS_GEOMAG_FUSION
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/iNemoEngine_GeoMag_Fusion
-LOCAL_STATIC_LIBRARIES += iNemoEngine_GeoMag_Fusion
-endif
-
-ifdef CONFIG_ST_HAL_HAS_MAGN_CALIB
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/STCompass
-LOCAL_STATIC_LIBRARIES += STCompass
-endif
-
-
-LOCAL_SRC_FILES := \
-		sensor_cal.c \
-		iio_utils.c \
-		SensorHAL.cpp \
-		CircularBuffer.cpp \
-		SensorBase.cpp \
-		HWSensorBase.cpp \
-		SWSensorBase.cpp
-
-ifdef CONFIG_ST_HAL_ACCEL_ENABLED
-LOCAL_SRC_FILES += Accelerometer.cpp
-endif
-
-ifdef CONFIG_ST_HAL_MAGN_ENABLED
-LOCAL_SRC_FILES += Magnetometer.cpp
-endif
-
-ifdef CONFIG_ST_HAL_GYRO_ENABLED
-LOCAL_SRC_FILES += Gyroscope.cpp
-endif
-
-ifdef CONFIG_ST_HAL_STEP_DETECTOR_ENABLED
-LOCAL_SRC_FILES += StepDetector.cpp
-endif
-
-ifdef CONFIG_ST_HAL_STEP_COUNTER_ENABLED
-LOCAL_SRC_FILES += StepCounter.cpp
-endif
-
-ifdef CONFIG_ST_HAL_SIGN_MOTION_ENABLED
-LOCAL_SRC_FILES += SignificantMotion.cpp
-endif
-
-ifdef CONFIG_ST_HAL_TILT_ENABLED
-LOCAL_SRC_FILES += TiltSensor.cpp
-endif
-
-ifdef CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED
-LOCAL_SRC_FILES += SWMagnetometerUncalibrated.cpp
-endif
-
-ifdef CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED
-LOCAL_SRC_FILES += SWGyroscopeUncalibrated.cpp
-endif
-
-ifdef CONFIG_ST_HAL_PRESSURE_ENABLED
-LOCAL_SRC_FILES += Pressure.cpp
-endif
-
-ifdef CONFIG_ST_HAL_HAS_GEOMAG_FUSION
-LOCAL_SRC_FILES += SWAccelMagnFusion6X.cpp
-endif
-
-ifdef CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED
-LOCAL_SRC_FILES += SWGeoMagRotationVector.cpp
-endif
-
-ifdef CONFIG_ST_HAL_HAS_6AX_FUSION
-LOCAL_SRC_FILES += SWAccelGyroFusion6X.cpp
-endif
-
-ifdef CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED
-LOCAL_SRC_FILES += SWGameRotationVector.cpp
-endif
-
-ifdef CONFIG_ST_HAL_HAS_9AX_FUSION
-LOCAL_SRC_FILES += SWAccelMagnGyroFusion9X.cpp
-endif
-
-ifdef CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED
-LOCAL_SRC_FILES += SWRotationVector.cpp
-endif
-
-ifdef CONFIG_ST_HAL_ORIENTATION_AP_ENABLED
-LOCAL_SRC_FILES += SWOrientation.cpp
-endif
-
-ifdef CONFIG_ST_HAL_GRAVITY_AP_ENABLED
-LOCAL_SRC_FILES += SWGravity.cpp
-endif
-
-ifdef CONFIG_ST_HAL_LINEAR_AP_ENABLED
-LOCAL_SRC_FILES += SWLinearAccel.cpp
-endif
-
-
-LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libdl libc
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_SHARED_LIBRARY)
-
-include $(call all-makefiles-under, $(LOCAL_PATH))
-
-endif # !TARGET_SIMULATOR
-
-endif # USE_SENSOR_HAL_PREBUILTS
diff --git a/libsensors_iio/src/CircularBuffer.cpp b/libsensors_iio/src/CircularBuffer.cpp
deleted file mode 100644
index 20b4de8..0000000
--- a/libsensors_iio/src/CircularBuffer.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * STMicroelectronics Circular Buffer Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include "CircularBuffer.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <cutils/log.h>
-
-CircularBuffer::CircularBuffer(unsigned int num_elements)
-{
-	data_sensor = (SensorBaseData *)malloc(num_elements * sizeof(SensorBaseData));
-
-	pthread_mutex_init(&data_mutex, NULL);
-
-	lenght = num_elements;
-	elements_available = 0;
-	first_free_element = &data_sensor[0];
-	first_available_element = &data_sensor[0];
-}
-
-CircularBuffer::~CircularBuffer()
-{
-	delete data_sensor;
-}
-
-void CircularBuffer::writeElement(SensorBaseData *data)
-{
-	pthread_mutex_lock(&data_mutex);
-
-	if (elements_available == lenght) {
-		first_available_element++;
-
-		if (first_available_element == (&data_sensor[0] + lenght))
-			first_available_element = &data_sensor[0];
-	}
-
-	memcpy(first_free_element, data, sizeof(SensorBaseData));
-	first_free_element++;
-
-	if (first_free_element == (&data_sensor[0] + lenght))
-		first_free_element = &data_sensor[0];
-
-	if (elements_available < lenght)
-		elements_available++;
-
-	pthread_mutex_unlock(&data_mutex);
-}
-
-int CircularBuffer::readElement(SensorBaseData *data)
-{
-	int num_remaining_elements;
-
-	pthread_mutex_lock(&data_mutex);
-
-	if (elements_available == 0) {
-		pthread_mutex_unlock(&data_mutex);
-		return -EFAULT;
-	}
-
-	memcpy(data, first_available_element, sizeof(SensorBaseData));
-	first_available_element++;
-
-	if (first_available_element == (&data_sensor[0] + lenght))
-		first_available_element = &data_sensor[0];
-
-	elements_available--;
-	num_remaining_elements = elements_available;
-
-	pthread_mutex_unlock(&data_mutex);
-
-	return num_remaining_elements;
-}
diff --git a/libsensors_iio/src/CircularBuffer.h b/libsensors_iio/src/CircularBuffer.h
deleted file mode 100644
index c07eb1f..0000000
--- a/libsensors_iio/src/CircularBuffer.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_CIRCULAR_BUFFER_H
-#define ST_CIRCULAR_BUFFER_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <pthread.h>
-#include <errno.h>
-
-typedef struct SensorBaseData {
-	float raw[4];
-	float offset[4];
-	float processed[4];
-	int64_t timestamp;
-} SensorBaseData;
-
-/*
- * class CircularBuffer
- */
-class CircularBuffer {
-private:
-	pthread_mutex_t data_mutex;
-	unsigned int lenght, elements_available;
-
-	SensorBaseData *data_sensor;
-	SensorBaseData *first_available_element;
-	SensorBaseData *first_free_element;
-
-public:
-	CircularBuffer(unsigned int num_elements);
-	~CircularBuffer();
-
-	void writeElement(SensorBaseData *data);
-	int readElement(SensorBaseData *data);
-};
-
-#endif /* ST_CIRCULAR_BUFFER_H */
diff --git a/libsensors_iio/src/Gyroscope.cpp b/libsensors_iio/src/Gyroscope.cpp
deleted file mode 100644
index 0abf236..0000000
--- a/libsensors_iio/src/Gyroscope.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * STMicroelectronics Gyroscope Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "sensor_cal.h"
-#include "Gyroscope.h"
-
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-extern "C" {
-	#include "iNemoEngineAPI_gbias_estimation.h"
-}
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-
-Gyroscope::Gyroscope(HWSensorBaseCommonData *data, const char *name,
-		struct iio_sampling_frequency_available *sfa, int handle,
-		unsigned int hw_fifo_len, int pipe_data_fd, float power_consumption, bool wakeup) :
-			HWSensorBaseWithPollrate(data, name, sfa, handle,
-			SENSOR_TYPE_GYROSCOPE, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_GYROSCOPE;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = data->channels[0].scale;
-	sensor_t_data.maxRange = sensor_t_data.resolution * (pow(2.0, data->channels[0].bits_used - 1.0) - 1);
-
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	iNemoEngine_API_gbias_Initialization(NULL);
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ACCELEROMETER;
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-}
-
-Gyroscope::~Gyroscope()
-{
-
-}
-
-int Gyroscope::Enable(int handle, bool enable)
-{
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	int err;
-	bool old_status;
-
-	old_status = GetStatus();
-
-	err = HWSensorBaseWithPollrate::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if (GetStatus() != old_status)
-		iNemoEngine_API_gbias_enable(enable);
-
-	return 0;
-#else /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-	return HWSensorBaseWithPollrate::Enable(handle, enable);
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-}
-
-int Gyroscope::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	int err;
-
-	err = HWSensorBaseWithPollrate::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-
-	iNemoEngine_API_gbias_set_frequency(NS_TO_FREQUENCY(GetRealPollrate()));
-
-	return 0;
-#else /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-	return HWSensorBaseWithPollrate::SetDelay(handle, period_ns, timeout);
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-}
-
-void Gyroscope::ProcessData(SensorBaseData *data)
-{
-#define	X_SCALING_FACTOR	1
-#define	Y_SCALING_FACTOR	(360 / 350)
-#define	Z_SCALING_FACTOR	1
-
-	float tmp_raw_data[num_data_axis];
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	int64_t time_diff = 0;
-	int err, nomaxdata = 10;
-	SensorBaseData accel_data;
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-
-	memcpy(tmp_raw_data, data->raw, num_data_axis * sizeof(float));
-
-	data->raw[0] = SENSOR_X_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_GYRO_ROT_MATRIX);
-	data->raw[1] = SENSOR_Y_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_GYRO_ROT_MATRIX);
-	data->raw[2] = SENSOR_Z_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_GYRO_ROT_MATRIX);
-
-#ifdef CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED
-	do {
-		err = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &accel_data);
-		if (err < 0) {
-			nomaxdata--;
-			usleep(200);
-			continue;
-		}
-
-		time_diff = data->timestamp - accel_data.timestamp;
-
-	} while ((time_diff >= GetRealPollrate()) && (nomaxdata > 0));
-
-	if (err >= 0)
-		iNemoEngine_API_gbias_Run(accel_data.raw, data->raw);
-
-	iNemoEngine_API_Get_gbias(data->offset);
-
-	sensor_event.gyro.status = SENSOR_STATUS_ACCURACY_HIGH;
-#else /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-	if (gyro_cal_data_loaded == true)
-		sensor_event.gyro.status = SENSOR_STATUS_ACCURACY_LOW;
-	else
-		sensor_event.gyro.status = SENSOR_STATUS_UNRELIABLE;
-#endif /* CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED */
-
-	data->processed[0] = data->raw[0] - data->offset[0];
-	data->processed[1] = data->raw[1] - data->offset[1];
-	data->processed[2] = data->raw[2] - data->offset[2];
-
-	/* FIXME: scaling gyro data for better accuracy */
-	sensor_event.gyro.x = data->processed[0] * X_SCALING_FACTOR;
-	sensor_event.gyro.y = data->processed[1] * Y_SCALING_FACTOR;
-	sensor_event.gyro.z = data->processed[2] * Z_SCALING_FACTOR;
-	sensor_event.timestamp = data->timestamp;
-
-	HWSensorBaseWithPollrate::WriteDataToPipe();
-	HWSensorBaseWithPollrate::ProcessData(data);
-}
diff --git a/libsensors_iio/src/Gyroscope.h b/libsensors_iio/src/Gyroscope.h
deleted file mode 100644
index 8465366..0000000
--- a/libsensors_iio/src/Gyroscope.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_GYROSCOPE_SENSOR_H
-#define ANDROID_GYROSCOPE_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class Gyroscope
- */
-class Gyroscope : public HWSensorBaseWithPollrate {
-public:
-	Gyroscope(HWSensorBaseCommonData *data, const char *name,
-			struct iio_sampling_frequency_available *sfa, int handle,
-			unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption, bool wakeup);
-	~Gyroscope();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void ProcessData(SensorBaseData *data);
-};
-
-#endif /* ANDROID_GYROSCOPE_SENSOR_H */
diff --git a/libsensors_iio/src/HWSensorBase.cpp b/libsensors_iio/src/HWSensorBase.cpp
deleted file mode 100644
index a910bd0..0000000
--- a/libsensors_iio/src/HWSensorBase.cpp
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * STMicroelectronics HW Sensor Base With Pollrate Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#define __STDC_LIMIT_MACROS
-
-#include <fcntl.h>
-#include <assert.h>
-#include <string.h>
-#include <signal.h>
-#include <stdint.h>
-#include <endian.h>
-
-#include "HWSensorBase.h"
-
-#define DEFAULT_HRTIMER_PERIOD_NS		(200000000)
-#define LOCAL_REPORTING_MODE_MASK		6
-
-
-/**
- * size_from_channelarray() - Calculate the storage size of a scan
- * @channels: the channel info array.
- * @num_channels: number of channels.
- **/
-static int size_from_channelarray(struct iio_channel_info *channels, int num_channels)
-{
-	int bytes = 0, i;
-
-	for (i = 0; i < num_channels; i++) {
-		if (channels[i].bytes == 0)
-			continue;
-
-		if (bytes % channels[i].bytes == 0)
-			channels[i].location = bytes;
-		else
-			channels[i].location = bytes -
-				(bytes % channels[i].bytes) + channels[i].bytes;
-
-		bytes = channels[i].location + channels[i].bytes;
-	}
-
-	return bytes;
-}
-
-/**
- * process_2byte_received() - Return channel data from 2 byte
- * @input: 2 byte of data received from buffer channel.
- * @info: information about channel structure.
- * @multi_data: 2byte is part of multiple data.
- **/
-static float process_2byte_received(int input,
-				struct iio_channel_info *info, bool multi_data)
-{
-	int16_t val;
-	float offset = 0;
-
-	if (info->be)
-		input = be16toh((uint16_t)input);
-	else
-		input = le16toh((uint16_t)input);
-
-	if (!multi_data) {
-		offset = info->offset;
-		val = input >> info->shift;
-		if (info->is_signed) {
-			val &= (1 << info->bits_used) - 1;
-			val = (int16_t)(val << (16 - info->bits_used)) >>
-							(16 - info->bits_used);
-		} else
-			val &= (1 << info->bits_used) - 1;
-	} else
-		val = input;
-
-	return (((float)val + offset) * info->scale);
-}
-
-static float process_3byte_received(int input, struct iio_channel_info *info)
-{
-	int32_t val;
-
-	if (info->be)
-		input = be32toh((uint32_t)input);
-	else
-		input = le32toh((uint32_t)input);
-
-	val = input >> info->shift;
-	if (info->is_signed) {
-		val &= (1 << info->bits_used) - 1;
-		val = (int32_t)(val << (24 - info->bits_used)) >>
-						(24 - info->bits_used);
-	} else
-		val &= (1 << info->bits_used) - 1;
-
-	return (((float)val + info->offset) * info->scale);
-}
-
-/**
- * process_scan() - This functions use channels device information to build data
- * @hw_sensor: pointer to current hardware sensor.
- * @data: sensor data of all channels read from buffer.
- * @channels: information about channel structure.
- * @num_channels: number of channels of the sensor.
- **/
-static int ProcessScanData(uint8_t *data, struct iio_channel_info *channels, int num_channels, SensorBaseData *sensor_out_data)
-{
-	int k;
-
-	for (k = 0; k < num_channels; k++) {
-
-		sensor_out_data->offset[k] = 0;
-
-		switch (channels[k].bytes) {
-		case 1:
-			sensor_out_data->raw[k] = *(uint8_t *)(data + channels[k].location);
-			break;
-		case 2:
-			sensor_out_data->raw[k] = process_2byte_received(*(uint16_t *)
-					(data + channels[k].location), &channels[k], false);
-			break;
-		case 3:
-			sensor_out_data->raw[k] = process_3byte_received(*(uint32_t *)
-					(data + channels[k].location), &channels[k]);
-			break;
-		case 4:
-			if (channels->multi_data) {
-				sensor_out_data->raw[k] = process_2byte_received(*(uint16_t *)
-					(data + channels[k].location), &channels[k], true);
-				sensor_out_data->offset[k] = process_2byte_received(*(uint16_t *)
-					(data + channels[k].location + sizeof(uint16_t)),
-					&channels[k], true);
-			} else {
-				uint32_t val;
-
-				if (channels[k].be)
-					val = be32toh(*(uint32_t *)
-							(data + channels[k].location));
-				else
-					val = le32toh(*(uint32_t *)
-							(data + channels[k].location));
-
-				if (channels->isfloat)
-					sensor_out_data->raw[k] = (*((float *)((void *)&val)) +
-						channels[k].offset) * channels[k].scale;
-				else
-					sensor_out_data->raw[k] = ((float)val +
-						channels[k].offset) * channels[k].scale;
-			}
-			break;
-		case 8:
-			if (channels[k].is_signed) {
-				int64_t val = *(int64_t *)(data + channels[k].location);
-				if ((val >> channels[k].bits_used) & 1)
-					val = (val & channels[k].mask) | ~channels[k].mask;
-
-				if ((channels[k].scale == 1.0f) &&
-						(channels[k].offset == 0.0f)) {
-					sensor_out_data->timestamp = val;
-				} else {
-					sensor_out_data->raw[k] = (((float)val +
-						channels[k].offset) * channels[k].scale);
-				}
-			}
-			break;
-		default:
-			return -EINVAL;
-		}
-	}
-
-	return num_channels;
-}
-
-HWSensorBase::HWSensorBase(HWSensorBaseCommonData *data, const char *name,
-		int handle, int sensor_type, unsigned int hw_fifo_len, int pipe_data_fd,
-		float power_consumption) : SensorBase(name, handle, sensor_type, pipe_data_fd)
-{
-	int err;
-	char *buffer_path;
-
-	memcpy(&common_data, data, sizeof(common_data));
-
-	sensor_t_data.power = power_consumption;
-	sensor_t_data.fifoMaxEventCount = hw_fifo_len;
-	current_fifo_len = HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN;
-
-	scan_size = size_from_channelarray(common_data.channels, common_data.num_channels);
-
-	sensor_data = (uint8_t *)malloc(scan_size * HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN * hw_fifo_len * sizeof(uint8_t));
-	if (!sensor_data)
-		goto failed_creation;
-
-	err = asprintf(&buffer_path, "/dev/iio:device%d", data->iio_dev_num);
-	if (err <= 0)
-		goto free_sensor_data;
-
-	pollfd_iio[0].fd = open(buffer_path, O_RDONLY | O_NONBLOCK);
-	if (pollfd_iio[0].fd < 0)
-		goto free_buffer_path;
-
-	err = ioctl(pollfd_iio[0].fd, IIO_GET_EVENT_FD_IOCTL, &pollfd_iio[1].fd);
-	if (err < 0)
-		goto close_iio_buffer;
-
-	pollfd_iio[0].events = POLLIN;
-	pollfd_iio[1].events = POLLIN;
-
-	free(buffer_path);
-
-	return;
-
-close_iio_buffer:
-	close(pollfd_iio[0].fd);
-free_buffer_path:
-	free(buffer_path);
-free_sensor_data:
-	free(sensor_data);
-failed_creation:
-	valid_class = false;
-}
-
-HWSensorBase::~HWSensorBase()
-{
-	if (!valid_class)
-		return;
-
-	free(sensor_data);
-	close(pollfd_iio[0].fd);
-	close(pollfd_iio[1].fd);
-}
-
-int HWSensorBase::WriteBufferLenght(unsigned int buf_len, unsigned int store_len)
-{
-	unsigned int hw_buf_fifo_len, hw_store_fifo_len;
-	int err, current_len, cur_store_len, buff_enable;
-
-	hw_buf_fifo_len = buf_len * HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN;
-	if (hw_buf_fifo_len == 0)
-		hw_buf_fifo_len = HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN;
-
-	hw_store_fifo_len = store_len * HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN;
-	if (hw_store_fifo_len == 0)
-		hw_store_fifo_len = HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN;
-
-	current_len = read_sysfs_posint((char *)FILENAME_BUFFER_LENGTH,
-							common_data.iio_sysfs_path);
-	if (current_len < 0)
-		return current_len;
-
-	cur_store_len = read_sysfs_posint((char *)FILENAME_BUFFER_STORE_LENGTH,
-							common_data.iio_sysfs_path);
-	if (cur_store_len < 0)
-		return cur_store_len;
-
-	if ((current_len == (int)hw_buf_fifo_len) && (cur_store_len == (int)hw_store_fifo_len))
-		return 0;
-
-	buff_enable = read_sysfs_posint((char *)FILENAME_BUFFER_ENABLE,
-							common_data.iio_sysfs_path);
-	if (buff_enable < 0)
-		return buff_enable;
-
-	if (buff_enable == 1) {
-		err = write_sysfs_int_and_verify((char *)FILENAME_BUFFER_ENABLE,
-							common_data.iio_sysfs_path, 0);
-		if (err < 0)
-			return err;
-	}
-
-	err = write_sysfs_int_and_verify((char *)FILENAME_BUFFER_LENGTH,
-						common_data.iio_sysfs_path, hw_buf_fifo_len);
-	if (err < 0)
-		return err;
-
-	err = write_sysfs_int_and_verify((char *)FILENAME_BUFFER_STORE_LENGTH,
-						common_data.iio_sysfs_path, hw_store_fifo_len);
-	if (err < 0)
-		return err;
-
-	current_fifo_len = hw_buf_fifo_len;
-
-	if (buff_enable > 0) {
-		err = write_sysfs_int_and_verify((char *)FILENAME_BUFFER_ENABLE,
-							common_data.iio_sysfs_path, 1);
-		if (err < 0)
-			return err;
-	}
-
-	return 0;
-}
-
-int HWSensorBase::Enable(int handle, bool enable)
-{
-	int err;
-
-	err = SensorBase::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	err = write_sysfs_int_and_verify((char *)FILENAME_BUFFER_ENABLE,
-					common_data.iio_sysfs_path, GetStatus());
-	if (err < 0) {
-		ALOGE("%s: Failed to write buffer file \"%s/%s\".",
-			common_data.device_name, common_data.iio_sysfs_path, FILENAME_BUFFER_ENABLE);
-		goto restore_status_enable;
-	}
-
-	return 0;
-
-restore_status_enable:
-	SensorBase::Enable(handle, !enable);
-	return err;
-}
-
-int HWSensorBase::FlushData(bool need_report_event)
-{
-	bool report_at_once = false;
-	int err = -1;
-	int32_t type = SensorBase::sensor_t_data.type;
-#ifdef __LP64__
-       uint64_t flags;
-#else
-       uint32_t flags;
-#endif
-
-	flags = SensorBase::sensor_t_data.flags;
-	ALOGD("HWSensorBase::FlushData type=%d, flags=%lld", type, flags);
-
-	/* No flush events for One-shot sensors */
-	if (SENSOR_FLAG_ONE_SHOT_MODE == (flags & LOCAL_REPORTING_MODE_MASK))
-		return -EINVAL;
-
-	if (GetStatus()) {
-		/* Sensors used fifo would report flush complete event after data in fifo reported,
-		 * so we store the flush timestamp here. When we write fifo data to pipe,
-		 * we compare them. If the fifo data wrote done, then write the flush complete event.
-		 * One exception: if the flush call come after a fifo parse, there would no data
-		 * in the fifo. If we still sent flush complete event like before, that should wait for
-		 * another fifo parse, that would be a very long time (unit seconds). In this case,
-		 * we would sent the flush complete event here.
-		 */
-		if (need_report_event && ((type == SENSOR_TYPE_ACCELEROMETER) ||
-				(type == SENSOR_TYPE_GYROSCOPE))) {
-			int64_t flush_timestamp = get_monotonic_time();
-			if (flush_timestamp <= real_pollrate) {
-				ALOGE("HWSensorBase get flush base timestamp failed");
-				return err;
-			}
-			ALOGD("hw flush timestamp %lld", flush_timestamp);
-			/* Scale the real_pollrate by 11/10 because LSM6DS3 ODR has +/-10% skew */
-			if (flush_timestamp <= (last_data_timestamp + real_pollrate * 11 / 10))
-				report_at_once = true;
-			else {
-				flush_timestamp -= real_pollrate * 11 /10;
-				(SensorBase::timestamp).push_back(flush_timestamp);
-			}
-		}
-
-		/* Sensors used fifo would trigger read fifo here */
-		if (current_fifo_len > HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN) {
-			err = write_sysfs_int((char *)FILENAME_FLUSH, common_data.iio_sysfs_path, 1);
-			if (err < 0) {
-				ALOGE("%s: Failed to write flush file \"%s/%s\".",
-						common_data.device_name, common_data.iio_sysfs_path, FILENAME_FLUSH);
-				return -EINVAL;
-			}
-		}
-
-		/* Sensors which not use fifo would sent a flush complete event here.
-		 * Sensors used fifo would sent a flush complete event here too if the fifo
-		 * is empty now.
-		 */
-		if (need_report_event && (report_at_once || ((type != SENSOR_TYPE_ACCELEROMETER) &&
-				(type != SENSOR_TYPE_GYROSCOPE))))
-			SensorBase::FlushData(true);
-
-		return 0;
-
-	} else
-		return -EINVAL;
-
-}
-
-void HWSensorBase::ThreadTask()
-{
-	uint8_t *data;
-	int err, i, read_size;
-	unsigned int hw_fifo_len;
-	SensorBaseData sensor_data;
-	struct iio_event_data event_data;
-
-	if (sensor_t_data.fifoMaxEventCount > 0)
-		hw_fifo_len = sensor_t_data.fifoMaxEventCount;
-	else
-		hw_fifo_len = 1;
-
-	data = (uint8_t *)malloc(hw_fifo_len * scan_size * HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN * sizeof(uint8_t));
-	if (!data)
-		return;
-
-	while (true) {
-		err = poll(pollfd_iio, 2, -1);
-		if (err <= 0)
-			continue;
-
-		if (pollfd_iio[0].revents > 0) {
-			read_size = read(pollfd_iio[0].fd, data, current_fifo_len * scan_size);
-			if (read_size <= 0)
-				continue;
-
-			for (i = 0; i < (read_size / scan_size); i++) {
-				err = ProcessScanData(data + (i * scan_size), common_data.channels, common_data.num_channels, &sensor_data);
-				if (err < 0)
-					continue;
-
-				ProcessData(&sensor_data);
-			}
-		}
-
-		if (pollfd_iio[1].revents > 0) {
-			read_size = read(pollfd_iio[1].fd, &event_data, sizeof(event_data));
-			if (read_size <= 0)
-				continue;
-
-			ProcessEvent(&event_data);
-		}
-	}
-}
-
-
-HWSensorBaseWithPollrate::HWSensorBaseWithPollrate(HWSensorBaseCommonData *data, const char *name,
-		struct iio_sampling_frequency_available *sfa, int handle,
-		int sensor_type, unsigned int hw_fifo_len, int pipe_data_fd, float power_consumption) :
-		HWSensorBase(data, name, handle, sensor_type, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	int i;
-	unsigned int max_sampling_frequency = 0, min_sampling_frequency = UINT_MAX;
-
-	memcpy(&sampling_frequency_available, sfa, sizeof(sampling_frequency_available));
-
-	for (i = 0; i < (int)sfa->num_available; i++) {
-		if ((max_sampling_frequency < sfa->hz[i]) &&
-					(sfa->hz[i] <= CONFIG_ST_HAL_MAX_SAMPLING_FREQUENCY))
-			max_sampling_frequency = sfa->hz[i];
-
-		if (min_sampling_frequency > sfa->hz[i])
-			min_sampling_frequency = sfa->hz[i];
-	}
-
-	sensor_t_data.minDelay = FREQUENCY_TO_US(max_sampling_frequency);
-	sensor_t_data.maxDelay = FREQUENCY_TO_US(min_sampling_frequency);
-}
-
-HWSensorBaseWithPollrate::~HWSensorBaseWithPollrate()
-{
-
-}
-
-int HWSensorBaseWithPollrate::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-#define	MIN_BUF_TIMEOUT	2500000000ULL
-	int err, i;
-	int64_t min_pollrate_ns, tmp_real_pollrate;
-	unsigned int sampling_frequency, buf_len, store_len;
-
-	err = HWSensorBase::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	min_pollrate_ns = GetMinPeriod();
-
-	sampling_frequency = NS_TO_FREQUENCY(min_pollrate_ns);
-	for (i = 0; i < (int)sampling_frequency_available.num_available; i++) {
-		if (sampling_frequency_available.hz[i] >= sampling_frequency)
-			break;
-	}
-	if (i == (int)sampling_frequency_available.num_available)
-		i--;
-
-	err = write_sysfs_int_and_verify((char *)FILENAME_SAMPLING_FREQ,
-				common_data.iio_sysfs_path, sampling_frequency_available.hz[i]);
-	if (err < 0) {
-		ALOGE("%s: Failed to write sampling frequency file \"%s/%s\".",
-				common_data.device_name, common_data.iio_sysfs_path, FILENAME_SAMPLING_FREQ);
-		return err;
-	}
-
-	tmp_real_pollrate = real_pollrate = FREQUENCY_TO_NS(sampling_frequency_available.hz[i]);
-
-	if (sensor_t_data.fifoMaxEventCount > 0) {
-		store_len = GetMinTimeout() / tmp_real_pollrate;
-		if (store_len > sensor_t_data.fifoMaxEventCount)
-			store_len = sensor_t_data.fifoMaxEventCount;
-
-		buf_len = MIN_BUF_TIMEOUT / tmp_real_pollrate;
-		if (buf_len < store_len)
-			buf_len = store_len;
-
-		err = WriteBufferLenght(buf_len, store_len);
-		if (err < 0)
-			return err;
-	}
-
-	return 0;
-}
-
-void HWSensorBaseWithPollrate::WriteDataToPipe()
-{
-	int err, retry = 3;
-	std::vector<int64_t>::iterator it;
-
-	if (!GetStatusOfHandle(sensor_t_data.handle))
-		return;
-
-	if (!(SensorBase::timestamp.empty())) {
-		int64_t last_timestamp = 0;
-		for (it = SensorBase::timestamp.begin(); it != SensorBase::timestamp.end(); ) {
-			/* If two flush event come within 1 odr, there may not have data in hw fifo,
-			 * so report corresponding flush complete events here.
-			 */
-			if ((sensor_event.timestamp >= *it) ||
-					(last_timestamp != 0 && (*it - last_timestamp < real_pollrate * 11 / 10))) {
-				sensors_event_t flush_event_data;
-
-				flush_event_data.sensor = 0;
-				flush_event_data.timestamp = 0;
-				flush_event_data.meta_data.sensor = sensor_t_data.handle;
-				flush_event_data.meta_data.what = META_DATA_FLUSH_COMPLETE;
-				flush_event_data.type = SENSOR_TYPE_META_DATA;
-				flush_event_data.version = META_DATA_VERSION;
-
-				while (retry) {
-					err = SensorBase::WritePipeWithPoll(&flush_event_data, sizeof(sensor_event),
-											POLL_TIMEOUT_FLUSH_EVENT);
-					if (err > 0)
-						break;
-
-					retry--;
-					ALOGI("%s: Retry writing flush event data to pipe, retry_cnt: %d.", android_name, 3-retry);
-				}
-
-				if (retry ==  0)
-					ALOGE("%s: Failed to write HW flush_complete, err=%d", android_name, err);
-				else
-					ALOGD("write hw flush complete event to pipe succeed.");
-
-				last_timestamp = *it;
-				it = SensorBase::timestamp.erase(it);
-			} else
-				break;
-		}
-	}
-
-	/* Scale the real_pollrate by 9/10 because LSM6DS3 ODR has +/-10% skew */
-	if (sensor_event.timestamp >= (last_data_timestamp + real_pollrate * 9 / 10)) {
-		err =  SensorBase::WritePipeWithPoll(&sensor_event, sizeof(sensor_event), POLL_TIMEOUT_DATA_EVENT);
-		if (err <= 0) {
-			ALOGE("%s: Write sensor data failed.", android_name);
-			return;
-		}
-
-		last_data_timestamp = sensor_event.timestamp;
-	} else
-		ALOGE("%s: Dropping event type=%d because ts %lld < %lld (%lld + %lld * 9 / 10)", android_name,
-					(last_data_timestamp + real_pollrate * 9 / 10), last_data_timestamp, real_pollrate);
-}
diff --git a/libsensors_iio/src/HWSensorBase.h b/libsensors_iio/src/HWSensorBase.h
deleted file mode 100644
index f9e1113..0000000
--- a/libsensors_iio/src/HWSensorBase.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_HWSENSOR_BASE_H
-#define ST_HWSENSOR_BASE_H
-
-#include <poll.h>
-#include <math.h>
-
-#include "SensorBase.h"
-
-extern "C" {
-	#include "iio_utils.h"
-	#include "events.h"
-	#include "sensor_cal.h"
-};
-
-#define HW_SENSOR_BASE_DEFAULT_IIO_BUFFER_LEN	(2)
-#define HW_SENSOR_BASE_IIO_SYSFS_PATH_MAX	(50)
-#define HW_SENSOR_BASE_IIO_DEVICE_NAME_MAX	(30)
-#define HW_SENSOR_BASE_MAX_CHANNELS		(8)
-
-#define FILENAME_BUFFER_ENABLE			"buffer/enable"
-#define FILENAME_BUFFER_LENGTH			"buffer/length"
-#define FILENAME_BUFFER_STORE_LENGTH		"buffer/store_length"
-#define FILENAME_SAMPLING_FREQ			"sampling_frequency"
-#define FILENAME_MAX_RATE_DELIVERY		"max_delivery_rate"
-#define FILENAME_HRTIMER_TRIGGER_FREQ		"frequency"
-#define FILENAME_FLUSH				"flush"
-
-struct HWSensorBaseCommonData {
-	char iio_sysfs_path[HW_SENSOR_BASE_IIO_SYSFS_PATH_MAX];
-	char device_name[HW_SENSOR_BASE_IIO_DEVICE_NAME_MAX];
-	unsigned int iio_dev_num;
-
-	int num_channels;
-	struct iio_channel_info channels[HW_SENSOR_BASE_MAX_CHANNELS];
-
-	struct iio_scale_available sa;
-} typedef HWSensorBaseCommonData;
-
-
-class HWSensorBase;
-class HWSensorBaseWithPollrate;
-
-/*
- * class HWSensorBase
- */
-class HWSensorBase : public SensorBase {
-protected:
-	struct pollfd pollfd_iio[2];
-	ssize_t scan_size;
-	uint8_t *sensor_data;
-	unsigned int current_fifo_len;
-	HWSensorBaseCommonData common_data;
-
-	int WriteBufferLenght(unsigned int buf_len, unsigned int store_len);
-
-public:
-	HWSensorBase(HWSensorBaseCommonData *data, const char *name,
-				int handle, int sensor_type, unsigned int hw_fifo_len,
-				int pipe_data_fd, float power_consumption);
-	virtual ~HWSensorBase();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int FlushData(bool need_report_event);
-	virtual void ThreadTask();
-};
-
-
-/*
- * class HWSensorBaseWithPollrate
- */
-class HWSensorBaseWithPollrate : public HWSensorBase {
-private:
-	struct iio_sampling_frequency_available sampling_frequency_available;
-
-public:
-	HWSensorBaseWithPollrate(HWSensorBaseCommonData *data, const char *name,
-			struct iio_sampling_frequency_available *sfa, int handle,
-			int sensor_type, unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption);
-	virtual ~HWSensorBaseWithPollrate();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void WriteDataToPipe();
-};
-
-#endif /* ST_HWSENSOR_BASE_H */
diff --git a/libsensors_iio/src/Magnetometer.cpp b/libsensors_iio/src/Magnetometer.cpp
deleted file mode 100644
index a649fc8..0000000
--- a/libsensors_iio/src/Magnetometer.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * STMicroelectronics Magnetometer Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "Magnetometer.h"
-
-#ifdef CONFIG_ST_HAL_MAGN_CALIB_ENABLED
-extern "C" {
-	#include "STCompass_API.h"
-}
-#endif /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-
-Magnetometer::Magnetometer(HWSensorBaseCommonData *data, const char *name,
-		struct iio_sampling_frequency_available *sfa, int handle,
-		unsigned int hw_fifo_len, int pipe_data_fd, float power_consumption, bool wakeup) :
-			HWSensorBaseWithPollrate(data, name, sfa, handle,
-			SENSOR_TYPE_MAGNETIC_FIELD, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_MAGNETIC_FIELD;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = GAUSS_TO_UTESLA(data->channels[0].scale);
-	sensor_t_data.maxRange = sensor_t_data.resolution * (pow(2.0, data->channels[0].bits_used - 1.0) - 1);
-
-#ifdef CONFIG_ST_HAL_MAGN_CALIB_ENABLED
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ACCELEROMETER;
-#endif /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-}
-
-Magnetometer::~Magnetometer()
-{
-
-}
-
-int Magnetometer::Enable(int handle, bool enable)
-{
-#ifdef CONFIG_ST_HAL_MAGN_CALIB_ENABLED
-	int err;
-	bool old_status;
-
-	old_status = GetStatus();
-
-	err = HWSensorBaseWithPollrate::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if (GetStatus() && !old_status)
-		STCompass_API_Init(NULL);
-
-	return 0;
-#else /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-	return HWSensorBaseWithPollrate::Enable(handle, enable);
-#endif /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-}
-
-void Magnetometer::ProcessData(SensorBaseData *data)
-{
-	float tmp_raw_data[num_data_axis];
-#ifdef CONFIG_ST_HAL_MAGN_CALIB_ENABLED
-	int64_t time_diff = 0;
-	int err, nomaxdata = 10;
-	SensorBaseData accel_data;
-#endif /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-
-	memcpy(tmp_raw_data, data->raw, num_data_axis * sizeof(float));
-
-	data->raw[0] = GAUSS_TO_UTESLA(SENSOR_X_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_MAGN_ROT_MATRIX));
-	data->raw[1] = GAUSS_TO_UTESLA(SENSOR_Y_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_MAGN_ROT_MATRIX));
-	data->raw[2] = GAUSS_TO_UTESLA(SENSOR_Z_DATA(tmp_raw_data[0], tmp_raw_data[1], tmp_raw_data[2], CONFIG_ST_HAL_MAGN_ROT_MATRIX));
-
-#ifdef CONFIG_ST_HAL_MAGN_CALIB_ENABLED
-	do {
-		err = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &accel_data);
-		if (err < 0) {
-			nomaxdata--;
-			usleep(200);
-			continue;
-		}
-
-		time_diff = data->timestamp - accel_data.timestamp;
-
-	} while ((time_diff >= GetRealPollrate()) && (nomaxdata > 0));
-
-	if (err >= 0)
-		STCompass_API_Run(accel_data.raw, data->raw);
-
-	sensor_event.magnetic.status = STCompass_API_Get_Calibration_Data(data->offset);
-#else /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-	sensor_event.magnetic.status = SENSOR_STATUS_UNRELIABLE;
-#endif /* CONFIG_ST_HAL_MAGN_CALIB_ENABLED */
-
-	data->processed[0] = data->raw[0] - data->offset[0];
-	data->processed[1] = data->raw[1] - data->offset[1];
-	data->processed[2] = data->raw[2] - data->offset[2];
-
-	sensor_event.magnetic.azimuth = data->processed[0];
-	sensor_event.magnetic.pitch = data->processed[1];
-	sensor_event.magnetic.roll = data->processed[2];
-	sensor_event.timestamp = data->timestamp;
-
-	HWSensorBaseWithPollrate::WriteDataToPipe();
-	HWSensorBaseWithPollrate::ProcessData(data);
-}
diff --git a/libsensors_iio/src/Magnetometer.h b/libsensors_iio/src/Magnetometer.h
deleted file mode 100644
index 0fa4b57..0000000
--- a/libsensors_iio/src/Magnetometer.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_MAGNETOMETER_SENSOR_H
-#define ANDROID_MAGNETOMETER_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class Magnetometer
- */
-class Magnetometer : public HWSensorBaseWithPollrate {
-public:
-	Magnetometer(HWSensorBaseCommonData *data, const char *name,
-			struct iio_sampling_frequency_available *sfa, int handle,
-			unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption, bool wakeup);
-	~Magnetometer();
-
-	virtual int Enable(int handle, bool enable);
-	virtual void ProcessData(SensorBaseData *data);
-};
-
-#endif /* ANDROID_MAGNETOMETER_SENSOR_H */
diff --git a/libsensors_iio/src/Pressure.cpp b/libsensors_iio/src/Pressure.cpp
deleted file mode 100644
index 6af3691..0000000
--- a/libsensors_iio/src/Pressure.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * STMicroelectronics Pressure Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "Pressure.h"
-
-Pressure::Pressure(HWSensorBaseCommonData *data, const char *name,
-		struct iio_sampling_frequency_available *sfa, int handle,
-		unsigned int hw_fifo_len, int pipe_data_fd, float power_consumption, bool wakeup) :
-			HWSensorBaseWithPollrate(data, name, sfa, handle,
-			SENSOR_TYPE_PRESSURE, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_PRESSURE;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = data->channels[0].scale;
-	sensor_t_data.maxRange = sensor_t_data.resolution * (pow(2.0, (double)data->channels[0].bits_used) - 1);
-
-	num_data_axis = SENSOR_BASE_1AXIS;
-}
-
-Pressure::~Pressure()
-{
-
-}
-
-void Pressure::ProcessData(SensorBaseData *data)
-{
-	sensor_event.pressure = data->raw[0];
-	sensor_event.timestamp = data->timestamp;
-
-	HWSensorBaseWithPollrate::WriteDataToPipe();
-	HWSensorBaseWithPollrate::ProcessData(data);
-}
diff --git a/libsensors_iio/src/Pressure.h b/libsensors_iio/src/Pressure.h
deleted file mode 100644
index 7c230bd..0000000
--- a/libsensors_iio/src/Pressure.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_PRESSURE_SENSOR_H
-#define ST_PRESSURE_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class Pressure
- */
-class Pressure : public HWSensorBaseWithPollrate {
-public:
-	Pressure(HWSensorBaseCommonData *data, const char *name,
-			struct iio_sampling_frequency_available *sfa, int handle,
-			unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption, bool wakeup);
-	~Pressure();
-
-	virtual void ProcessData(SensorBaseData *data);
-};
-
-#endif /* ST_PRESSURE_SENSOR_H */
diff --git a/libsensors_iio/src/SWAccelGyroFusion6X.cpp b/libsensors_iio/src/SWAccelGyroFusion6X.cpp
deleted file mode 100644
index 83f8bd5..0000000
--- a/libsensors_iio/src/SWAccelGyroFusion6X.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * STMicroelectronics Accel-Gyro Fusion 6X Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWAccelGyroFusion6X.h"
-
-extern "C" {
-	#include "vSensorAPI.h"
-}
-
-SWAccelGyroFusion6X::SWAccelGyroFusion6X(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X,
-			pipe_data_fd, false, false, true, false)
-{
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	sensor_t_data.resolution = ST_SENSOR_FUSION_RESOLUTION(1.0f);
-	sensor_t_data.maxRange = 1.0f;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ACCELEROMETER;
-	type_dependencies[SENSOR_BASE_DEPENDENCY_1] = SENSOR_TYPE_GYROSCOPE;
-	type_sensor_need_trigger = SENSOR_TYPE_GYROSCOPE;
-
-	vSensor_API_Initialization_6X(NULL);
-}
-
-SWAccelGyroFusion6X::~SWAccelGyroFusion6X()
-{
-
-}
-
-int SWAccelGyroFusion6X::Enable(int handle, bool enable)
-{
-	int err;
-	bool old_status;
-
-	old_status = GetStatus();
-
-	err = SWSensorBaseWithPollrate::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if ((GetStatus() && !old_status) || (!GetStatus() && old_status)) {
-		sensor_event.timestamp = 0;
-		vSensor_API_enable_6X(enable);
-	}
-
-	return 0;
-}
-
-int SWAccelGyroFusion6X::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int err;
-
-	if ((period_ns > FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE) && period_ns != INT64_MAX))
-		period_ns = FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE);
-
-	err = SWSensorBaseWithPollrate::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	real_pollrate = dependencies[SENSOR_BASE_DEPENDENCY_1]->GetRealPollrate();
-
-	return 0;
-}
-
-void SWAccelGyroFusion6X::SplitAndProcessData(SensorBaseData data[ST_ACCEL_GYRO_MAX_OUT_ID])
-{
-	int i, id, sensor_type;
-	trigger_mutex *dep_mutex;
-
-	for (i = 0; i < (int)sensors_to_push_data_num; i++) {
-		if (sensors_to_push_data[i]->GetStatus()) {
-			switch (sensors_to_push_data_type[i]) {
-			case SENSOR_TYPE_GAME_ROTATION_VECTOR:
-				id = ST_ACCEL_GYRO_ROTATION_VECTOR_OUT_ID;
-				break;
-			case SENSOR_TYPE_LINEAR_ACCELERATION:
-				id = ST_ACCEL_GYRO_LINEAR_ACCEL_OUT_ID;
-		break;
-			case SENSOR_TYPE_GRAVITY:
-				id = ST_ACCEL_GYRO_GRAVITY_OUT_ID;
-		break;
-			default:
-				continue;
-			}
-
-			sensors_to_push_data[i]->ReceiveDataFromDependency(sensor_t_data.handle, &data[id]);
-		}
-	}
-
-	for (i = 0; i < (int)sensors_to_trigger_num; i++) {
-		if (sensors_to_trigger[i]->GetStatus()) {
-			dep_mutex = sensors_to_trigger[i]->GetMutexForTrigger();
-			pthread_mutex_lock(&dep_mutex->trigger_mutex);
-			pthread_cond_signal(&dep_mutex->trigger_data_cond);
-			pthread_mutex_unlock(&dep_mutex->trigger_mutex);
-		}
-	}
-}
-
-void SWAccelGyroFusion6X::TriggerEventReceived()
-{
-	int64_t time_diff = 0;
-	SensorBaseData accel_data, gyro_data;
-	int err, data_remaining_gyro, nomaxdata = 10;
-
-	do {
-		data_remaining_gyro = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_1, &gyro_data);
-		if (data_remaining_gyro < 0)
-			return;
-
-		do {
-			err = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &accel_data);
-			if (err < 0) {
-				nomaxdata--;
-				usleep(200);
-				continue;
-			}
-
-			time_diff = gyro_data.timestamp - accel_data.timestamp;
-
-		} while ((time_diff >= GetRealPollrate()) && (nomaxdata > 0));
-
-		if (err >= 0)
-			vSensor_API_Run_6X(accel_data.raw, gyro_data.processed, gyro_data.timestamp);
-
-		sensor_event.timestamp = gyro_data.timestamp;
-
-		err = vSensor_API_Get_Quaternion_6X(outdata[ST_ACCEL_GYRO_ROTATION_VECTOR_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = vSensor_API_Get_LinAcc_6X(outdata[ST_ACCEL_GYRO_LINEAR_ACCEL_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = vSensor_API_Get_Gravity_6X(outdata[ST_ACCEL_GYRO_GRAVITY_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		outdata[ST_ACCEL_GYRO_ROTATION_VECTOR_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_ACCEL_GYRO_LINEAR_ACCEL_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_ACCEL_GYRO_GRAVITY_OUT_ID].timestamp = sensor_event.timestamp;
-
-		SplitAndProcessData(outdata);
-	} while (data_remaining_gyro > 0);
-}
diff --git a/libsensors_iio/src/SWAccelGyroFusion6X.h b/libsensors_iio/src/SWAccelGyroFusion6X.h
deleted file mode 100644
index 601191e..0000000
--- a/libsensors_iio/src/SWAccelGyroFusion6X.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SW_ACCEL_GYRO_6X_FUSION_H
-#define ST_SW_ACCEL_GYRO_6X_FUSION_H
-
-#include "SWSensorBase.h"
-
-#define ST_ACCEL_GYRO_ROTATION_VECTOR_OUT_ID		(0)
-#define ST_ACCEL_GYRO_LINEAR_ACCEL_OUT_ID		(1)
-#define ST_ACCEL_GYRO_GRAVITY_OUT_ID			(2)
-#define ST_ACCEL_GYRO_MAX_OUT_ID			(3)
-
-class SWAccelGyroFusion6X : public SWSensorBaseWithPollrate {
-protected:
-	SensorBaseData outdata[ST_ACCEL_GYRO_MAX_OUT_ID];
-
-public:
-	SWAccelGyroFusion6X(const char *name, int handle, int pipe_data_fd);
-	~SWAccelGyroFusion6X();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void SplitAndProcessData(SensorBaseData data[ST_ACCEL_GYRO_MAX_OUT_ID]);
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SW_ACCEL_GYRO_6X_FUSION_H */
diff --git a/libsensors_iio/src/SWAccelMagnFusion6X.cpp b/libsensors_iio/src/SWAccelMagnFusion6X.cpp
deleted file mode 100644
index 4822256..0000000
--- a/libsensors_iio/src/SWAccelMagnFusion6X.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * STMicroelectronics Accel-Magn Fusion 6X Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWAccelMagnFusion6X.h"
-
-extern "C" {
-	#include "iNemoEngineGeoMagAPI.h"
-}
-
-SWAccelMagnFusion6X::SWAccelMagnFusion6X(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X,
-			pipe_data_fd, false, false, true, false)
-{
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	sensor_t_data.resolution = ST_SENSOR_FUSION_RESOLUTION(1.0f);
-	sensor_t_data.maxRange = 1.0f;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ACCELEROMETER;
-	type_dependencies[SENSOR_BASE_DEPENDENCY_1] = SENSOR_TYPE_MAGNETIC_FIELD;
-	type_sensor_need_trigger = SENSOR_TYPE_MAGNETIC_FIELD;
-}
-
-SWAccelMagnFusion6X::~SWAccelMagnFusion6X()
-{
-
-}
-
-int SWAccelMagnFusion6X::Enable(int handle, bool enable)
-{
-	int err;
-	bool old_status;
-
-	old_status = GetStatus();
-
-	err = SWSensorBaseWithPollrate::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if (GetStatus() && !old_status) {
-		sensor_event.timestamp = 0;
-		iNemoEngine_GeoMag_API_Initialization();
-	}
-
-	return 0;
-}
-
-int SWAccelMagnFusion6X::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int err;
-
-	if ((period_ns > FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE) && period_ns != INT64_MAX))
-		period_ns = FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE);
-
-	err = SWSensorBaseWithPollrate::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	real_pollrate = dependencies[SENSOR_BASE_DEPENDENCY_1]->GetRealPollrate();
-
-	return 0;
-}
-
-void SWAccelMagnFusion6X::SplitAndProcessData(SensorBaseData data[ST_GEOMAG_MAX_OUT_ID])
-{
-	int i, id, sensor_type;
-	trigger_mutex *dep_mutex;
-
-	for (i = 0; i < (int)sensors_to_push_data_num; i++) {
-		if (sensors_to_push_data[i]->GetStatus()) {
-			switch (sensors_to_push_data_type[i]) {
-			case SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
-				id = ST_GEOMAG_ROTATION_VECTOR_OUT_ID;
-				break;
-			case SENSOR_TYPE_ORIENTATION:
-				id = ST_GEOMAG_ORIENTATION_OUT_ID;
-				break;
-			case SENSOR_TYPE_LINEAR_ACCELERATION:
-				id = ST_GEOMAG_LINEAR_ACCEL_OUT_ID;
-				break;
-			case SENSOR_TYPE_GRAVITY:
-				id = ST_GEOMAG_GRAVITY_OUT_ID;
-				break;
-			default:
-				continue;
-			}
-
-			sensors_to_push_data[i]->ReceiveDataFromDependency(sensor_t_data.handle, &data[id]);
-		}
-	}
-
-	for (i = 0; i < (int)sensors_to_trigger_num; i++) {
-		if (sensors_to_trigger[i]->GetStatus()) {
-			dep_mutex = sensors_to_trigger[i]->GetMutexForTrigger();
-			pthread_mutex_lock(&dep_mutex->trigger_mutex);
-			pthread_cond_signal(&dep_mutex->trigger_data_cond);
-			pthread_mutex_unlock(&dep_mutex->trigger_mutex);
-		}
-	}
-}
-
-void SWAccelMagnFusion6X::TriggerEventReceived()
-{
-	int deltatime;
-	int64_t time_diff = 0;
-	SensorBaseData accel_data, magn_data;
-	int err, data_remaining_magn, nomaxdata = 10;
-
-	do {
-		data_remaining_magn = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_1, &magn_data);
-		if (data_remaining_magn < 0)
-			return;
-
-		do {
-			err = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &accel_data);
-			if (err < 0) {
-				nomaxdata--;
-				usleep(200);
-				continue;
-			}
-
-			time_diff = magn_data.timestamp - accel_data.timestamp;
-
-		} while ((time_diff >= GetRealPollrate()) && (nomaxdata > 0));
-
-		if ((err >= 0) && (sensor_event.timestamp > 0)) {
-			deltatime = (int)NS_TO_MS((uint64_t)(magn_data.timestamp - sensor_event.timestamp));
-			iNemoEngine_GeoMag_API_Run(accel_data.raw, magn_data.processed, deltatime);
-		}
-
-		sensor_event.timestamp = magn_data.timestamp;
-
-		err = iNemoEngine_GeoMag_API_Get_Quaternion(outdata[ST_GEOMAG_ROTATION_VECTOR_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_GeoMag_API_Get_Hpr(outdata[ST_GEOMAG_ORIENTATION_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_GeoMag_API_Get_LinAcc(outdata[ST_GEOMAG_LINEAR_ACCEL_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_GeoMag_API_Get_Gravity(outdata[ST_GEOMAG_GRAVITY_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		outdata[ST_GEOMAG_ROTATION_VECTOR_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_GEOMAG_ORIENTATION_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_GEOMAG_LINEAR_ACCEL_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_GEOMAG_GRAVITY_OUT_ID].timestamp = sensor_event.timestamp;
-
-		SplitAndProcessData(outdata);
-	} while (data_remaining_magn > 0);
-}
diff --git a/libsensors_iio/src/SWAccelMagnFusion6X.h b/libsensors_iio/src/SWAccelMagnFusion6X.h
deleted file mode 100644
index 2cd27ce..0000000
--- a/libsensors_iio/src/SWAccelMagnFusion6X.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SW_ACCEL_MAGN_6X_FUSION_H
-#define ST_SW_ACCEL_MAGN_6X_FUSION_H
-
-#include "SWSensorBase.h"
-
-#define ST_GEOMAG_ROTATION_VECTOR_OUT_ID		(0)
-#define ST_GEOMAG_ORIENTATION_OUT_ID			(1)
-#define ST_GEOMAG_LINEAR_ACCEL_OUT_ID			(2)
-#define ST_GEOMAG_GRAVITY_OUT_ID			(3)
-#define ST_GEOMAG_MAX_OUT_ID				(4)
-
-class SWAccelMagnFusion6X : public SWSensorBaseWithPollrate {
-protected:
-	SensorBaseData outdata[ST_GEOMAG_MAX_OUT_ID];
-
-public:
-	SWAccelMagnFusion6X(const char *name, int handle, int pipe_data_fd);
-	~SWAccelMagnFusion6X();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void SplitAndProcessData(SensorBaseData data[ST_GEOMAG_MAX_OUT_ID]);
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SW_ACCEL_MAGN_6X_FUSION_H */
diff --git a/libsensors_iio/src/SWAccelMagnGyroFusion9X.cpp b/libsensors_iio/src/SWAccelMagnGyroFusion9X.cpp
deleted file mode 100644
index a772f39..0000000
--- a/libsensors_iio/src/SWAccelMagnGyroFusion9X.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * STMicroelectronics Accel-Magn-Gyro Fusion 9X Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWAccelMagnGyroFusion9X.h"
-
-extern "C" {
-	#include "iNemoEngineAPI.h"
-}
-
-SWAccelMagnGyroFusion9X::SWAccelMagnGyroFusion9X(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X,
-			pipe_data_fd, false, false, true, false)
-{
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	sensor_t_data.resolution = ST_SENSOR_FUSION_RESOLUTION(1.0f);
-	sensor_t_data.maxRange = 1.0f;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ACCELEROMETER;
-	type_dependencies[SENSOR_BASE_DEPENDENCY_1] = SENSOR_TYPE_GEOMAGNETIC_FIELD;
-	type_dependencies[SENSOR_BASE_DEPENDENCY_2] = SENSOR_TYPE_GYROSCOPE;
-	type_sensor_need_trigger = SENSOR_TYPE_GYROSCOPE;
-
-	iNemoEngine_API_Initialization_9X(NULL);
-}
-
-SWAccelMagnGyroFusion9X::~SWAccelMagnGyroFusion9X()
-{
-
-}
-
-int SWAccelMagnGyroFusion9X::Enable(int handle, bool enable)
-{
-	int err;
-	bool old_status;
-
-	old_status = GetStatus();
-
-	err = SWSensorBaseWithPollrate::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if ((GetStatus() && !old_status) || (!GetStatus() && old_status)) {
-		sensor_event.timestamp = 0;
-		iNemoEngine_API_enable_9X(enable);
-	}
-
-	return 0;
-}
-
-int SWAccelMagnGyroFusion9X::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int err;
-
-	if ((period_ns > FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE) && period_ns != INT64_MAX))
-		period_ns = FREQUENCY_TO_NS(CONFIG_ST_HAL_MIN_FUSION_POLLRATE);
-
-	err = SWSensorBaseWithPollrate::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	real_pollrate = dependencies[SENSOR_BASE_DEPENDENCY_2]->GetRealPollrate();
-
-	return 0;
-}
-
-void SWAccelMagnGyroFusion9X::SplitAndProcessData(SensorBaseData data[ST_ACCEL_MAGN_GYRO_MAX_OUT_ID])
-{
-	int i, id, sensor_type;
-	trigger_mutex *dep_mutex;
-
-	for (i = 0; i < (int)sensors_to_push_data_num; i++) {
-		if (sensors_to_push_data[i]->GetStatus()) {
-			switch (sensors_to_push_data_type[i]) {
-			case SENSOR_TYPE_ROTATION_VECTOR:
-				id = ST_ACCEL_MAGN_GYRO_ROTATION_VECTOR_OUT_ID;
-				break;
-			case SENSOR_TYPE_ORIENTATION:
-				id = ST_ACCEL_MAGN_GYRO_ORIENTATION_OUT_ID;
-				break;
-			case SENSOR_TYPE_GRAVITY:
-				id = ST_ACCEL_MAGN_GYRO_GRAVITY_OUT_ID;
-				break;
-			case SENSOR_TYPE_LINEAR_ACCELERATION:
-				id = ST_ACCEL_MAGN_GYRO_LINEAR_ACCEL__OUT_ID;
-				break;
-			default:
-				continue;
-			}
-
-			sensors_to_push_data[i]->ReceiveDataFromDependency(sensor_t_data.handle, &data[id]);
-		}
-	}
-
-	for (i = 0; i < (int)sensors_to_trigger_num; i++) {
-		if (sensors_to_trigger[i]->GetStatus()) {
-			dep_mutex = sensors_to_trigger[i]->GetMutexForTrigger();
-			pthread_mutex_lock(&dep_mutex->trigger_mutex);
-			pthread_cond_signal(&dep_mutex->trigger_data_cond);
-			pthread_mutex_unlock(&dep_mutex->trigger_mutex);
-		}
-	}
-}
-
-void SWAccelMagnGyroFusion9X::TriggerEventReceived()
-{
-	int64_t time_diff = 0;
-	SensorBaseData accel_data, magn_data, gyro_data;
-	int err, err2, data_remaining_gyro, nomaxdata_accel = 10, nomaxdata_magn = 10;
-
-	do {
-		data_remaining_gyro = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_2, &gyro_data);
-		if (data_remaining_gyro < 0)
-			return;
-
-		do {
-			err = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &accel_data);
-			if (err < 0) {
-				nomaxdata_accel--;
-				usleep(200);
-				continue;
-			}
-
-			time_diff = gyro_data.timestamp - accel_data.timestamp;
-
-		} while ((time_diff >= GetRealPollrate()) && (nomaxdata_accel > 0));
-
-		do {
-			err2 = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_1, &magn_data);
-			if (err2 < 0) {
-				nomaxdata_magn--;
-				usleep(200);
-				continue;
-			}
-
-			time_diff = gyro_data.timestamp - magn_data.timestamp;
-
-		} while ((time_diff >= GetRealPollrate()) && (nomaxdata_magn > 0));
-
-		if ((err >= 0) && (err2 >= 0))
-			iNemoEngine_API_Run_9X(accel_data.raw, magn_data.processed, gyro_data.processed, gyro_data.timestamp);
-
-		sensor_event.timestamp = gyro_data.timestamp;
-
-		err = iNemoEngine_API_Get_Quaternion_9X(outdata[ST_ACCEL_MAGN_GYRO_ROTATION_VECTOR_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_API_Get_Euler_Angles_9X(outdata[ST_ACCEL_MAGN_GYRO_ORIENTATION_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_API_Get_Gravity_9X(outdata[ST_ACCEL_MAGN_GYRO_GRAVITY_OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		err = iNemoEngine_API_Get_Linear_Acceleration_9X(outdata[ST_ACCEL_MAGN_GYRO_LINEAR_ACCEL__OUT_ID].processed);
-		if (err < 0)
-			return;
-
-		outdata[ST_ACCEL_MAGN_GYRO_ROTATION_VECTOR_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_ACCEL_MAGN_GYRO_ORIENTATION_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_ACCEL_MAGN_GYRO_GRAVITY_OUT_ID].timestamp = sensor_event.timestamp;
-		outdata[ST_ACCEL_MAGN_GYRO_LINEAR_ACCEL__OUT_ID].timestamp = sensor_event.timestamp;
-
-		SplitAndProcessData(outdata);
-	} while (data_remaining_gyro > 0);
-}
diff --git a/libsensors_iio/src/SWAccelMagnGyroFusion9X.h b/libsensors_iio/src/SWAccelMagnGyroFusion9X.h
deleted file mode 100644
index c197190..0000000
--- a/libsensors_iio/src/SWAccelMagnGyroFusion9X.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SW_ACCEL_MAGN_GYRO_9X_FUSION_H
-#define ST_SW_ACCEL_MAGN_GYRO_9X_FUSION_H
-
-#include "SWSensorBase.h"
-
-#define ST_ACCEL_MAGN_GYRO_ROTATION_VECTOR_OUT_ID	(0)
-#define ST_ACCEL_MAGN_GYRO_ORIENTATION_OUT_ID		(1)
-#define ST_ACCEL_MAGN_GYRO_GRAVITY_OUT_ID		(2)
-#define ST_ACCEL_MAGN_GYRO_LINEAR_ACCEL__OUT_ID		(3)
-#define ST_ACCEL_MAGN_GYRO_MAX_OUT_ID			(4)
-
-class SWAccelMagnGyroFusion9X : public SWSensorBaseWithPollrate {
-protected:
-	SensorBaseData outdata[ST_ACCEL_MAGN_GYRO_MAX_OUT_ID];
-
-public:
-	SWAccelMagnGyroFusion9X(const char *name, int handle, int pipe_data_fd);
-	~SWAccelMagnGyroFusion9X();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void SplitAndProcessData(SensorBaseData data[ST_ACCEL_MAGN_GYRO_MAX_OUT_ID]);
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SW_ACCEL_MAGN_GYRO_9X_FUSION_H */
diff --git a/libsensors_iio/src/SWGameRotationVector.cpp b/libsensors_iio/src/SWGameRotationVector.cpp
deleted file mode 100644
index 7fe993d..0000000
--- a/libsensors_iio/src/SWGameRotationVector.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * STMicroelectronics SW Game Rotation Vector Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWGameRotationVector.h"
-
-SWGameRotationVector::SWGameRotationVector(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_GAME_ROTATION_VECTOR,
-			pipe_data_fd, true, true, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_GAME_ROTATION_VECTOR;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-
-	num_data_axis = SENSOR_BASE_4AXIS;
-}
-
-SWGameRotationVector::~SWGameRotationVector()
-{
-
-}
-
-void SWGameRotationVector::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData game_quaternion;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &game_quaternion);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, game_quaternion.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = game_quaternion.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&game_quaternion);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWGameRotationVector.h b/libsensors_iio/src/SWGameRotationVector.h
deleted file mode 100644
index 4b7e30a..0000000
--- a/libsensors_iio/src/SWGameRotationVector.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWGAME_ROTATION_VECTOR_H
-#define ST_SWGAME_ROTATION_VECTOR_H
-
-#include "SWSensorBase.h"
-
-class SWGameRotationVector : public SWSensorBaseWithPollrate {
-public:
-	SWGameRotationVector(const char *name, int handle, int pipe_data_fd);
-	~SWGameRotationVector();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWGAME_ROTATION_VECTOR_H */
diff --git a/libsensors_iio/src/SWGeoMagRotationVector.cpp b/libsensors_iio/src/SWGeoMagRotationVector.cpp
deleted file mode 100644
index f0f455e..0000000
--- a/libsensors_iio/src/SWGeoMagRotationVector.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * STMicroelectronics SW Geomagnetic Rotation Vector Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWGeoMagRotationVector.h"
-
-SWGeoMagRotationVector::SWGeoMagRotationVector(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR,
-			pipe_data_fd, true, true, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X;
-
-	num_data_axis = SENSOR_BASE_4AXIS;
-}
-
-SWGeoMagRotationVector::~SWGeoMagRotationVector()
-{
-
-}
-
-void SWGeoMagRotationVector::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData geomag_quaternion;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &geomag_quaternion);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, geomag_quaternion.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = geomag_quaternion.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&geomag_quaternion);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWGeoMagRotationVector.h b/libsensors_iio/src/SWGeoMagRotationVector.h
deleted file mode 100644
index e3bc0c4..0000000
--- a/libsensors_iio/src/SWGeoMagRotationVector.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWGEOMAG_ROTATION_VECTOR_H
-#define ST_SWGEOMAG_ROTATION_VECTOR_H
-
-#include "SWSensorBase.h"
-
-class SWGeoMagRotationVector : public SWSensorBaseWithPollrate {
-public:
-	SWGeoMagRotationVector(const char *name, int handle, int pipe_data_fd);
-	~SWGeoMagRotationVector();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWGEOMAG_ROTATION_VECTOR_H */
diff --git a/libsensors_iio/src/SWGravity.cpp b/libsensors_iio/src/SWGravity.cpp
deleted file mode 100644
index 6b452ab..0000000
--- a/libsensors_iio/src/SWGravity.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * STMicroelectronics SW Gravity Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "SWGravity.h"
-
-SWGravity::SWGravity(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_GRAVITY,
-			pipe_data_fd, true, false, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_GRAVITY;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-
-	num_data_axis = SENSOR_BASE_4AXIS;
-}
-
-SWGravity::~SWGravity()
-{
-
-}
-
-void SWGravity::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData gravity;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &gravity);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, gravity.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = gravity.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&gravity);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWGravity.h b/libsensors_iio/src/SWGravity.h
deleted file mode 100644
index 7b02f15..0000000
--- a/libsensors_iio/src/SWGravity.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWGRAVITY_H
-#define ST_SWGRAVITY_H
-
-#include "SWSensorBase.h"
-
-class SWGravity : public SWSensorBaseWithPollrate {
-public:
-	SWGravity(const char *name, int handle, int pipe_data_fd);
-	~SWGravity();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWGRAVITY_H */
diff --git a/libsensors_iio/src/SWGyroscopeUncalibrated.cpp b/libsensors_iio/src/SWGyroscopeUncalibrated.cpp
deleted file mode 100644
index 55e8bfe..0000000
--- a/libsensors_iio/src/SWGyroscopeUncalibrated.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * STMicroelectronics Gyroscope Uncalibrated Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWGyroscopeUncalibrated.h"
-
-SWGyroscopeUncalibrated::SWGyroscopeUncalibrated(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_GYROSCOPE_UNCALIBRATED,
-			pipe_data_fd, true, true, true, true)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_GYROSCOPE_UNCALIBRATED;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_GYROSCOPE;
-	type_sensor_need_trigger = SENSOR_TYPE_GYROSCOPE;
-}
-
-SWGyroscopeUncalibrated::~SWGyroscopeUncalibrated()
-{
-
-}
-
-void SWGyroscopeUncalibrated::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData gyro_data;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &gyro_data);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.uncalibrated_gyro.uncalib, gyro_data.raw, num_data_axis * sizeof(float));
-		memcpy(sensor_event.uncalibrated_gyro.bias, gyro_data.offset, num_data_axis * sizeof(float));
-		sensor_event.timestamp = gyro_data.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&gyro_data);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWGyroscopeUncalibrated.h b/libsensors_iio/src/SWGyroscopeUncalibrated.h
deleted file mode 100644
index 3f87bdd..0000000
--- a/libsensors_iio/src/SWGyroscopeUncalibrated.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWGYROSCOPE_UNCALIBRATED_H
-#define ST_SWGYROSCOPE_UNCALIBRATED_H
-
-#include "SWSensorBase.h"
-
-class SWGyroscopeUncalibrated : public SWSensorBaseWithPollrate {
-public:
-	SWGyroscopeUncalibrated(const char *name, int handle, int pipe_data_fd);
-	~SWGyroscopeUncalibrated();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWGYROSCOPE_UNCALIBRATED_H */
diff --git a/libsensors_iio/src/SWLinearAccel.cpp b/libsensors_iio/src/SWLinearAccel.cpp
deleted file mode 100644
index 5e8163e..0000000
--- a/libsensors_iio/src/SWLinearAccel.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * STMicroelectronics SW Linear Acceleration Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#include "SWLinearAccel.h"
-
-SWLinearAccel::SWLinearAccel(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_LINEAR_ACCELERATION,
-			pipe_data_fd, true, false, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_LINEAR_ACCELERATION;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X;
-
-	num_data_axis = SENSOR_BASE_4AXIS;
-}
-
-SWLinearAccel::~SWLinearAccel()
-{
-
-}
-
-void SWLinearAccel::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData linear_accel;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &linear_accel);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, linear_accel.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = linear_accel.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&linear_accel);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWLinearAccel.h b/libsensors_iio/src/SWLinearAccel.h
deleted file mode 100644
index baf7507..0000000
--- a/libsensors_iio/src/SWLinearAccel.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWLINEAR_ACCEL_H
-#define ST_SWLINEAR_ACCEL_H
-
-#include "SWSensorBase.h"
-
-class SWLinearAccel : public SWSensorBaseWithPollrate {
-public:
-	SWLinearAccel(const char *name, int handle, int pipe_data_fd);
-	~SWLinearAccel();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWLINEAR_ACCEL_H */
diff --git a/libsensors_iio/src/SWMagnetometerUncalibrated.cpp b/libsensors_iio/src/SWMagnetometerUncalibrated.cpp
deleted file mode 100644
index ab4baaf..0000000
--- a/libsensors_iio/src/SWMagnetometerUncalibrated.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * STMicroelectronics Magnetometer Uncalibrated Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWMagnetometerUncalibrated.h"
-
-SWMagnetometerUncalibrated::SWMagnetometerUncalibrated(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED,
-			pipe_data_fd, true, true, true, true)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_MAGNETIC_FIELD;
-	type_sensor_need_trigger = SENSOR_TYPE_MAGNETIC_FIELD;
-}
-
-SWMagnetometerUncalibrated::~SWMagnetometerUncalibrated()
-{
-
-}
-
-void SWMagnetometerUncalibrated::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData magn_data;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &magn_data);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.uncalibrated_magnetic.uncalib, magn_data.raw, num_data_axis * sizeof(float));
-		memcpy(sensor_event.uncalibrated_magnetic.bias, magn_data.offset, num_data_axis * sizeof(float));
-		sensor_event.timestamp = magn_data.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&magn_data);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWMagnetometerUncalibrated.h b/libsensors_iio/src/SWMagnetometerUncalibrated.h
deleted file mode 100644
index dbcd7f4..0000000
--- a/libsensors_iio/src/SWMagnetometerUncalibrated.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWMAGNETOMETER_UNCALIBRATED_H
-#define ST_SWMAGNETOMETER_UNCALIBRATED_H
-
-#include "SWSensorBase.h"
-
-class SWMagnetometerUncalibrated : public SWSensorBaseWithPollrate {
-public:
-	SWMagnetometerUncalibrated(const char *name, int handle, int pipe_data_fd);
-	~SWMagnetometerUncalibrated();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWMAGNETOMETER_UNCALIBRATED_H */
diff --git a/libsensors_iio/src/SWOrientation.cpp b/libsensors_iio/src/SWOrientation.cpp
deleted file mode 100644
index 2b7a807..0000000
--- a/libsensors_iio/src/SWOrientation.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * STMicroelectronics SW Orientation Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWOrientation.h"
-
-SWOrientation::SWOrientation(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_ORIENTATION,
-			pipe_data_fd, true, false, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_ORIENTATION;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	sensor_t_data.maxRange = 360.0f;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X;
-}
-
-SWOrientation::~SWOrientation()
-{
-
-}
-
-void SWOrientation::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData orientation;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &orientation);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, orientation.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = orientation.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&orientation);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWOrientation.h b/libsensors_iio/src/SWOrientation.h
deleted file mode 100644
index 391c07a..0000000
--- a/libsensors_iio/src/SWOrientation.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWORIENTATION_H
-#define ST_SWORIENTATION_H
-
-#include "SWSensorBase.h"
-
-class SWOrientation : public SWSensorBaseWithPollrate {
-public:
-	SWOrientation(const char *name, int handle, int pipe_data_fd);
-	~SWOrientation();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWORIENTATION_H */
diff --git a/libsensors_iio/src/SWRotationVector.cpp b/libsensors_iio/src/SWRotationVector.cpp
deleted file mode 100644
index 7d57a92..0000000
--- a/libsensors_iio/src/SWRotationVector.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * STMicroelectronics SW Rotation Vector Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SWRotationVector.h"
-
-SWRotationVector::SWRotationVector(const char *name, int handle, int pipe_data_fd) :
-		SWSensorBaseWithPollrate(name, handle, SENSOR_TYPE_ROTATION_VECTOR,
-			pipe_data_fd, true, true, true, false)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_ROTATION_VECTOR;
-	sensor_t_data.flags = SENSOR_FLAG_CONTINUOUS_MODE;
-
-	type_dependencies[SENSOR_BASE_DEPENDENCY_0] = SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X;
-	type_sensor_need_trigger = SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X;
-
-	num_data_axis = SENSOR_BASE_4AXIS;
-}
-
-SWRotationVector::~SWRotationVector()
-{
-
-}
-
-void SWRotationVector::TriggerEventReceived()
-{
-	int data_remaining;
-	SensorBaseData quaternion;
-
-	do {
-		data_remaining = GetLatestValidDataFromDependency(SENSOR_BASE_DEPENDENCY_0, &quaternion);
-		if (data_remaining < 0)
-			return;
-
-		memcpy(sensor_event.data, quaternion.processed, num_data_axis * sizeof(float));
-		sensor_event.timestamp = quaternion.timestamp;
-
-		SWSensorBaseWithPollrate::WriteDataToPipe();
-		SWSensorBaseWithPollrate::ProcessData(&quaternion);
-	} while (data_remaining > 0);
-}
diff --git a/libsensors_iio/src/SWRotationVector.h b/libsensors_iio/src/SWRotationVector.h
deleted file mode 100644
index 4b82907..0000000
--- a/libsensors_iio/src/SWRotationVector.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWROTATION_VECTOR_H
-#define ST_SWROTATION_VECTOR_H
-
-#include "SWSensorBase.h"
-
-class SWRotationVector : public SWSensorBaseWithPollrate {
-public:
-	SWRotationVector(const char *name, int handle, int pipe_data_fd);
-	~SWRotationVector();
-
-	virtual void TriggerEventReceived();
-};
-
-#endif /* ST_SWROTATION_VECTOR_H */
diff --git a/libsensors_iio/src/SWSensorBase.cpp b/libsensors_iio/src/SWSensorBase.cpp
deleted file mode 100644
index 83da79f..0000000
--- a/libsensors_iio/src/SWSensorBase.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * STMicroelectronics SW Sensor Base Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <string.h>
-
-#include "SWSensorBase.h"
-
-SWSensorBase::SWSensorBase(const char *name, int handle, int sensor_type, int pipe_data_fd,
-		bool use_dependency_resolution, bool use_dependency_range, bool use_dependency_delay,
-		bool use_dependency_name) : SensorBase(name, handle, sensor_type, pipe_data_fd)
-{
-	dependency_resolution = use_dependency_resolution;
-	dependency_range = use_dependency_range;
-	dependency_delay = use_dependency_delay;
-	dependency_name = use_dependency_name;
-
-	return;
-}
-
-SWSensorBase::~SWSensorBase()
-{
-	return;
-}
-
-int SWSensorBase::AddSensorDependency(SensorBase *p)
-{
-	struct sensor_t dependecy_data;
-
-	if (sensor_t_data.fifoMaxEventCount == 0)
-		sensor_t_data.fifoMaxEventCount = p->GetMaxFifoLenght();
-	else {
-		if (p->GetMaxFifoLenght() < (int)sensor_t_data.fifoMaxEventCount)
-			sensor_t_data.fifoMaxEventCount = p->GetMaxFifoLenght();
-	}
-
-	p->FillSensor_tData(&dependecy_data);
-
-	if (dependency_resolution)
-		sensor_t_data.resolution = dependecy_data.resolution;
-
-	if (dependency_range)
-		sensor_t_data.maxRange = dependecy_data.maxRange;
-
-	if (dependency_delay) {
-		if (sensor_t_data.minDelay == 0)
-			sensor_t_data.minDelay = dependecy_data.minDelay;
-		else {
-			if (dependecy_data.minDelay > sensor_t_data.minDelay)
-				sensor_t_data.minDelay = dependecy_data.minDelay;
-		}
-
-		if (sensor_t_data.maxDelay == 0)
-			sensor_t_data.maxDelay = dependecy_data.maxDelay;
-		else {
-			if (dependecy_data.maxDelay < sensor_t_data.maxDelay)
-				sensor_t_data.maxDelay = dependecy_data.maxDelay;
-		}
-	}
-
-	if (dependency_name) {
-		memcpy((char *)sensor_t_data.name, dependecy_data.name, strlen(dependecy_data.name) + 1);
-	}
-
-	return SensorBase::AddSensorDependency(p);
-}
-
-int SWSensorBase::FlushData(bool /*need_report_event*/)
-{
-	int err = -1, i;
-	bool report_event_at_once = false;
-
-	if (GetStatus() && (GetMinTimeout() > 0)) {
-		int64_t flush_timestamp = get_monotonic_time();
-		if (flush_timestamp <= real_pollrate) {
-			ALOGE("HWSensorBase get flush base timestamp failed");
-			return err;
-		}
-		ALOGD("sw flush timestamp %lld", flush_timestamp);
-		if (flush_timestamp > (last_data_timestamp + real_pollrate * 11 / 10)) {
-			flush_timestamp -= real_pollrate;
-			(SensorBase::timestamp).push_back(flush_timestamp);
-		} else
-			report_event_at_once = true;
-
-		for (i = 0; i < (int)dependencies_num; i++) {
-			err = dependencies[i]->FlushData(false);
-			if (err < 0)
-				return -EINVAL;
-		}
-
-		if (report_event_at_once)
-			SensorBase::FlushData(false);
-
-		return 0;
-	} else
-		return -EINVAL;
-}
-
-void SWSensorBase::ThreadTask()
-{
-	while (true) {
-		pthread_mutex_lock(&mutext.trigger_mutex);
-		pthread_cond_wait(&mutext.trigger_data_cond, &mutext.trigger_mutex);
-		TriggerEventReceived();
-		pthread_mutex_unlock(&mutext.trigger_mutex);
-	}
-}
-
-
-SWSensorBaseWithPollrate::SWSensorBaseWithPollrate(const char *name, int handle, int sensor_type, int pipe_data_fd,
-		bool use_dependency_resolution, bool use_dependency_range, bool use_dependency_delay,
-		bool use_dependency_name) : SWSensorBase(name, handle, sensor_type, pipe_data_fd,
-		use_dependency_resolution, use_dependency_range, use_dependency_delay, use_dependency_name)
-{
-
-}
-
-SWSensorBaseWithPollrate::~SWSensorBaseWithPollrate()
-{
-
-}
-
-int SWSensorBaseWithPollrate::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int i, err;
-	int64_t temp_real_pollrate = 0;
-
-	err = SWSensorBase::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	for (i = 0; i < (int)dependencies_num; i++) {
-		if (temp_real_pollrate < GetMinPeriod())
-			temp_real_pollrate = GetMinPeriod();
-	}
-
-	return 0;
-}
-
-void SWSensorBaseWithPollrate::WriteDataToPipe()
-{
-	int err, retry = 3;
-	std::vector<int64_t>::iterator it;
-
-	if (!GetStatusOfHandle(sensor_t_data.handle))
-		return;
-
-	if (!(SensorBase::timestamp.empty())) {
-		int64_t last_timestamp = 0;
-		for (it = SensorBase::timestamp.begin(); it != SensorBase::timestamp.end(); ) {
-			/* If two flush event come within 1 odr, there may not have data in hw fifo,
-			 * so report corresponding flush complete events here.
-			 */
-			if ((sensor_event.timestamp >= *it) ||
-					(last_timestamp != 0 && (*it - last_timestamp < real_pollrate * 11 / 10))) {
-				sensors_event_t flush_event_data;
-
-				flush_event_data.sensor = 0;
-				flush_event_data.timestamp = 0;
-				flush_event_data.meta_data.sensor = sensor_t_data.handle;
-				flush_event_data.meta_data.what = META_DATA_FLUSH_COMPLETE;
-				flush_event_data.type = SENSOR_TYPE_META_DATA;
-				flush_event_data.version = META_DATA_VERSION;
-
-				while (retry) {
-					err = SensorBase::WritePipeWithPoll(&flush_event_data, sizeof(sensor_event),
-											POLL_TIMEOUT_FLUSH_EVENT);
-					if (err > 0)
-						break;
-
-					retry--;
-					ALOGI("%s: Retry writing flush event data to pipe, retry_cnt: %d.", android_name, 3-retry);
-				}
-
-				if (retry ==  0)
-					ALOGE("%s: Failed to write SW flush_complete, err=%d", android_name, err);
-				else
-					ALOGD("SW flush_complete sent");
-
-				last_timestamp = *it;
-				it = SensorBase::timestamp.erase(it);
-			} else
-				break;
-		}
-	}
-
-	if (sensor_event.timestamp >= (last_data_timestamp + real_pollrate * 9 / 10)) {
-		err = SensorBase::WritePipeWithPoll(&sensor_event, sizeof(sensor_event), POLL_TIMEOUT_DATA_EVENT);
-		if (err <= 0) {
-			ALOGE("%s: Failed to write sensor data - err=%d.", android_name, err);
-			return;
-		}
-
-		last_data_timestamp = sensor_event.timestamp;
-	}
-}
diff --git a/libsensors_iio/src/SWSensorBase.h b/libsensors_iio/src/SWSensorBase.h
deleted file mode 100644
index 3bfa3be..0000000
--- a/libsensors_iio/src/SWSensorBase.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SWSENSOR_BASE_H
-#define ST_SWSENSOR_BASE_H
-
-
-#include "SensorBase.h"
-
-#define ST_SENSOR_FUSION_RESOLUTION(maxRange)		(maxRange / (1 << 24))
-
-class SWSensorBase;
-
-/*
- * class SWSensorBase
- */
-class SWSensorBase : public SensorBase {
-protected:
-	bool dependency_resolution;
-	bool dependency_range;
-	bool dependency_delay;
-	bool dependency_name;
-
-public:
-	SWSensorBase(const char *name, int handle, int sensor_type, int pipe_data_fd,
-			bool use_dependency_resolution, bool use_dependency_range,
-			bool use_dependency_delay, bool use_dependency_name);
-	virtual ~SWSensorBase();
-
-	int AddSensorDependency(SensorBase *p);
-	virtual int FlushData(bool need_report_event);
-	virtual void ThreadTask();
-};
-
-
-/*
- * class SWSensorBaseWithPollrate
- */
-class SWSensorBaseWithPollrate : public SWSensorBase {
-public:
-	SWSensorBaseWithPollrate(const char *name, int handle, int sensor_type, int pipe_data_fd,
-			bool use_dependency_resolution, bool use_dependency_range,
-			bool use_dependency_delay, bool use_dependency_name);
-	virtual ~SWSensorBaseWithPollrate();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void WriteDataToPipe();
-};
-
-#endif /* ST_SWSENSOR_BASE_H */
diff --git a/libsensors_iio/src/SensorBase.cpp b/libsensors_iio/src/SensorBase.cpp
deleted file mode 100644
index bfee207..0000000
--- a/libsensors_iio/src/SensorBase.cpp
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * STMicroelectronics Sensor Base Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <string.h>
-#include <signal.h>
-#include <time.h>
-
-#include "SensorBase.h"
-
-int64_t get_monotonic_time(void)
-{
-	int err;
-	struct timespec tm;
-
-	err = clock_gettime(CLOCK_BOOTTIME, &tm);
-	if (err < 0) {
-		ALOGE("get_monotonic_time failed, err=%d", err);
-		return err;
-	}
-
-	ALOGD("get_monotonic_time %ld, %ld", tm.tv_sec, tm.tv_nsec);
-	return (int64_t) tm.tv_sec * 1000000000 + (int64_t) tm.tv_nsec;
-}
-
-SensorBase::SensorBase(const char *name, int handle, int type, int pipe_data_fd)
-{
-	int i;
-
-	if (strlen(name) + 1 > SENSOR_BASE_ANDROID_NAME_MAX) {
-		memcpy(android_name, name, SENSOR_BASE_ANDROID_NAME_MAX - 1);
-		android_name[SENSOR_BASE_ANDROID_NAME_MAX - 1] = '\0';
-	} else
-		memcpy(android_name, name, strlen(name) + 1);
-
-	memset(&sensor_t_data, 0, sizeof(sensor_t));
-	memset(&sensor_event, 0, sizeof(sensors_event_t));
-	memset(type_dependencies, 0, SENSOR_BASE_MAX_DEPENDENCY * sizeof(int));
-	memset(sensors_pollrates, 0, ST_HAL_IIO_MAX_DEVICES * sizeof(int64_t));
-	memset(last_timestap_pushed, 0, ST_HAL_IIO_MAX_DEVICES * sizeof(int64_t));
-
-	for (i = 0; i < ST_HAL_IIO_MAX_DEVICES; i++)
-		sensors_timeout[i] = INT64_MAX;
-
-	sensor_event.version = sizeof(sensors_event_t);
-	sensor_event.sensor = handle;
-	sensor_event.type = type;
-
-	sensor_t_data.name = android_name;
-	sensor_t_data.handle = handle;
-	sensor_t_data.type = type;
-	sensor_t_data.vendor = "STMicroelectronics";
-	sensor_t_data.version = 1;
-
-	real_pollrate = 0;
-	dependencies_num = 0;
-	last_data_timestamp = 0;
-	enabled_sensors_mask = 0;
-	sensors_to_trigger_num = 0;
-	type_sensor_need_trigger = -ENODEV;
-	sensors_to_push_data_num = 0;
-	num_data_axis = SENSOR_BASE_3AXIS;
-
-	android_pipe_fd = pipe_data_fd;
-
-	pthread_mutex_init(&mutext.trigger_mutex, NULL);
-	pthread_cond_init(&mutext.trigger_data_cond, NULL);
-
-	valid_class = true;
-}
-
-SensorBase::~SensorBase()
-{
-	int i;
-
-	for (i = 0; i < (int)dependencies_num; i++)
-		DeAllocateBufferForDependencyData(i);
-}
-
-bool SensorBase::IsValidClass()
-{
-	return valid_class;
-}
-
-int SensorBase::GetHandle()
-{
-	return sensor_t_data.handle;
-}
-
-int SensorBase::GetType()
-{
-	return sensor_t_data.type;
-}
-
-int SensorBase::GetMaxFifoLenght()
-{
-	return sensor_t_data.fifoMaxEventCount;
-}
-
-void SensorBase::SetBitEnableMask(int handle)
-{
-	enabled_sensors_mask |= (1ULL << handle);
-}
-
-void SensorBase::ResetBitEnableMask(int handle)
-{
-	enabled_sensors_mask &= ~(1ULL << handle);
-}
-
-char* SensorBase::GetName()
-{
-	return (char *)sensor_t_data.name;
-}
-
-int SensorBase::Enable(int handle, bool enable)
-{
-	int err, i = 0;
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_INFO)
-	bool old_status = GetStatus();
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-	if ((enable && !GetStatus()) || (!enable && !GetStatusExcludeHandle(handle))) {
-		for (i = 0; i < (int)dependencies_num; i++) {
-			err = dependencies[i]->Enable(sensor_event.sensor, enable);
-			if (err < 0)
-				goto restore_enable_dependencies;
-		}
-	}
-
-	if (enable)
-		SetBitEnableMask(handle);
-	else {
-		err = SetDelay(handle, 0, INT64_MAX);
-		if (err < 0)
-			goto restore_enable_dependencies;
-
-		ResetBitEnableMask(handle);
-	}
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_INFO)
-	if (((old_status && !GetStatus()) || (!old_status && GetStatus())) && (sensor_t_data.type < SENSOR_TYPE_ST_CUSTOM_NO_SENSOR)) {
-		if (GetStatus())
-			ALOGI("\"%s\": power-on (sensor type: %d).", sensor_t_data.name, sensor_t_data.type);
-		else
-			ALOGI("\"%s\": power-off (sensor type: %d).", sensor_t_data.name, sensor_t_data.type);
-	}
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-	return 0;
-
-restore_enable_dependencies:
-	for (i--; i >= 0; i--)
-		dependencies[i]->Enable(sensor_event.sensor, !enable);
-
-	return err;
-}
-
-bool SensorBase::GetStatusExcludeHandle(int handle)
-{
-	return (enabled_sensors_mask & ~(1ULL << handle)) > 0 ? true : false;
-}
-
-bool SensorBase::GetStatusOfHandle(int handle)
-{
-	return (enabled_sensors_mask & (1ULL << handle)) > 0 ? true : false;
-}
-
-bool SensorBase::GetStatus()
-{
-	return enabled_sensors_mask > 0 ? true : false;
-}
-
-int SensorBase::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int err, i;
-	int64_t restore_min_timeout, restore_min_period_ms;
-
-	restore_min_timeout = sensors_timeout[handle];
-	restore_min_period_ms = sensors_pollrates[handle];
-
-	sensors_pollrates[handle] = period_ns;
-	sensors_timeout[handle] = timeout;
-
-	for (i = 0; i < (int)dependencies_num; i++) {
-		err = dependencies[i]->SetDelay(sensor_event.sensor, GetMinPeriod(), GetMinTimeout());
-		if (err < 0)
-			goto restore_delay_dependencies;
-	}
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_INFO)
-	if ((handle == sensor_t_data.handle) && (period_ns > 0))
-		ALOGI("\"%s\": changed pollrate to %.2f Hz, timeout %lld ms (sensor type: %d).",
-				sensor_t_data.name, NS_TO_FREQUENCY((float)(uint64_t)period_ns),
-				(uint64_t)NS_TO_MS((uint64_t)timeout), sensor_t_data.type);
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-	return 0;
-
-restore_delay_dependencies:
-	sensors_pollrates[handle] = restore_min_period_ms;
-	sensors_timeout[handle] = restore_min_timeout;
-
-	for (i--; i >= 0; i--)
-		dependencies[i]->SetDelay(sensor_event.sensor, GetMinPeriod(), GetMinTimeout());
-
-	return err;
-}
-
-int64_t SensorBase::GetDelay()
-{
-	return sensors_pollrates[sensor_event.sensor];
-}
-
-int64_t SensorBase::GetRealPollrate()
-{
-	return real_pollrate;
-}
-
-void SensorBase::GetDepenciesTypeList(int type[SENSOR_BASE_MAX_DEPENDENCY])
-{
-	memcpy(type, type_dependencies, SENSOR_BASE_MAX_DEPENDENCY * sizeof(int));
-}
-
-trigger_mutex* SensorBase::GetMutexForTrigger()
-{
-	return &mutext;
-}
-
-int SensorBase::GetSensorNeedTriggerType()
-{
-	return type_sensor_need_trigger;
-}
-
-int SensorBase::AddSensorDependency(SensorBase *p)
-{
-	int err;
-	uint32_t sensor_wake_flag;
-	struct sensor_t dependecy_data;
-
-	if (dependencies_num >= SENSOR_BASE_MAX_DEPENDENCY) {
-		ALOGE("%s: Failed to add dependency, too many dependencies.", android_name);
-		return -ENOMEM;
-	}
-
-	err = AllocateBufferForDependencyData(dependencies_num, p->GetMaxFifoLenght());
-	if (err < 0)
-		return err;
-
-	err = p->AddSensorToDataPush(this);
-	if (err < 0) {
-		DeAllocateBufferForDependencyData(dependencies_num);
-		return err;
-	}
-
-	p->FillSensor_tData(&dependecy_data);
-	sensor_t_data.power += dependecy_data.power;
-
-	sensor_wake_flag = (dependecy_data.flags & SENSOR_FLAG_WAKE_UP);
-	if (dependencies_num == 0)
-		sensor_t_data.flags |= sensor_wake_flag;
-	else {
-		if (!sensor_wake_flag)
-			sensor_t_data.flags &= ~sensor_wake_flag;
-	}
-
-	handle_remapping[p->GetHandle()] = dependencies_num;
-	dependencies[dependencies_num] = p;
-	dependencies_num++;
-
-	return 0;
-}
-
-void SensorBase::RemoveSensorDependency(SensorBase *p)
-{
-	int i;
-
-	for (i = 0; i < (int)dependencies_num; i++) {
-		if (p == dependencies[i])
-			break;
-	}
-	if (i == (int)dependencies_num)
-		return;
-
-	DeAllocateBufferForDependencyData(i);
-	p->RemoveSensorToDataPush(this);
-
-	for (; i < (int)dependencies_num - 1; i++)
-		dependencies[i] = dependencies[i + 1];
-
-	dependencies_num--;
-}
-
-int SensorBase::AllocateBufferForDependencyData(int dependency_id, unsigned int max_fifo_len)
-{
-	circular_buffer_data[dependency_id] = new CircularBuffer(max_fifo_len < 2 ? 2 : max_fifo_len);
-	if (!circular_buffer_data[dependency_id])
-		return -ENOMEM;
-
-	return 0;
-}
-
-void SensorBase::DeAllocateBufferForDependencyData(int dependency_id)
-{
-	delete circular_buffer_data[dependency_id];
-}
-
-int SensorBase::AddSensorToDataPush(SensorBase *t)
-{
-	int err;
-
-	if (sensors_to_push_data_num >= SENSOR_BASE_MAX_DEPENDENCY) {
-		ALOGE("%s: Failed to add dependency data, too many sensors to push data.", android_name);
-		return -ENOMEM;
-	}
-
-	sensors_to_push_data_type[sensors_to_push_data_num] = t->GetType();
-	sensors_to_push_data[sensors_to_push_data_num] = t;
-	sensors_to_push_data_num++;
-
-	return 0;
-}
-
-void SensorBase::RemoveSensorToDataPush(SensorBase *t)
-{
-	int i;
-
-	for (i = 0; i < (int)sensors_to_push_data_num; i++) {
-		if (t == sensors_to_push_data[i])
-			break;
-	}
-	if (i == (int)sensors_to_push_data_num)
-		return;
-
-	for (; i < (int)sensors_to_push_data_num - 1; i++)
-		sensors_to_push_data[i] = sensors_to_push_data[i + 1];
-
-	sensors_to_push_data_num--;
-}
-
-int SensorBase::AddSensorToTrigger(SensorBase *t)
-{
-	int err;
-
-	if (sensors_to_trigger_num >= SENSOR_BASE_MAX_DEPENDENCY) {
-		ALOGE("%s: Failed to add dependency, too many sensors to trigger.", android_name);
-		return -ENOMEM;
-	}
-
-	sensors_to_trigger[sensors_to_trigger_num] = t;
-	sensors_to_trigger_num++;
-
-	return 0;
-}
-
-bool SensorBase::FillSensor_tData(struct sensor_t *data)
-{
-	memcpy(data, &sensor_t_data, sizeof(struct sensor_t));
-
-	if (sensor_t_data.type >= SENSOR_TYPE_ST_CUSTOM_NO_SENSOR)
-		return false;
-
-	return true;
-}
-
-int SensorBase::WritePipeWithPoll(sensors_event_t *event_data, int size, int timeout)
-{
-	int err;
-	struct pollfd poll_fd;
-
-	poll_fd.fd = android_pipe_fd;
-	poll_fd.events = POLLOUT;
-
-	err = poll(&poll_fd, (unsigned long)1, timeout);
-	if (err < 0) {
-		ALOGE("%s: error happened when polling pipe, errno: %d.", android_name, errno);
-		return err;
-	}
-
-	if (err == 0) {
-		ALOGE("%s: polling pipe timeout, timeout = %d.", android_name, timeout);
-		return err;
-	}
-
-	if (poll_fd.revents&POLLOUT) {
-		err = write(android_pipe_fd, event_data, size);
-		if (err <= 0) {
-			ALOGE("%s: Failed to write to pipe, timeout: %d, errno: %d.",
-				android_name, timeout, errno);
-			return err;
-		}
-	} else {
-		ALOGE("%s: polling was breaked by unexpected event: %d", android_name, poll_fd.revents);
-		return -EAGAIN;
-	}
-
-	return err;
-}
-
-int SensorBase::FlushData(bool)
-{
-	int err = 0, retry = 3;
-	sensors_event_t flush_event_data;
-
-	flush_event_data.sensor = 0;
-	flush_event_data.timestamp = 0;
-	flush_event_data.meta_data.sensor = sensor_t_data.handle;
-	flush_event_data.meta_data.what = META_DATA_FLUSH_COMPLETE;
-	flush_event_data.type = SENSOR_TYPE_META_DATA;
-	flush_event_data.version = META_DATA_VERSION;
-
-	while (retry) {
-		err = WritePipeWithPoll(&flush_event_data, sizeof(sensor_event),
-						POLL_TIMEOUT_FLUSH_EVENT);
-		if (err > 0)
-			break;
-
-		retry--;
-		ALOGI("%s: Retry writing flush event data to pipe, retry_cnt: %d.", android_name, 3-retry);
-	}
-
-	if (retry == 0)
-		ALOGE("%s: Failed to write flush event data to pipe, err=%d.", android_name, err);
-	else
-		ALOGD("SensorBase::FlushData completed.");
-
-	return err;
-}
-
-void SensorBase::WriteDataToPipe()
-{
-	int err;
-
-	if (!GetStatusOfHandle(sensor_t_data.handle))
-		return;
-
-	if (sensor_event.timestamp > last_data_timestamp) {
-		err = WritePipeWithPoll(&sensor_event, sizeof(sensor_event),
-						POLL_TIMEOUT_DATA_EVENT);
-		if (err <= 0) {
-			ALOGE("%s: Failed to write sensor data to pipe.", android_name);
-			return;
-		}
-
-		last_data_timestamp = sensor_event.timestamp;
-	}
-}
-
-void SensorBase::ProcessData(SensorBaseData *data)
-{
-	int i;
-	trigger_mutex *dep_mutex;
-
-	for (i = 0; i < (int)sensors_to_push_data_num; i++) {
-		if (sensors_to_push_data[i]->GetStatus())
-			sensors_to_push_data[i]->ReceiveDataFromDependency(sensor_t_data.handle, data);
-	}
-
-	for (i = 0; i < (int)sensors_to_trigger_num; i++) {
-		if (sensors_to_trigger[i]->GetStatus()) {
-			dep_mutex = sensors_to_trigger[i]->GetMutexForTrigger();
-			pthread_mutex_lock(&dep_mutex->trigger_mutex);
-			pthread_cond_signal(&dep_mutex->trigger_data_cond);
-			pthread_mutex_unlock(&dep_mutex->trigger_mutex);
-		}
-	}
-}
-
-void SensorBase::ProcessEvent(struct iio_event_data __attribute__((unused))*event_data)
-{
-	return;
-}
-
-void SensorBase::TriggerEventReceived()
-{
-	return;
-}
-
-void SensorBase::ReceiveDataFromDependency(int handle, SensorBaseData *data)
-{
-	if (data->timestamp >= last_timestap_pushed[handle]) {
-		circular_buffer_data[handle_remapping[handle]]->writeElement(data);
-		last_timestap_pushed[handle] = data->timestamp;
-	}
-
-	return;
-}
-
-int SensorBase::GetLatestValidDataFromDependency(int dependency_id, SensorBaseData *data)
-{
-	return circular_buffer_data[dependency_id]->readElement(data);
-}
-
-
-int64_t SensorBase::GetMinTimeout()
-{
-	int i;
-	int64_t min = INT64_MAX;
-
-	for (i = 0; i < ST_HAL_IIO_MAX_DEVICES; i++) {
-		if (sensors_timeout[i] < min)
-			min = sensors_timeout[i];
-	}
-
-	return min;
-}
-
-int64_t SensorBase::GetMinPeriod()
-{
-	int i;
-	int64_t min = INT64_MAX;
-
-	for (i = 0; i < ST_HAL_IIO_MAX_DEVICES; i++) {
-		if ((sensors_pollrates[i] < min) && (sensors_pollrates[i] > 0))
-			min = sensors_pollrates[i];
-	}
-
-	return min;
-}
-
-void *SensorBase::ThreadWork(void *context)
-{
-	SensorBase *mypointer = (SensorBase *)context;
-
-	mypointer->ThreadTask();
-
-	return mypointer;
-}
-
-void SensorBase::ThreadTask()
-{
-	pthread_exit(NULL);
-}
diff --git a/libsensors_iio/src/SensorBase.h b/libsensors_iio/src/SensorBase.h
deleted file mode 100644
index b20dea2..0000000
--- a/libsensors_iio/src/SensorBase.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SENSOR_BASE_H
-#define ST_SENSOR_BASE_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <pthread.h>
-#include <errno.h>
-#include <poll.h>
-#include <vector>
-
-#include <hardware/sensors.h>
-#include <cutils/log.h>
-
-#include "common_data.h"
-#include <CircularBuffer.h>
-
-#define SENSOR_BASE_0AXIS			(0)
-#define SENSOR_BASE_1AXIS			(1)
-#define SENSOR_BASE_3AXIS			(3)
-#define SENSOR_BASE_4AXIS			(4)
-
-#define SENSOR_BASE_DEPENDENCY_0		(0)
-#define SENSOR_BASE_DEPENDENCY_1		(1)
-#define SENSOR_BASE_DEPENDENCY_2		(2)
-#define SENSOR_BASE_DEPENDENCY_3		(3)
-#define SENSOR_BASE_DEPENDENCY_4		(4)
-#define SENSOR_BASE_MAX_DEPENDENCY		(5)
-
-#define SENSOR_BASE_ANDROID_NAME_MAX		(40)
-
-#define POLL_TIMEOUT_FLUSH_EVENT		(-1)
-#define POLL_TIMEOUT_DATA_EVENT		(1000)
-
-#define GAUSS_TO_UTESLA(x)			((x) * 100.0f)
-#define NS_TO_FREQUENCY(x)			(1E9 / x)
-#define FREQUENCY_TO_NS(x)			(1E9 / x)
-#define FREQUENCY_TO_US(x)			(1E6 / x)
-#define NS_TO_MS(x)				(x / 1E6)
-#define NS_TO_S(x)				(x / 1E9)
-
-typedef struct trigger_mutex {
-	pthread_mutex_t trigger_mutex;
-	pthread_cond_t trigger_data_cond;
-} trigger_mutex;
-
-class SensorBase;
-
-/*
- * class SensorBase
- */
-class SensorBase {
-private:
-	int64_t enabled_sensors_mask;
-	int64_t sensors_timeout[ST_HAL_IIO_MAX_DEVICES];
-	int64_t sensors_pollrates[ST_HAL_IIO_MAX_DEVICES];
-	int64_t last_timestap_pushed[ST_HAL_IIO_MAX_DEVICES];
-
-	CircularBuffer *circular_buffer_data[SENSOR_BASE_MAX_DEPENDENCY];
-
-protected:
-	bool valid_class;
-	char android_name[SENSOR_BASE_ANDROID_NAME_MAX];
-
-	int android_pipe_fd;
-	int type_sensor_need_trigger;
-	int handle_remapping[ST_HAL_IIO_MAX_DEVICES];
-	int type_dependencies[SENSOR_BASE_MAX_DEPENDENCY];
-	int sensors_to_push_data_type[SENSOR_BASE_MAX_DEPENDENCY];
-
-	unsigned int num_data_axis;
-	unsigned int dependencies_num;
-	unsigned int sensors_to_trigger_num;
-	unsigned int sensors_to_push_data_num;
-
-	int64_t real_pollrate;
-	int64_t last_data_timestamp;
-
-	SensorBase *sensors_to_push_data[SENSOR_BASE_MAX_DEPENDENCY];
-	SensorBase *sensors_to_trigger[SENSOR_BASE_MAX_DEPENDENCY];
-	SensorBase *dependencies[SENSOR_BASE_MAX_DEPENDENCY];
-	sensors_event_t sensor_event;
-	struct sensor_t sensor_t_data;
-
-	trigger_mutex mutext;
-
-	int64_t GetMinTimeout();
-	int64_t GetMinPeriod();
-
-	void SetBitEnableMask(int handle);
-	void ResetBitEnableMask(int handle);
-
-	bool GetStatusExcludeHandle(int handle);
-	bool GetStatusOfHandle(int handle);
-
-	int AllocateBufferForDependencyData(int dependency_id, unsigned int max_fifo_len);
-	void DeAllocateBufferForDependencyData(int dependency_id);
-
-	int AddSensorToDataPush(SensorBase *t);
-	void RemoveSensorToDataPush(SensorBase *t);
-
-public:
-	SensorBase(const char *name, int handle, int type, int pipe_data_fd);
-	virtual ~SensorBase();
-	bool IsValidClass();
-
-	int GetHandle();
-	int GetType();
-	int GetMaxFifoLenght();
-
-	std::vector<int64_t> timestamp;
-	char* GetName();
-
-	virtual int Enable(int handle, bool enable);
-	bool GetStatus();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	int64_t GetDelay();
-	int64_t GetRealPollrate();
-
-	void GetDepenciesTypeList(int type[SENSOR_BASE_MAX_DEPENDENCY]);
-	int AddSensorDependency(SensorBase *p);
-	void RemoveSensorDependency(SensorBase *p);
-
-	trigger_mutex* GetMutexForTrigger();
-	int GetSensorNeedTriggerType();
-	int AddSensorToTrigger(SensorBase *t);
-
-	bool FillSensor_tData(struct sensor_t *data);
-
-	virtual int WritePipeWithPoll(sensors_event_t *event_data, int size, int timeout);
-	virtual int FlushData(bool);
-
-	virtual void ProcessData(SensorBaseData *data);
-	virtual void ProcessEvent(struct iio_event_data *event_data);
-	virtual void TriggerEventReceived();
-	virtual void WriteDataToPipe();
-	virtual void ReceiveDataFromDependency(int handle, SensorBaseData *data);
-
-	virtual int GetLatestValidDataFromDependency(int dependency_id, SensorBaseData *data);
-
-	static void *ThreadWork(void *context);
-	virtual void ThreadTask();
-};
-
-int64_t get_monotonic_time(void);
-
-#endif /* ST_SENSOR_BASE_H */
diff --git a/libsensors_iio/src/SensorHAL.cpp b/libsensors_iio/src/SensorHAL.cpp
deleted file mode 100644
index c0c8443..0000000
--- a/libsensors_iio/src/SensorHAL.cpp
+++ /dev/null
@@ -1,986 +0,0 @@
-/*
- * STMicroelectronics SensorHAL core
- *
- * Version 3.1.0
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <math.h>
-#include <pthread.h>
-#include <endian.h>
-
-#include "SensorHAL.h"
-#include "Accelerometer.h"
-#include "Magnetometer.h"
-#include "Gyroscope.h"
-
-#ifdef CONFIG_ST_HAL_STEP_DETECTOR_ENABLED
-#include "StepDetector.h"
-#endif /* CONFIG_ST_HAL_STEP_DETECTOR_ENABLED */
-
-#ifdef CONFIG_ST_HAL_STEP_COUNTER_ENABLED
-#include "StepCounter.h"
-#endif /* CONFIG_ST_HAL_STEP_COUNTER_ENABLED */
-
-#ifdef CONFIG_ST_HAL_SIGN_MOTION_ENABLED
-#include "SignificantMotion.h"
-#endif /* CONFIG_ST_HAL_SIGN_MOTION_ENABLED */
-
-#ifdef CONFIG_ST_HAL_TILT_ENABLED
-#include "TiltSensor.h"
-#endif /* CONFIG_ST_HAL_TILT_ENABLED */
-
-#ifdef CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED
-#include "SWMagnetometerUncalibrated.h"
-#endif /* CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED */
-
-#ifdef CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED
-#include "SWGyroscopeUncalibrated.h"
-#endif /* CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED */
-
-#ifdef CONFIG_ST_HAL_PRESSURE_ENABLED
-#include "Pressure.h"
-#endif /* CONFIG_ST_HAL_PRESSURE_ENABLED */
-
-#ifdef ST_HAL_NEEDS_GEOMAG_FUSION
-#include "SWAccelMagnFusion6X.h"
-#endif /* ST_HAL_NEEDS_GEOMAG_FUSION */
-
-#ifdef CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED
-#include "SWGeoMagRotationVector.h"
-#endif /* CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED */
-
-#ifdef ST_HAL_NEEDS_6AX_FUSION
-#include "SWAccelGyroFusion6X.h"
-#endif /* ST_HAL_NEEDS_6AX_FUSION */
-
-#ifdef CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED
-#include "SWGameRotationVector.h"
-#endif /* CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED */
-
-#ifdef ST_HAL_NEEDS_9AX_FUSION
-#include "SWAccelMagnGyroFusion9X.h"
-#endif /* ST_HAL_NEEDS_9AX_FUSION */
-
-#ifdef CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED
-#include "SWRotationVector.h"
-#endif /* CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED */
-
-#ifdef CONFIG_ST_HAL_ORIENTATION_AP_ENABLED
-#include "SWOrientation.h"
-#endif /* CONFIG_ST_HAL_ORIENTATION_AP_ENABLED */
-
-#ifdef CONFIG_ST_HAL_GRAVITY_AP_ENABLED
-#include "SWGravity.h"
-#endif /* CONFIG_ST_HAL_GRAVITY_AP_ENABLED */
-
-#ifdef CONFIG_ST_HAL_LINEAR_AP_ENABLED
-#include "SWLinearAccel.h"
-#endif /* CONFIG_ST_HAL_LINEAR_AP_ENABLED */
-
-struct STSensorHAL_iio_devices_data {
-	char *iio_sysfs_path;
-	char *device_name;
-	char *android_name;
-	unsigned int dev_id;
-	int sensor_type;
-
-	bool wake_up_sensor;
-
-	int num_channels;
-	struct iio_channel_info *channels;
-	struct iio_scale_available sa;
-
-	unsigned int hw_fifo_len;
-	float power_consumption;
-
-	struct iio_sampling_frequency_available sfa;
-} typedef STSensorHAL_iio_devices_data;
-
-/*
- * ST_sensors_supported: ST sensors data used for discovery procedure
- * @driver_name: IIO device name.
- * @android_name: name showed in Android OS.
- * @sensor_type: Android sensor type.
- * @power_consumption: sensor power consumption in mA.
- */
-static const struct ST_sensors_supported {
-	const char *driver_name;
-	const char *android_name;
-	int sensor_type;
-	float power_consumption;
-} ST_sensors_supported[] = {
-#ifdef CONFIG_ST_HAL_ACCEL_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, ACCEL_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Accelerometer Sensor",
-	.sensor_type = SENSOR_TYPE_ACCELEROMETER,
-	.power_consumption = 240E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_ACCEL_ENABLED */
-#ifdef CONFIG_ST_HAL_MAGN_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, MAGN_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Magnetometer Sensor",
-	.sensor_type = SENSOR_TYPE_GEOMAGNETIC_FIELD,
-	.power_consumption = 2.0f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_MAGN_ENABLED */
-#ifdef CONFIG_ST_HAL_GYRO_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, GYRO_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Gyroscope Sensor",
-	.sensor_type = SENSOR_TYPE_GYROSCOPE,
-	.power_consumption = 1.25f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_GYRO_ENABLED */
-#ifdef CONFIG_ST_HAL_STEP_DETECTOR_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, STEP_DETECTOR_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Step Detector Sensor",
-	.sensor_type = SENSOR_TYPE_STEP_DETECTOR,
-	.power_consumption = 240E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_STEP_DETECTOR_ENABLED */
-#ifdef CONFIG_ST_HAL_STEP_COUNTER_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, STEP_COUNTER_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Step Counter Sensor",
-	.sensor_type = SENSOR_TYPE_STEP_COUNTER,
-	.power_consumption = 240E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_STEP_COUNTER_ENABLED */
-#ifdef CONFIG_ST_HAL_SIGN_MOTION_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, SIGN_MOTION_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Significant Motion Sensor",
-	.sensor_type = SENSOR_TYPE_SIGNIFICANT_MOTION,
-	.power_consumption = 240E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_SIGN_MOTION_ENABLED */
-#ifdef CONFIG_ST_HAL_TILT_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, TILT_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Tilt Sensor",
-	.sensor_type = SENSOR_TYPE_TILT_DETECTOR,
-	.power_consumption = 240E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_TILT_ENABLED */
-#ifdef CONFIG_ST_HAL_PRESSURE_ENABLED
-#ifdef CONFIG_ST_HAL_LSM6DS3_ENABLED
-	{
-	.driver_name = CONCATENATE_STRING(ST_SENSORS_LIST_1, PRESSURE_NAME_SUFFIX_IIO),
-	.android_name = "LSM6DS3 Pressure Sensor",
-	.sensor_type = SENSOR_TYPE_PRESSURE,
-	.power_consumption = 40E-3f,
-	},
-#endif /* CONFIG_ST_HAL_LSM6DS3_ENABLED */
-#endif /* CONFIG_ST_HAL_PRESSURE_ENABLED */
-};
-
-static const struct ST_virtual_sensors_list {
-	int sensor_type;
-} ST_virtual_sensors_list[] = {
-#ifdef ST_HAL_NEEDS_GEOMAG_FUSION
-	{ .sensor_type = SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X },
-#endif /* ST_HAL_NEEDS_GEOMAG_FUSION */
-#ifdef CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED },
-#endif /* CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_GYROSCOPE_UNCALIBRATED },
-#endif /* CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR },
-#endif /* CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED */
-#ifdef ST_HAL_NEEDS_6AX_FUSION
-	{ .sensor_type = SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X },
-#endif /* ST_HAL_NEEDS_6AX_FUSION */
-#ifdef CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_GAME_ROTATION_VECTOR },
-#endif /* CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED */
-#ifdef ST_HAL_NEEDS_9AX_FUSION
-	{ .sensor_type = SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X },
-#endif /* ST_HAL_NEEDS_9AX_FUSION */
-#ifdef CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_ROTATION_VECTOR },
-#endif /* CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_ORIENTATION_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_ORIENTATION },
-#endif /* CONFIG_ST_HAL_ORIENTATION_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_GRAVITY_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_GRAVITY },
-#endif /* CONFIG_ST_HAL_GRAVITY_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_LINEAR_AP_ENABLED
-	{ .sensor_type = SENSOR_TYPE_LINEAR_ACCELERATION },
-#endif /* CONFIG_ST_HAL_LINEAR_AP_ENABLED */
-};
-
-/*
- * st_hal_create_virtual_class_sensor: instantiate virtual sensor class.
- * @sensor_type: android sensor type.
- * @handle: android handle number.
- * @android_pipe_fd: file descriptor used to push new data.
- *
- * Return value: sensor class pointer on success, NULL pointer if fail.
- */
-static SensorBase* st_hal_create_virtual_class_sensor(int sensor_type, int handle, int android_pipe_fd)
-{
-	SensorBase *sb = NULL;
-
-	switch (sensor_type) {
-#ifdef CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED
-	case SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED:
-		sb = new SWMagnetometerUncalibrated("Magnetometer Uncalibrated Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED
-	case SENSOR_TYPE_GYROSCOPE_UNCALIBRATED:
-		sb = new SWGyroscopeUncalibrated("Gyroscope Uncalibrated Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED */
-#ifdef ST_HAL_NEEDS_GEOMAG_FUSION
-	case SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X:
-		sb = new SWAccelMagnFusion6X("Accel-Magn Fusion 6X", handle, android_pipe_fd);
-		break;
-#endif /* ST_HAL_NEEDS_GEOMAG_FUSION */
-#ifdef CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED
-	case SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
-		sb = new SWGeoMagRotationVector("iNemoEngine GeoMagnetic Rotation Vector Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED */
-#ifdef ST_HAL_NEEDS_6AX_FUSION
-	case SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X:
-		sb = new SWAccelGyroFusion6X("Accel-Gyro Fusion 6X", handle, android_pipe_fd);
-		break;
-#endif /* ST_HAL_NEEDS_6AX_FUSION */
-#ifdef CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED
-	case SENSOR_TYPE_GAME_ROTATION_VECTOR:
-		sb = new SWGameRotationVector("iNemoEngine Game Rotation Vector Sensor", handle, android_pipe_fd);
-		break;
-#endif /* SENSOR_TYPE_GAME_ROTATION_VECTOR */
-#ifdef ST_HAL_NEEDS_9AX_FUSION
-	case SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X:
-		sb = new SWAccelMagnGyroFusion9X("Accel-Magn-Gyro Fusion 9X", handle, android_pipe_fd);
-		break;
-#endif /* ST_HAL_NEEDS_9AX_FUSION */
-#ifdef CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED
-	case SENSOR_TYPE_ROTATION_VECTOR:
-		sb = new SWRotationVector("iNemoEngine Rotation Vector Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_ORIENTATION_AP_ENABLED
-	case SENSOR_TYPE_ORIENTATION:
-		sb = new SWOrientation("iNemoEngine Orientation Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_ORIENTATION_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_GRAVITY_AP_ENABLED
-	case SENSOR_TYPE_GRAVITY:
-		sb = new SWGravity("iNemoEngine Gravity Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_GRAVITY_AP_ENABLED */
-#ifdef CONFIG_ST_HAL_LINEAR_AP_ENABLED
-	case SENSOR_TYPE_LINEAR_ACCELERATION:
-		sb = new SWLinearAccel("iNemoEngine Linear Acceleration Sensor", handle, android_pipe_fd);
-		break;
-#endif /* CONFIG_ST_HAL_LINEAR_AP_ENABLED */
-	default:
-		(int)handle;
-		(int)android_pipe_fd;
-		return NULL;
-	}
-
-	return sb->IsValidClass() ? sb : NULL;
-}
-
-/*
- * st_hal_create_class_sensor: instantiate sensor class.
- * @data: device data.
- * @handle: android handle number.
- * @android_pipe_fd: file descriptor used to push new data.
- *
- * Return value: sensor class pointer on success, NULL pointer if fail.
- */
-static SensorBase* st_hal_create_class_sensor(STSensorHAL_iio_devices_data *data, int handle, int android_pipe_fd)
-{
-	SensorBase *sb = NULL;
-	struct HWSensorBaseCommonData class_data;
-
-	if ((strlen(data->iio_sysfs_path) + 1 > HW_SENSOR_BASE_IIO_SYSFS_PATH_MAX) ||
-			(strlen(data->device_name) + 1 > HW_SENSOR_BASE_IIO_DEVICE_NAME_MAX) ||
-			(data->num_channels > HW_SENSOR_BASE_MAX_CHANNELS))
-		return NULL;
-
-	memcpy(class_data.device_name, data->device_name, strlen(data->device_name) + 1);
-	memcpy(class_data.iio_sysfs_path, data->iio_sysfs_path, strlen(data->iio_sysfs_path) + 1);
-	memcpy(&class_data.sa, &data->sa, sizeof(class_data.sa));
-	memcpy(class_data.channels, data->channels, data->num_channels * sizeof(class_data.channels[0]));
-
-	class_data.iio_dev_num = data->dev_id;
-	class_data.num_channels = data->num_channels;
-
-	switch (data->sensor_type) {
-#ifdef CONFIG_ST_HAL_ACCEL_ENABLED
-	case SENSOR_TYPE_ACCELEROMETER:
-		sb = new Accelerometer(&class_data, data->android_name, &data->sfa,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_ACCEL_ENABLED */
-#ifdef CONFIG_ST_HAL_MAGN_ENABLED
-	case SENSOR_TYPE_MAGNETIC_FIELD:
-		sb = new Magnetometer(&class_data, data->android_name, &data->sfa,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_MAGN_ENABLED */
-#ifdef CONFIG_ST_HAL_GYRO_ENABLED
-	case SENSOR_TYPE_GYROSCOPE:
-		sb = new Gyroscope(&class_data, data->android_name, &data->sfa,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_GYRO_ENABLED */
-#ifdef CONFIG_ST_HAL_STEP_DETECTOR_ENABLED
-	case SENSOR_TYPE_STEP_DETECTOR:
-		sb = new StepDetector(&class_data, data->android_name,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_STEP_DETECTOR_ENABLED */
-#ifdef CONFIG_ST_HAL_STEP_COUNTER_ENABLED
-	case SENSOR_TYPE_STEP_COUNTER:
-		sb = new StepCounter(&class_data, data->android_name,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_STEP_COUNTER_ENABLED */
-#ifdef CONFIG_ST_HAL_SIGN_MOTION_ENABLED
-	case SENSOR_TYPE_SIGNIFICANT_MOTION:
-		sb = new SignMotion(&class_data, data->android_name,
-				handle, android_pipe_fd, data->power_consumption);
-		break;
-#endif /* CONFIG_ST_HAL_SIGN_MOTION_ENABLED */
-#ifdef CONFIG_ST_HAL_TILT_ENABLED
-	case SENSOR_TYPE_TILT_DETECTOR:
-		sb = new TiltSensor(&class_data, data->android_name,
-				handle, android_pipe_fd, data->power_consumption);
-		break;
-#endif /* CONFIG_ST_HAL_TILT_ENABLED */
-#ifdef CONFIG_ST_HAL_PRESSURE_ENABLED
-	case SENSOR_TYPE_PRESSURE:
-		sb = new Pressure(&class_data, data->android_name, &data->sfa,
-				handle, data->hw_fifo_len, android_pipe_fd,
-				data->power_consumption, data->wake_up_sensor);
-		break;
-#endif /* CONFIG_ST_HAL_PRESSURE_ENABLED */
-	default:
-		return NULL;
-	}
-
-	return sb->IsValidClass() ? sb : NULL;
-}
-
-/*
- * st_hal_set_fullscale: change fullscale of iio device sensor.
- * @iio_sysfs_path: iio device driver sysfs path.
- * @sensor_type: android sensor type.
- * @sa: scale available structure.
- * @channels: iio channels informations.
- * @num_channels: number of iio channels.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_set_fullscale(char *iio_sysfs_path, int sensor_type,
-		struct iio_scale_available *sa, struct iio_channel_info *channels, int num_channels)
-{
-	int err, i, c, max_value;
-
-	switch (sensor_type) {
-#ifdef CONFIG_ST_HAL_ACCEL_ENABLED
-	case SENSOR_TYPE_ACCELEROMETER:
-		max_value = CONFIG_ST_HAL_ACCEL_RANGE;
-		break;
-#endif /* CONFIG_ST_HAL_ACCEL_ENABLED */
-#ifdef CONFIG_ST_HAL_MAGN_ENABLED
-	case SENSOR_TYPE_MAGNETIC_FIELD:
-		max_value = CONFIG_ST_HAL_MAGN_RANGE;
-		break;
-#endif /* CONFIG_ST_HAL_MAGN_ENABLED */
-#ifdef CONFIG_ST_HAL_GYRO_ENABLED
-	case SENSOR_TYPE_GYROSCOPE:
-		max_value = CONFIG_ST_HAL_GYRO_RANGE;
-		break;
-#endif /* CONFIG_ST_HAL_GYRO_ENABLED */
-	default:
-		return -EINVAL;
-	}
-
-	for (i = 0; i < (int)sa->num_available; i++) {
-		if ((sa->values[i] * ((int)pow(2.0, channels[0].bits_used - 1.0) - 1)) >= max_value)
-			break;
-	}
-	if (i == (int)sa->num_available)
-		i = sa->num_available - 1;
-
-	err = iio_utils_set_scale(iio_sysfs_path, sa->values[i], sensor_type);
-	if (err < 0)
-		return err;
-
-	for (c = 0; c < num_channels - 1; c++)
-		channels[c].scale = sa->values[i];
-
-	return 0;
-}
-
-/*
- * st_hal_load_iio_devices_data: read iio devices data.
- * @data: iio device data.
- *
- * Return value: number of sensors found on success, negative number if fail.
- */
-static int st_hal_load_iio_devices_data(STSensorHAL_iio_devices_data *data)
-{
-	unsigned int index = 0;
-	int err, iio_devices_num, i, n;
-	struct iio_device iio_devices[ST_HAL_IIO_MAX_DEVICES];
-
-	iio_devices_num = iio_utils_get_devices_name(iio_devices, ST_HAL_IIO_MAX_DEVICES);
-	if (iio_devices_num <= 0) {
-		ALOGE("Failed to read iio devices available into /sys/bus/iio/devices/ folder (errno: %d).", iio_devices_num);
-		return iio_devices_num;
-	}
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_VERBOSE)
-	ALOGD("%d IIO devices available into /sys/bus/iio/devices/ folder.", iio_devices_num);
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-	for (i = 0; i < iio_devices_num; i++) {
-		for (n = 0; n < ARRAY_SIZE(ST_sensors_supported); n++) {
-			err = strncmp(iio_devices[i].name, ST_sensors_supported[n].driver_name,
-							strlen(ST_sensors_supported[n].driver_name));
-			if (err == 0)
-				break;
-		}
-		if (n == ARRAY_SIZE(ST_sensors_supported)) {
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_EXTRA_VERBOSE)
-			ALOGD("\"%s\": IIO device not supported by sensor HAL.", iio_devices[i].name);
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-			continue;
-		}
-
-		if (strcmp(&iio_devices[i].name[strlen(iio_devices[i].name) -
-				strlen(ST_HAL_WAKEUP_SUFFIX_IIO)], ST_HAL_WAKEUP_SUFFIX_IIO) == 0)
-			data[index].wake_up_sensor = true;
-		else
-			data[index].wake_up_sensor = false;
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_VERBOSE)
-		ALOGD("\"%s\": IIO device found and supported. Wake-up sensor: %s", iio_devices[i].name, data[index].wake_up_sensor ? "yes" : "no" );
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-		err = asprintf(&data[index].iio_sysfs_path, "%siio:device%d",
-						"/sys/bus/iio/devices/", iio_devices[i].dev_num);
-		if (err < 0)
-			continue;
-
-		data[index].power_consumption = ST_sensors_supported[n].power_consumption;
-
-		err = iio_utils_build_channel_array(data[index].iio_sysfs_path, &data[index].channels,
-								&data[index].num_channels, true);
-		if (err < 0) {
-			ALOGE("\"%s\": failed to read IIO channels informations. (errno: %d)", iio_devices[i].name, err);
-			goto st_hal_load_free_iio_sysfs_path;
-		}
-
-		err = iio_utils_enable_sensor(data[index].iio_sysfs_path, false);
-		if (err < 0) {
-			ALOGE("\"%s\": failed to disable sensor. (errno: %d)", iio_devices[i].name, err);
-			goto st_hal_load_free_iio_channels;
-		}
-
-		if ((ST_sensors_supported[n].sensor_type != SENSOR_TYPE_STEP_DETECTOR) &&
-				(ST_sensors_supported[n].sensor_type != SENSOR_TYPE_STEP_COUNTER) &&
-					(ST_sensors_supported[n].sensor_type != SENSOR_TYPE_SIGNIFICANT_MOTION) &&
-						(ST_sensors_supported[n].sensor_type != SENSOR_TYPE_TILT_DETECTOR)) {
-			err = iio_utils_get_sampling_frequency_available(data[index].iio_sysfs_path, &data[index].sfa);
-			if (err < 0)
-				goto st_hal_load_free_iio_channels;
-
-			err = iio_utils_get_scale_available(data[index].iio_sysfs_path, &data[index].sa,
-									ST_sensors_supported[n].sensor_type);
-			if (err < 0)
-				goto st_hal_load_free_iio_channels;
-
-			if (data[index].sa.num_available > 0) {
-				err = st_hal_set_fullscale(data[index].iio_sysfs_path, ST_sensors_supported[n].sensor_type,
-								&data[index].sa, data[index].channels, data[index].num_channels);
-				if (err < 0) {
-					ALOGE("\"%s\": failed to set device full-scale. (errno: %d)", iio_devices[i].name, err);
-					goto st_hal_load_free_iio_channels;
-				}
-			}
-		}
-
-		err = asprintf(&data[index].device_name, "%s", iio_devices[i].name);
-		if (err < 0)
-			goto st_hal_load_free_iio_channels;
-
-		err = asprintf(&data[index].android_name, "%s", ST_sensors_supported[n].android_name);
-		if (err < 0)
-			goto st_hal_load_free_device_name;
-
-		data[index].hw_fifo_len = iio_utils_get_hw_fifo_lenght(data[index].iio_sysfs_path);
-		data[index].sensor_type = ST_sensors_supported[n].sensor_type;
-		data[index].dev_id = iio_devices[i].dev_num;
-
-		index++;
-
-		continue;
-
-st_hal_load_free_device_name:
-	free(data[index].device_name);
-st_hal_load_free_iio_channels:
-	free(data[index].channels);
-st_hal_load_free_iio_sysfs_path:
-	free(data[index].iio_sysfs_path);
-	}
-
-	if (index == 0)
-		ALOGE("No IIO sensors found into /sys/bus/iio/devices/ folder.");
-
-	return index;
-}
-
-/**
- * st_hal_dev_flush() - Android call this function to flush sensor batch data.
- * @dev: sensors device.
- * @handle: android sensor handle.
- *
- * Return value: 0 on success, negative number if fail.
- **/
-static int st_hal_dev_flush(struct sensors_poll_device_1 *dev, int handle)
-{
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-	ALOGD("st_hal_dev_flush handle=%d", handle);
-
-	return hal_data->sensor_classes[handle]->FlushData(true);
-}
-
-/**
- * st_hal_dev_batch() - Android O.S. calls this function to check and set batch mode
- * @dev: sensors device structure.
- * @handle: android sensor handle.
- * @flags: used for test the availability of batch mode.
- * @period_ns: time to batch (like setDelay(...)).
- * @timeout: 0 to disable batch mode.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_dev_batch(struct sensors_poll_device_1 *dev, int handle,
-		int __attribute__((unused))flags, int64_t period_ns, int64_t timeout)
-{
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-
-	return hal_data->sensor_classes[handle]->SetDelay(handle, period_ns, timeout);
-}
-
-/**
- * st_hal_dev_poll() - Android O.S. calls this function and waits until when new data are available
- * @dev: sensors device structure.
- * @data: data structure used to push data to the upper layer.
- * @count: maximum number of events in the same time.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_dev_poll(struct sensors_poll_device_t *dev,
-						sensors_event_t *data, int count)
-{
-	int i, err, read_size;
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-
-	err = poll(&hal_data->android_pollfd, 1, -1);
-	if (err <= 0)
-		return 0;
-
-	if (hal_data->android_pollfd.revents > 0) {
-		read_size = read(hal_data->android_pollfd.fd, data, count * sizeof(struct sensors_event_t));
-		if (read_size <= 0)
-			return 0;
-	} else
-		return 0;
-
-	return (read_size / sizeof(struct sensors_event_t));
-}
-
-/**
- * st_hal_dev_setDelay() - Set sensor polling rate
- * @dev: sensors device structure.
- * @handle: android sensor handle.
- * @ns: polling rate value expressed in nanoseconds.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_dev_setDelay(struct sensors_poll_device_t *dev, int handle, int64_t ns)
-{
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-
-	return hal_data->sensor_classes[handle]->SetDelay(handle, ns, 0);
-}
-
-/**
- * st_hal_dev_activate() - Enable or Disable sensors
- * @dev: sensors device structure.
- * @handle: android sensor handle.
- * @enable: enable/ disable flag.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_dev_activate(struct sensors_poll_device_t *dev, int handle, int enabled)
-{
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-
-	return hal_data->sensor_classes[handle]->Enable(handle, (bool)enabled);
-}
-
-/**
- * st_hal_dev_close() - Close device sensors module
- * @dev: sensors device structure.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_dev_close(struct hw_device_t *dev)
-{
-	int i;
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)dev;
-
-	for (i = 0; i < (int)hal_data->sensor_available; i++)
-		delete hal_data->sensor_classes[i];
-
-	free(hal_data->threads);
-	close(hal_data->android_pollfd.fd);
-	free(hal_data->sensor_t_list);
-	free(hal_data);
-
-	return 0;
-}
-
-
-#define PIPE_SIZE (64 * 1024)
-
-/**
- * st_hal_create_android_pipe() - Create dev_poll pipe
- * @hal_data: hal common data.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_create_android_pipe(STSensorHAL_data *hal_data)
-{
-	int err, pipe_fd[2];
-
-	err = pipe(pipe_fd);
-	if (err < 0)
-		return err;
-
-	fcntl(pipe_fd[0], F_SETFL, O_NONBLOCK);
-	fcntl(pipe_fd[1], F_SETFL, O_NONBLOCK);
-	fcntl(pipe_fd[1], F_SETPIPE_SZ, PIPE_SIZE);
-
-	hal_data->android_pollfd.events = POLLIN;
-	hal_data->android_pollfd.fd = pipe_fd[0];
-
-	return pipe_fd[1];
-}
-
-/**
- * open_sensors() - Open sensor device
- * see Android documentation.
- *
- * Return value: 0 on success, negative number if fail.
- */
-static int st_hal_open_sensors(const struct hw_module_t *module,
-				const char __attribute__((unused))*id,
-						struct hw_device_t **device)
-{
-	bool real_sensor_class;
-	STSensorHAL_data *hal_data;
-	int sensor_class_valid_num =0 ;
-	bool sensor_class_valid[ST_HAL_IIO_MAX_DEVICES];
-	int type_dependencies[SENSOR_BASE_MAX_DEPENDENCY], type_index, type_sensor_trigger;
-	SensorBase *sensor_class, *temp_sensor_class[ST_HAL_IIO_MAX_DEVICES];
-	STSensorHAL_iio_devices_data iio_devices_data[ST_HAL_IIO_MAX_DEVICES];
-	int err, i, c, android_write_pipe_fd, device_found_num, classes_available = 0, n = 0;
-	bool temp_sensor_class_virtual[ST_HAL_IIO_MAX_DEVICES];
-
-	hal_data = (STSensorHAL_data *)malloc(sizeof(STSensorHAL_data));
-	if (!hal_data)
-		return -ENOMEM;
-
-	hal_data->sensor_available = 0;
-	hal_data->poll_device.common.tag = HARDWARE_DEVICE_TAG;
-	hal_data->poll_device.common.version = ST_HAL_IIO_DEVICE_API_VERSION;
-	hal_data->poll_device.common.module = const_cast<hw_module_t*>(module);
-	hal_data->poll_device.common.close = st_hal_dev_close;
-	hal_data->poll_device.common.module->dso = hal_data;
-	hal_data->poll_device.activate = st_hal_dev_activate;
-	hal_data->poll_device.setDelay = st_hal_dev_setDelay;
-	hal_data->poll_device.poll = st_hal_dev_poll;
-	hal_data->poll_device.batch = st_hal_dev_batch;
-	hal_data->poll_device.flush = st_hal_dev_flush;
-
-	do_cal_data_loading(ACCEL_SINDEX, NON_WAKEUP);
-	do_cal_data_loading(ACCEL_SINDEX, WAKEUP);
-	do_cal_data_loading(GYRO_SINDEX, NON_WAKEUP);
-	do_cal_data_loading(GYRO_SINDEX, WAKEUP);
-
-	*device = &hal_data->poll_device.common;
-
-	device_found_num = st_hal_load_iio_devices_data(iio_devices_data);
-	if (device_found_num <= 0) {
-		err = device_found_num;
-		goto free_hal_data;
-	}
-
-	android_write_pipe_fd = st_hal_create_android_pipe(hal_data);
-	if (android_write_pipe_fd < 0) {
-		ALOGE("Failed to create Android pipe file.");
-		err = device_found_num;
-		goto free_hal_data;
-	}
-
-	for (i = 0; i < device_found_num; i++) {
-		sensor_class = st_hal_create_class_sensor(&iio_devices_data[i], classes_available + 1, android_write_pipe_fd);
-
-		free(iio_devices_data[i].iio_sysfs_path);
-		free(iio_devices_data[i].android_name);
-		free(iio_devices_data[i].channels);
-
-		if (!sensor_class) {
-			ALOGE("\"%s\": failed to create HW sensor class.", iio_devices_data[i].device_name);
-			free(iio_devices_data[i].device_name);
-			continue;
-		}
-
-		free(iio_devices_data[i].device_name);
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_VERBOSE)
-	ALOGD("\"%s\": created HW class instance (sensor type: %d).", sensor_class->GetName(), sensor_class->GetType());
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-		temp_sensor_class[classes_available] = sensor_class;
-		temp_sensor_class_virtual[classes_available] = false;
-		sensor_class_valid[classes_available] = true;
-		sensor_class_valid_num++;
-		classes_available++;
-	}
-	if (classes_available == 0) {
-		ALOGE("Failed to create HW sensors classes.");
-		err = -ENODEV;
-		goto close_android_pipe_fd;
-	}
-
-	for (i = 0; i < ARRAY_SIZE(ST_virtual_sensors_list); i++) {
-		sensor_class = st_hal_create_virtual_class_sensor(ST_virtual_sensors_list[i].sensor_type, classes_available + 1, android_write_pipe_fd);
-		if (!sensor_class) {
-			ALOGE("Failed to create SW sensor class (sensor type: %d).", ST_virtual_sensors_list[i].sensor_type);
-			continue;
-		}
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_VERBOSE)
-	if (sensor_class->GetType() < SENSOR_TYPE_ST_CUSTOM_NO_SENSOR)
-		ALOGD("\"%s\": created SW class instance (sensor type: %d).", sensor_class->GetName(), sensor_class->GetType());
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-		temp_sensor_class[classes_available] = sensor_class;
-		temp_sensor_class_virtual[classes_available] = true;
-		sensor_class_valid[classes_available] = true;
-		sensor_class_valid_num++;
-		classes_available++;
-	}
-
-	for (i = 0; i < classes_available; i ++) {
-		temp_sensor_class[i]->GetDepenciesTypeList(type_dependencies);
-		type_index = 0;
-
-		while((type_dependencies[type_index] > 0) && (type_index < SENSOR_BASE_MAX_DEPENDENCY)) {
-			err = 0;
-
-			for (c = 0; c < classes_available; c++) {
-				if ((type_dependencies[type_index] == temp_sensor_class[c]->GetType()) && (sensor_class_valid[c])) {
-					if (temp_sensor_class_virtual[i])
-						err = ((SWSensorBase *)temp_sensor_class[i])->AddSensorDependency(temp_sensor_class[c]);
-					else
-						err = ((HWSensorBase *)temp_sensor_class[i])->AddSensorDependency(temp_sensor_class[c]);
-
-					break;
-				}
-			}
-			if ((c == classes_available) || (err < 0)) {
-				ALOGE("\"%s\": failed to add dependency (sensor type dependency: %d).", temp_sensor_class[i]->GetName(), type_dependencies[type_index]);
-
-				while (type_index > 0) {
-					type_index--;
-
-					for (c = 0; c < classes_available; c++) {
-						if ((type_dependencies[type_index] == temp_sensor_class[c]->GetType()) && (sensor_class_valid[c])) {
-							if (temp_sensor_class_virtual[i])
-								((SWSensorBase *)temp_sensor_class[i])->RemoveSensorDependency(temp_sensor_class[c]);
-							else
-								((HWSensorBase *)temp_sensor_class[i])->RemoveSensorDependency(temp_sensor_class[c]);
-
-							break;
-						}
-					}
-				}
-
-				sensor_class_valid_num--;
-				sensor_class_valid[i] = false;
-				goto failed_to_check_dependency;
-			}
-
-			type_index++;
-		}
-
-		type_sensor_trigger = temp_sensor_class[i]->GetSensorNeedTriggerType();
-		if (type_sensor_trigger < 0)
-			continue;
-
-		err = 0;
-
-		for (c = 0; c < classes_available; c++) {
-			if (type_sensor_trigger == temp_sensor_class[c]->GetType()) {
-				err = temp_sensor_class[c]->AddSensorToTrigger(temp_sensor_class[i]);
-				break;
-			}
-		}
-		if ((c == classes_available) || (err < 0)) {
-			ALOGE("\"%s\": failed to add trigger (sensor trigger type: %d).", temp_sensor_class[i]->GetName(), type_sensor_trigger);
-			sensor_class_valid_num--;
-			sensor_class_valid[i] = false;
-			break;
-		}
-
-failed_to_check_dependency:
-		continue;
-	}
-
-	for (i = 0; i < classes_available; i++) {
-		if (sensor_class_valid[i])
-			hal_data->sensor_classes[temp_sensor_class[i]->GetHandle()] = temp_sensor_class[i];
-	}
-
-	hal_data->sensor_t_list = (struct sensor_t *)malloc(sensor_class_valid_num * sizeof(struct sensor_t));
-	if (!hal_data->sensor_t_list) {
-		err = -ENOMEM;
-		goto destroy_classes;
-	}
-
-	hal_data->threads = (pthread_t *)malloc(sensor_class_valid_num * sizeof(pthread_t *));
-	if (!hal_data->threads) {
-		err = -ENOMEM;
-		goto free_sensor_t_list;
-	}
-
-	for (i = 0; i < classes_available; i++) {
-		if (sensor_class_valid[i]) {
-			err = pthread_create(&hal_data->threads[i], NULL, &SensorBase::ThreadWork, (void *)temp_sensor_class[i]);
-			if (err < 0)
-				continue;
-
-			real_sensor_class = hal_data->sensor_classes[temp_sensor_class[i]->GetHandle()]->FillSensor_tData(&hal_data->sensor_t_list[n]);
-			if (!real_sensor_class)
-				continue;
-
-			n++;
-		} else
-			delete temp_sensor_class[i];
-	}
-
-	hal_data->sensor_available = n;
-
-#if (CONFIG_ST_HAL_DEBUG_LEVEL >= ST_HAL_DEBUG_INFO)
-	ALOGD("%d sensors available and ready.", n);
-#endif /* CONFIG_ST_HAL_DEBUG_LEVEL */
-
-	return 0;
-
-free_sensor_t_list:
-	free(hal_data->sensor_t_list);
-destroy_classes:
-	for (i = 0; i < classes_available; i ++)
-		delete temp_sensor_class[i];
-
-close_android_pipe_fd:
-	close(android_write_pipe_fd);
-	close(hal_data->android_pollfd.fd);
-free_hal_data:
-	free(hal_data);
-
-	return err;
-}
-
-/**
- * get_sensors_list() - Get sensors list
- * @module: hardware specific informations.
- * @list: sensors list.
- *
- * Return value: number of sensors available.
- */
-static int st_hal_get_sensors_list(struct sensors_module_t *module,
-						struct sensor_t const **list)
-{
-	STSensorHAL_data *hal_data = (STSensorHAL_data *)module->common.dso;
-
-	*list = (struct sensor_t const *)hal_data->sensor_t_list;
-
-	return hal_data->sensor_available;
-};
-
-/*
- * struct hw_module_methods_t - Hardware module functions
- * see Android documentation.
- */
-static struct hw_module_methods_t st_hal_sensors_module_methods = {
-	open: st_hal_open_sensors
-};
-
-/*
- * struct sensors_module_t - Hardware module info
- * see Android documentation.
- */
-struct sensors_module_t HAL_MODULE_INFO_SYM = {
-	.common = {
-		.tag = HARDWARE_MODULE_TAG,
-		.module_api_version = SENSORS_MODULE_API_VERSION_0_1,
-		.hal_api_version = 0,
-		.id = SENSORS_HARDWARE_MODULE_ID,
-		.name = "STMicroelectronics Sensors Module",
-		.author = "STMicroelectronics",
-		.methods = &st_hal_sensors_module_methods,
-		.dso = NULL,
-		.reserved = { },
-	},
-	.get_sensors_list = st_hal_get_sensors_list,
-};
diff --git a/libsensors_iio/src/SensorHAL.h b/libsensors_iio/src/SensorHAL.h
deleted file mode 100644
index 9f5a557..0000000
--- a/libsensors_iio/src/SensorHAL.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SENSOR_HAL_H
-#define ST_SENSOR_HAL_H
-
-#include <hardware/hardware.h>
-#include <hardware/sensors.h>
-#include <poll.h>
-
-#include "SWSensorBase.h"
-#include "common_data.h"
-
-#define ARRAY_SIZE(a)		(int)((sizeof(a) / sizeof(*(a))) / \
-					static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
-
-/*
- * Android string version
- */
-#define ST_HAL_KITKAT_VERSION				0
-#define ST_HAL_LOLLIPOP_VERSION				1
-
-/*
- * IIO driver sensors names
- */
-#define ST_SENSORS_LIST_1				"lsm6ds3"
-
-/*
- * IIO driver sensors suffix for sensors
- */
-#define ACCEL_NAME_SUFFIX_IIO				"_accel"
-#define MAGN_NAME_SUFFIX_IIO				"_magn"
-#define GYRO_NAME_SUFFIX_IIO				"_gyro"
-#define SIGN_MOTION_NAME_SUFFIX_IIO			"_sign_motion"
-#define STEP_DETECTOR_NAME_SUFFIX_IIO			"_step_d"
-#define STEP_COUNTER_NAME_SUFFIX_IIO			"_step_c"
-#define TILT_NAME_SUFFIX_IIO				"_tilt"
-#define PRESSURE_NAME_SUFFIX_IIO			"_press"
-
-#define ST_HAL_WAKEUP_SUFFIX_IIO			"_wk"
-
-#define CONCATENATE_STRING(x, y)			(x y)
-
-#if (CONFIG_ST_HAL_ANDROID_VERSION == ST_HAL_LOLLIPOP_VERSION)
-#define ST_HAL_IIO_DEVICE_API_VERSION			SENSORS_DEVICE_API_VERSION_1_3
-#else /* CONFIG_ST_HAL_ANDROID_VERSION */
-#define ST_HAL_IIO_DEVICE_API_VERSION			SENSORS_DEVICE_API_VERSION_1_1
-#endif /* CONFIG_ST_HAL_ANDROID_VERSION */
-
-#if defined(CONFIG_ST_HAL_HAS_GEOMAG_FUSION) && \
-				(defined(CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED))
-#define ST_HAL_NEEDS_GEOMAG_FUSION			1
-#endif /* CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED */
-
-#if defined(CONFIG_ST_HAL_HAS_6AX_FUSION) && \
-				(defined(CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED) || \
-				defined(CONFIG_ST_HAL_GRAVITY_AP_ENABLED) || \
-				defined(CONFIG_ST_HAL_LINEAR_AP_ENABLED))
-#define ST_HAL_NEEDS_6AX_FUSION				1
-#endif /* CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED */
-
-#if defined(CONFIG_ST_HAL_HAS_9AX_FUSION) && \
-				(defined(CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED) || \
-				defined(CONFIG_ST_HAL_ORIENTATION_AP_ENABLED) || \
-				defined(CONFIG_ST_HAL_GRAVITY_AP_ENABLED) || \
-				defined(CONFIG_ST_HAL_LINEAR_AP_ENABLED))
-#define ST_HAL_NEEDS_9AX_FUSION				1
-#endif /* CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED */
-
-
-struct tmp_dicovery_data {
-	char *driver_name;
-	char *trigger_name;
-	char *dev_buffer_path;
-
-	char *iio_sysfs_path;
-	char *iio_sysfs_custom_trigger_path;
-};
-
-struct STSensorHAL_data {
-	struct sensors_poll_device_1 poll_device;
-
-	pthread_t *threads;
-	SensorBase *sensor_classes[ST_HAL_IIO_MAX_DEVICES];
-
-	unsigned int sensor_available;
-	struct sensor_t *sensor_t_list;
-
-	struct pollfd android_pollfd;
-} typedef STSensorHAL_data;
-
-#endif /* ST_SENSOR_HAL_H */
diff --git a/libsensors_iio/src/SignificantMotion.cpp b/libsensors_iio/src/SignificantMotion.cpp
deleted file mode 100644
index 0a77625..0000000
--- a/libsensors_iio/src/SignificantMotion.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * STMicroelectronics SignificantMotion Base Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "SignificantMotion.h"
-
-SignMotion::SignMotion(HWSensorBaseCommonData *data, const char *name, int handle,
-		int pipe_data_fd, float power_consumption) :
-			HWSensorBase(data, name, handle,
-			SENSOR_TYPE_SIGNIFICANT_MOTION, 0, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_SIGNIFICANT_MOTION;
-	sensor_t_data.flags = SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP;
-	sensor_t_data.minDelay = -1;
-	sensor_t_data.resolution = 1.0f;
-	sensor_t_data.maxRange = 1.0f;
-
-	num_data_axis = SENSOR_BASE_0AXIS;
-}
-
-SignMotion::~SignMotion()
-{
-
-}
-
-int SignMotion::SetDelay(int __attribute__((unused))handle,
-				int64_t __attribute__((unused))period_ns,
-				int64_t __attribute__((unused))timeout)
-{
-	return 0;
-}
-
-void SignMotion::ProcessEvent(struct iio_event_data *event_data)
-{
-	sensor_event.data[0] = 1.0f;
-	sensor_event.timestamp = event_data->timestamp;
-
-	HWSensorBase::WriteDataToPipe();
-	HWSensorBase::ProcessEvent(event_data);
-	Enable(sensor_t_data.handle, false);
-}
diff --git a/libsensors_iio/src/SignificantMotion.h b/libsensors_iio/src/SignificantMotion.h
deleted file mode 100644
index f8115a9..0000000
--- a/libsensors_iio/src/SignificantMotion.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_SIGN_MOTION_BASE_H
-#define ST_SIGN_MOTION_BASE_H
-
-#include "HWSensorBase.h"
-
-/*
- * class SignMotion
- */
-class SignMotion : public HWSensorBase {
-public:
-	SignMotion(HWSensorBaseCommonData *data, const char *name,
-			int handle, int pipe_data_fd, float power_consumption);
-	virtual ~SignMotion();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void ProcessEvent(struct iio_event_data *event_data);
-};
-
-#endif /* ST_SIGN_MOTION_BASE_H */
diff --git a/libsensors_iio/src/StepCounter.cpp b/libsensors_iio/src/StepCounter.cpp
deleted file mode 100644
index 7eecd81..0000000
--- a/libsensors_iio/src/StepCounter.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * STMicroelectronics Step Counter Sensor Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "StepCounter.h"
-
-StepCounter::StepCounter(HWSensorBaseCommonData *data, const char *name,
-		int handle, unsigned int hw_fifo_len, int pipe_data_fd,
-		float power_consumption, bool wakeup) :
-			HWSensorBase(data, name, handle,
-			SENSOR_TYPE_STEP_COUNTER, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_STEP_COUNTER;
-	sensor_t_data.flags = SENSOR_FLAG_ON_CHANGE_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = 1.0f;
-	sensor_t_data.maxRange = pow(2.0, (double)data->channels[0].bits_used) - 1;
-
-	num_data_axis = SENSOR_BASE_1AXIS;
-}
-
-StepCounter::~StepCounter()
-{
-
-}
-
-int StepCounter::Enable(int handle, bool enable)
-{
-	int err;
-
-	err = HWSensorBase::Enable(handle, enable);
-	if (err < 0)
-		return err;
-
-	if (!GetStatus())
-		last_data_timestamp = 0;
-
-	return 0;
-}
-
-int StepCounter::SetDelay(int handle, int64_t period_ns, int64_t timeout)
-{
-	int err;
-	int64_t min_pollrate_ns;
-
-	err = SensorBase::SetDelay(handle, period_ns, timeout);
-	if (err < 0)
-		return err;
-
-	min_pollrate_ns = GetMinPeriod();
-
-	err = write_sysfs_int((char *)FILENAME_MAX_DELIVERY_RATE,
-			common_data.iio_sysfs_path, (int)NS_TO_MS(min_pollrate_ns));
-	if (err < 0) {
-		ALOGE("%s: Failed to write max rate delivery \"%s/%s\".",
-				common_data.device_name, common_data.iio_sysfs_path,
-				FILENAME_MAX_DELIVERY_RATE);
-		return err;
-	}
-
-	return 0;
-}
-
-void StepCounter::ProcessData(SensorBaseData *data)
-{
-#define	STEP_COUNTER_DATA_MASK	0xFFFF
-	sensor_event.u64.step_counter = (uint64_t)data->raw[0] & STEP_COUNTER_DATA_MASK;
-	sensor_event.timestamp = data->timestamp;
-
-	HWSensorBase::WriteDataToPipe();
-	HWSensorBase::ProcessData(data);
-}
diff --git a/libsensors_iio/src/StepCounter.h b/libsensors_iio/src/StepCounter.h
deleted file mode 100644
index ffe057e..0000000
--- a/libsensors_iio/src/StepCounter.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_STEP_COUNTER_SENSOR_H
-#define ST_STEP_COUNTER_SENSOR_H
-
-#include "HWSensorBase.h"
-
-#define FILENAME_MAX_DELIVERY_RATE		"max_delivery_rate"
-
-/*
- * class StepCounter
- */
-class StepCounter : public HWSensorBase {
-public:
-	StepCounter(HWSensorBaseCommonData *data, const char *name,
-			int handle, unsigned int hw_fifo_len, int pipe_data_fd,
-			float power_consumption, bool wakeup);
-	~StepCounter();
-
-	virtual int Enable(int handle, bool enable);
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void ProcessData(SensorBaseData *data);
-};
-
-#endif /* ST_STEP_COUNTER_SENSOR_H */
diff --git a/libsensors_iio/src/StepDetector.cpp b/libsensors_iio/src/StepDetector.cpp
deleted file mode 100644
index 40b0cd5..0000000
--- a/libsensors_iio/src/StepDetector.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * STMicroelectronics Step Detector Base Class
- *
- * Copyright 2013-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "StepDetector.h"
-
-StepDetector::StepDetector(HWSensorBaseCommonData *data, const char *name,
-		int handle, unsigned int hw_fifo_len, int pipe_data_fd,
-		float power_consumption, bool wakeup) :
-			HWSensorBase(data, name, handle,
-			SENSOR_TYPE_STEP_DETECTOR, hw_fifo_len, pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_STEP_DETECTOR;
-	sensor_t_data.flags = SENSOR_FLAG_SPECIAL_REPORTING_MODE;
-
-	if (wakeup)
-		sensor_t_data.flags |= SENSOR_FLAG_WAKE_UP;
-
-	sensor_t_data.resolution = 1.0f;
-	sensor_t_data.maxRange = 1.0f;
-
-	num_data_axis = SENSOR_BASE_0AXIS;
-}
-
-StepDetector::~StepDetector()
-{
-
-}
-
-int StepDetector::SetDelay(int __attribute__((unused))handle,
-				int64_t __attribute__((unused))period_ns,
-				int64_t __attribute__((unused))timeout)
-{
-	return 0;
-}
-
-void StepDetector::ProcessEvent(struct iio_event_data *event_data)
-{
-	sensor_event.data[0] = 1.0f;
-	sensor_event.timestamp = event_data->timestamp;
-
-	HWSensorBase::WriteDataToPipe();
-	HWSensorBase::ProcessEvent(event_data);
-}
diff --git a/libsensors_iio/src/StepDetector.h b/libsensors_iio/src/StepDetector.h
deleted file mode 100644
index 8a90377..0000000
--- a/libsensors_iio/src/StepDetector.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_STEP_DETECTOR_SENSOR_H
-#define ST_STEP_DETECTOR_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class StepDetector
- */
-class StepDetector : public HWSensorBase {
-public:
-	StepDetector(HWSensorBaseCommonData *data, const char *name,
-		int handle, unsigned int hw_fifo_len, int pipe_data_fd,
-		float power_consumption, bool wakeup);
-	virtual ~StepDetector();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void ProcessEvent(struct iio_event_data *event_data);
-};
-
-#endif /* ST_STEP_DETECTOR_SENSOR_H */
diff --git a/libsensors_iio/src/TiltSensor.cpp b/libsensors_iio/src/TiltSensor.cpp
deleted file mode 100644
index 67e0e79..0000000
--- a/libsensors_iio/src/TiltSensor.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * STMicroelectronics Tilt Sensor Class
- *
- * Copyright 2014-2015 STMicroelectronics Inc.
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- */
-
-#include <fcntl.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "TiltSensor.h"
-
-TiltSensor::TiltSensor(HWSensorBaseCommonData *data, const char *name, int handle,
-		int pipe_data_fd, float power_consumption) :
-		HWSensorBase(data, name, handle, SENSOR_TYPE_TILT_DETECTOR, 0,
-			pipe_data_fd, power_consumption)
-{
-	sensor_t_data.stringType = SENSOR_STRING_TYPE_TILT_DETECTOR;
-	sensor_t_data.flags = SENSOR_FLAG_SPECIAL_REPORTING_MODE | SENSOR_FLAG_WAKE_UP;
-	sensor_t_data.resolution = 1.0f;
-	sensor_t_data.maxRange = 1.0f;
-
-	num_data_axis = SENSOR_BASE_0AXIS;
-}
-
-TiltSensor::~TiltSensor()
-{
-
-}
-
-int TiltSensor::SetDelay(int __attribute__((unused))handle,
-				int64_t __attribute__((unused))period_ns,
-				int64_t __attribute__((unused))timeout)
-{
-	return 0;
-}
-
-void TiltSensor::ProcessEvent(struct iio_event_data *event_data)
-{
-	sensor_event.data[0] = 1.0f;
-	sensor_event.timestamp = event_data->timestamp;
-
-	HWSensorBase::WriteDataToPipe();
-	HWSensorBase::ProcessEvent(event_data);
-}
diff --git a/libsensors_iio/src/TiltSensor.h b/libsensors_iio/src/TiltSensor.h
deleted file mode 100644
index 66d0021..0000000
--- a/libsensors_iio/src/TiltSensor.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2014-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ST_TILT_SENSOR_H
-#define ST_TILT_SENSOR_H
-
-#include "HWSensorBase.h"
-
-/*
- * class TiltSensor
- */
-class TiltSensor : public HWSensorBase {
-public:
-	TiltSensor(HWSensorBaseCommonData *data, const char *name, int handle,
-					int pipe_data_fd, float power_consumption);
-	virtual ~TiltSensor();
-
-	virtual int SetDelay(int handle, int64_t period_ns, int64_t timeout);
-	virtual void ProcessEvent(struct iio_event_data *event_data);
-};
-
-#endif /* ST_TILT_SENSOR_H */
diff --git a/libsensors_iio/src/android_KK_defconfig b/libsensors_iio/src/android_KK_defconfig
deleted file mode 100644
index 10c5252..0000000
--- a/libsensors_iio/src/android_KK_defconfig
+++ /dev/null
@@ -1,151 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# SensorHAL IIO Configuration
-#
-CONFIG_ST_HAL_ANDROID_VERSION=0
-
-#
-# Enable/disable sensors
-#
-
-#
-# Accelerometer sensor
-#
-CONFIG_ST_HAL_ACCEL_ENABLED=y
-
-#
-# Magnetometer sensor
-#
-CONFIG_ST_HAL_MAGN_ENABLED=y
-# CONFIG_ST_HAL_MAGN_CALIB_ENABLED is not set
-
-#
-# Gyroscope sensor
-#
-CONFIG_ST_HAL_GYRO_ENABLED=y
-# CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED is not set
-
-#
-# Magnetometer Uncalibrated sensor
-#
-CONFIG_ST_HAL_MAGN_UNCALIB_DISABLED=y
-# CONFIG_ST_HAL_MAGN_UNCALIB_HW_ENABLED is not set
-# CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED is not set
-
-#
-# Gyroscope Uncalibrated sensor
-#
-CONFIG_ST_HAL_GYRO_UNCALIB_DISABLED=y
-# CONFIG_ST_HAL_GYRO_UNCALIB_HW_ENABLED is not set
-# CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED is not set
-CONFIG_ST_HAL_SIGN_MOTION_ENABLED=y
-
-#
-# Step Detector sensor
-#
-CONFIG_ST_HAL_STEP_DETECTOR_ENABLED=y
-
-#
-# Step Counter sensor
-#
-CONFIG_ST_HAL_STEP_COUNTER_ENABLED=y
-# CONFIG_ST_HAL_PRESSURE_ENABLED is not set
-CONFIG_ST_HAL_TILT_ENABLED=y
-# CONFIG_ST_HAL_TAP_TAP_ENABLED is not set
-# CONFIG_ST_HAL_ACTIVITY_ENABLED is not set
-
-#
-# Orientation sensor
-#
-CONFIG_ST_HAL_ORIENTATION_DISABLED=y
-# CONFIG_ST_HAL_ORIENTATION_HW_ENABLED is not set
-# CONFIG_ST_HAL_ORIENTATION_AP_ENABLED is not set
-
-#
-# Gravity sensor
-#
-CONFIG_ST_HAL_GRAVITY_DISABLED=y
-# CONFIG_ST_HAL_GRAVITY_HW_ENABLED is not set
-# CONFIG_ST_HAL_GRAVITY_AP_ENABLED is not set
-
-#
-# Linear Acceleration sensor
-#
-CONFIG_ST_HAL_LINEAR_DISABLED=y
-# CONFIG_ST_HAL_LINEAR_HW_ENABLED is not set
-# CONFIG_ST_HAL_LINEAR_AP_ENABLED is not set
-
-#
-# Rotation Vector sensor
-#
-CONFIG_ST_HAL_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_ROT_VECTOR_HW_ENABLED is not set
-# CONFIG_ST_HAL_ROT_VECTOR_AP_ENABLED is not set
-
-#
-# Game Rotation Vector sensor
-#
-CONFIG_ST_HAL_GAME_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_GAME_ROT_VECTOR_HW_ENABLED is not set
-# CONFIG_ST_HAL_GAME_ROT_VECTOR_AP_ENABLED is not set
-
-#
-# Geomagnetic Rotation Vector sensor
-#
-CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_HW_ENABLED is not set
-# CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_AP_ENABLED is not set
-# CONFIG_ST_HAL_VIRTUAL_GYRO_ENABLED is not set
-CONFIG_ST_HAL_FACEUP_FACEDOWN_DISABLED=y
-# CONFIG_ST_HAL_FACEUP_FACEDOWN_HW_ENABLED is not set
-# CONFIG_ST_HAL_FACEUP_FACEDOWN_AP_ENABLED is not set
-CONFIG_ST_HAL_RELATIVE_TILT_DISABLED=y
-# CONFIG_ST_HAL_RELATIVE_TILT_HW_ENABLED is not set
-# CONFIG_ST_HAL_RELATIVE_TILT_AP_ENABLED is not set
-
-#
-# Common configuration
-#
-CONFIG_ST_HAL_MAX_SAMPLING_FREQUENCY=200
-CONFIG_ST_HAL_DEBUG_LEVEL=0
-CONFIG_ST_HAL_ACCEL_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_ACCEL_RANGE=17
-CONFIG_ST_HAL_MAGN_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_MAGN_RANGE=1000
-CONFIG_ST_HAL_GYRO_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_GYRO_RANGE=35
-# CONFIG_ST_HAL_SENSORHUB_DEBUG_INFO is not set
-
-#
-# Power consumption
-#
-CONFIG_ST_HAL_ACCEL_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_MAGN_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_GYRO_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_SIGN_MOTION_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_STEP_DETECTOR_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_STEP_COUNTER_POWER_CONSUMPTION=1
-CONFIG_ST_HAL_TILT_POWER_CONSUMPTION=1
-
-#
-# SensorFusion configuration
-#
-CONFIG_ST_HAL_MIN_FUSION_POLLRATE=50
-CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL="86999e-9"
-CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_MAGN="599999e-9"
-CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_GYRO="114999e-9"
-
-#
-# IIO drivers configuration
-#
-CONFIG_ST_HAL_DRIVER_AUTO_SCAN=y
-
-#
-# IIO triggers name
-#
-CONFIG_ST_HAL_ACCEL_TRIGGER_NAME_DEFAULT=y
-# CONFIG_ST_HAL_ACCEL_TRIGGER_NAME_HRTIMER is not set
-CONFIG_ST_HAL_MAGN_TRIGGER_NAME_DEFAULT=y
-# CONFIG_ST_HAL_MAGN_TRIGGER_NAME_HRTIMER is not set
-CONFIG_ST_HAL_GYRO_TRIGGER_NAME_DEFAULT=y
-# CONFIG_ST_HAL_GYRO_TRIGGER_NAME_HRTIMER is not set
diff --git a/libsensors_iio/src/android_L_defconfig b/libsensors_iio/src/android_L_defconfig
deleted file mode 100644
index 297ebb9..0000000
--- a/libsensors_iio/src/android_L_defconfig
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# SensorHAL IIO Configuration
-#
-CONFIG_ST_HAL_ANDROID_VERSION=1
-# CONFIG_ST_HAL_HAS_6AX_FUSION is not set
-# CONFIG_ST_HAL_HAS_9AX_FUSION is not set
-# CONFIG_ST_HAL_HAS_GEOMAG_FUSION is not set
-CONFIG_ST_HAL_HAS_MAGN_CALIB=y
-CONFIG_ST_HAL_HAS_GYRO_GBIAS_ESTIMATION=y
-# CONFIG_ST_HAL_HAS_TILT_FU_FD is not set
-
-#
-# Enable/disable sensors
-#
-CONFIG_ST_HAL_ACCEL_ENABLED=y
-CONFIG_ST_HAL_MAGN_ENABLED=y
-# CONFIG_ST_HAL_MAGN_CALIB_ENABLED is not set
-CONFIG_ST_HAL_GYRO_ENABLED=y
-# CONFIG_ST_HAL_GYRO_GBIAS_ESTIMATION_ENABLED is not set
-CONFIG_ST_HAL_MAGN_UNCALIB_DISABLED=y
-# CONFIG_ST_HAL_MAGN_UNCALIB_HW_ENABLED is not set
-# CONFIG_ST_HAL_MAGN_UNCALIB_AP_ENABLED is not set
-CONFIG_ST_HAL_GYRO_UNCALIB_DISABLED=y
-# CONFIG_ST_HAL_GYRO_UNCALIB_HW_ENABLED is not set
-# CONFIG_ST_HAL_GYRO_UNCALIB_AP_ENABLED is not set
-CONFIG_ST_HAL_SIGN_MOTION_ENABLED=y
-CONFIG_ST_HAL_STEP_DETECTOR_ENABLED=y
-CONFIG_ST_HAL_STEP_COUNTER_ENABLED=y
-# CONFIG_ST_HAL_PRESSURE_ENABLED is not set
-# CONFIG_ST_HAL_LIGHT_ENABLED is not set
-# CONFIG_ST_HAL_PROXIMITY_ENABLED is not set
-CONFIG_ST_HAL_TILT_ENABLED=y
-# CONFIG_ST_HAL_TAP_TAP_ENABLED is not set
-# CONFIG_ST_HAL_ACTIVITY_ENABLED is not set
-CONFIG_ST_HAL_ORIENTATION_DISABLED=y
-# CONFIG_ST_HAL_ORIENTATION_HW_ENABLED is not set
-CONFIG_ST_HAL_GRAVITY_DISABLED=y
-# CONFIG_ST_HAL_GRAVITY_HW_ENABLED is not set
-CONFIG_ST_HAL_LINEAR_DISABLED=y
-# CONFIG_ST_HAL_LINEAR_HW_ENABLED is not set
-CONFIG_ST_HAL_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_ROT_VECTOR_HW_ENABLED is not set
-CONFIG_ST_HAL_GAME_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_GAME_ROT_VECTOR_HW_ENABLED is not set
-CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_DISABLED=y
-# CONFIG_ST_HAL_GEOMAG_ROT_VECTOR_HW_ENABLED is not set
-CONFIG_ST_HAL_FACEUP_FACEDOWN_DISABLED=y
-# CONFIG_ST_HAL_FACEUP_FACEDOWN_HW_ENABLED is not set
-CONFIG_ST_HAL_RELATIVE_TILT_DISABLED=y
-# CONFIG_ST_HAL_RELATIVE_TILT_HW_ENABLED is not set
-
-#
-# Common configuration
-#
-CONFIG_ST_HAL_MIN_FUSION_POLLRATE=50
-CONFIG_ST_HAL_MAX_SAMPLING_FREQUENCY=200
-CONFIG_ST_HAL_DEBUG_LEVEL=0
-CONFIG_ST_HAL_ACCEL_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_ACCEL_RANGE=17
-CONFIG_ST_HAL_MAGN_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_MAGN_RANGE=1000
-CONFIG_ST_HAL_GYRO_ROT_MATRIX="1,0,0,0,1,0,0,0,1"
-CONFIG_ST_HAL_GYRO_RANGE=35
-
-#
-# IIO drivers configuration
-#
diff --git a/libsensors_iio/src/common_data.h b/libsensors_iio/src/common_data.h
deleted file mode 100644
index 1a8f8f4..0000000
--- a/libsensors_iio/src/common_data.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2013-2015 STMicroelectronics
- * Author: Denis Ciocca - <denis.ciocca@st.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_SENSOR_HAL_COMMON_DATA
-#define ANDROID_SENSOR_HAL_COMMON_DATA
-
-#include <hardware/sensors.h>
-
-#include "../configuration.h"
-
-#define SENSOR_TYPE_ST_CUSTOM_NO_SENSOR			(SENSOR_TYPE_DEVICE_PRIVATE_BASE + 20)
-#define SENSOR_TYPE_ST_ACCEL_MAGN_FUSION6X		(SENSOR_TYPE_ST_CUSTOM_NO_SENSOR + 0)
-#define SENSOR_TYPE_ST_ACCEL_GYRO_FUSION6X		(SENSOR_TYPE_ST_CUSTOM_NO_SENSOR + 1)
-#define SENSOR_TYPE_ST_ACCEL_MAGN_GYRO_FUSION9X		(SENSOR_TYPE_ST_CUSTOM_NO_SENSOR + 2)
-
-#define ST_HAL_IIO_MAX_DEVICES				(50)
-
-#define SENSOR_DATA_X(datax, datay, dataz, x1, y1, z1, x2, y2, z2, x3, y3, z3) \
-							((x1 == 1 ? datax : (x1 == -1 ? -datax : 0)) + \
-							(x2 == 1 ? datay : (x2 == -1 ? -datay : 0)) + \
-							(x3 == 1 ? dataz : (x3 == -1 ? -dataz : 0)))
-
-#define SENSOR_DATA_Y(datax, datay, dataz, x1, y1, z1, x2, y2, z2, x3, y3, z3) \
-							((y1 == 1 ? datax : (y1 == -1 ? -datax : 0)) + \
-							(y2 == 1 ? datay : (y2 == -1 ? -datay : 0)) + \
-							(y3 == 1 ? dataz : (y3 == -1 ? -dataz : 0)))
-
-#define SENSOR_DATA_Z(datax, datay, dataz, x1, y1, z1, x2, y2, z2, x3, y3, z3) \
-							((z1 == 1 ? datax : (z1 == -1 ? -datax : 0)) + \
-							(z2 == 1 ? datay : (z2 == -1 ? -datay : 0)) + \
-							(z3 == 1 ? dataz : (z3 == -1 ? -dataz : 0)))
-
-#define SENSOR_X_DATA(...)				SENSOR_DATA_X(__VA_ARGS__)
-#define SENSOR_Y_DATA(...)				SENSOR_DATA_Y(__VA_ARGS__)
-#define SENSOR_Z_DATA(...)				SENSOR_DATA_Z(__VA_ARGS__)
-
-#define ST_HAL_DEBUG_INFO				(1)
-#define ST_HAL_DEBUG_VERBOSE				(2)
-#define ST_HAL_DEBUG_EXTRA_VERBOSE			(3)
-
-#endif /* ANDROID_SENSOR_HAL_COMMON_DATA */
diff --git a/libsensors_iio/src/events.h b/libsensors_iio/src/events.h
deleted file mode 100644
index e924fe9..0000000
--- a/libsensors_iio/src/events.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* The industrial I/O - event passing to userspace
- *
- * Copyright (c) 2008-2011 Jonathan Cameron
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
-#ifndef _IIO_EVENTS_H_
-#define _IIO_EVENTS_H_
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include "types.h"
-
-/**
- * struct iio_event_data - The actual event being pushed to userspace
- * @id:		event identifier
- * @timestamp:	best estimate of time of event occurrence (often from
- *		the interrupt handler)
- */
-struct iio_event_data {
-	__u64	id;
-	__s64	timestamp;
-};
-
-#define IIO_GET_EVENT_FD_IOCTL _IOR('i', 0x90, int)
-
-enum iio_event_type {
-	IIO_EV_TYPE_THRESH,
-	IIO_EV_TYPE_MAG,
-	IIO_EV_TYPE_ROC,
-	IIO_EV_TYPE_THRESH_ADAPTIVE,
-	IIO_EV_TYPE_MAG_ADAPTIVE,
-	IIO_EV_TYPE_FIFO_EMPTIED,
-};
-
-enum iio_event_direction {
-	IIO_EV_DIR_EITHER,
-	IIO_EV_DIR_RISING,
-	IIO_EV_DIR_FALLING,
-};
-
-/**
- * IIO_EVENT_CODE() - create event identifier
- * @chan_type:	Type of the channel. Should be one of enum iio_chan_type.
- * @diff:	Whether the event is for an differential channel or not.
- * @modifier:	Modifier for the channel. Should be one of enum iio_modifier.
- * @direction:	Direction of the event. One of enum iio_event_direction.
- * @type:	Type of the event. Should be one of enum iio_event_type.
- * @chan:	Channel number for non-differential channels.
- * @chan1:	First channel number for differential channels.
- * @chan2:	Second channel number for differential channels.
- */
-
-#define IIO_EVENT_CODE(chan_type, diff, modifier, direction,		\
-		       type, chan, chan1, chan2)			\
-	(((u64)type << 56) | ((u64)diff << 55) |			\
-	 ((u64)direction << 48) | ((u64)modifier << 40) |		\
-	 ((u64)chan_type << 32) | (((u16)chan2) << 16) | ((u16)chan1) | \
-	 ((u16)chan))
-
-
-#define IIO_EV_DIR_MAX 4
-#define IIO_EV_BIT(type, direction)			\
-	(1 << (type*IIO_EV_DIR_MAX + direction))
-
-/**
- * IIO_MOD_EVENT_CODE() - create event identifier for modified channels
- * @chan_type:	Type of the channel. Should be one of enum iio_chan_type.
- * @number:	Channel number.
- * @modifier:	Modifier for the channel. Should be one of enum iio_modifier.
- * @type:	Type of the event. Should be one of enum iio_event_type.
- * @direction:	Direction of the event. One of enum iio_event_direction.
- */
-
-#define IIO_MOD_EVENT_CODE(chan_type, number, modifier,		\
-			   type, direction)				\
-	IIO_EVENT_CODE(chan_type, 0, modifier, direction, type, number, 0, 0)
-
-/**
- * IIO_UNMOD_EVENT_CODE() - create event identifier for unmodified channels
- * @chan_type:	Type of the channel. Should be one of enum iio_chan_type.
- * @number:	Channel number.
- * @type:	Type of the event. Should be one of enum iio_event_type.
- * @direction:	Direction of the event. One of enum iio_event_direction.
- */
-
-#define IIO_UNMOD_EVENT_CODE(chan_type, number, type, direction)	\
-	IIO_EVENT_CODE(chan_type, 0, 0, direction, type, number, 0, 0)
-
-#define IIO_EVENT_CODE_EXTRACT_TYPE(mask) ((mask >> 56) & 0xFF)
-
-#define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask >> 48) & 0xCF)
-
-#define IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(mask) ((mask >> 32) & 0xFF)
-
-/* Event code number extraction depends on which type of event we have.
- * Perhaps review this function in the future*/
-#define IIO_EVENT_CODE_EXTRACT_CHAN(mask) ((__s16)(mask & 0xFFFF))
-#define IIO_EVENT_CODE_EXTRACT_CHAN2(mask) ((__s16)(((mask) >> 16) & 0xFFFF))
-
-#define IIO_EVENT_CODE_EXTRACT_MODIFIER(mask) ((mask >> 40) & 0xFF)
-#define IIO_EVENT_CODE_EXTRACT_DIFF(mask) (((mask) >> 55) & 0x1)
-
-#endif /* _IIO_EVENTS_H_ */
diff --git a/libsensors_iio/src/iio_utils.c b/libsensors_iio/src/iio_utils.c
deleted file mode 100644
index ab2aedc..0000000
--- a/libsensors_iio/src/iio_utils.c
+++ /dev/null
@@ -1,987 +0,0 @@
-/* IIO - useful set of util functionality
- *
- * Copyright (c) 2008 Jonathan Cameron
- * Modified by Denis Ciocca <denis.ciocca@st.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
-
-#include <utils/Log.h>
-
-#include "iio_utils.h"
-#include "common_data.h"
-
-
-const char *iio_dir = "/sys/bus/iio/devices/";
-const char *iio_sampling_frequency_available_filename = "sampling_frequency_available";
-const char *iio_hw_fifo_lenght = "hw_fifo_lenght";
-const char *iio_buffer_enable = "buffer/enable";
-
-
-/**
- * iioutils_break_up_name() - extract generic name from full channel name
- * @full_name: the full channel name
- * @generic_name: the output generic channel name
- **/
-inline int iioutils_break_up_name(const char *full_name, char **generic_name)
-{
-	char *current;
-	char *w, *r;
-	char *working;
-
-	current = strdup(full_name);
-	working = strtok(current, "_\0");
-	w = working;
-	r = working;
-
-	while (*r != '\0') {
-		if (!isdigit(*r)) {
-			*w = *r;
-			w++;
-		}
-		r++;
-	}
-	*w = '\0';
-	*generic_name = strdup(working);
-	free(current);
-
-	return 0;
-}
-
-/**
- * iioutils_get_type() - find and process _type attribute data
- * @is_signed: output whether channel is signed
- * @bytes: output how many bytes the channel storage occupies
- * @mask: output a bit mask for the raw data
- * @be: big endian
- * @device_dir: the iio device directory
- * @name: the channel name
- * @generic_name: the channel type name
- **/
-inline int iioutils_get_type(unsigned *is_signed, unsigned *bytes,
-	unsigned *bits_used, unsigned *shift, uint64_t *mask, unsigned *be,
-			const char *device_dir, const char *name, const char *generic_name)
-{
-	char *scan_el_dir, *builtname, *builtname_generic, *filename = 0;
-	char signchar, endianchar;
-	const struct dirent *ent;
-	unsigned padint;
-	FILE *sysfsfp;
-	int ret;
-	DIR *dp;
-
-	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
-
-	ret = asprintf(&builtname, FORMAT_TYPE_FILE, name);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_free_scan_el_dir;
-	}
-
-	ret = asprintf(&builtname_generic, FORMAT_TYPE_FILE, generic_name);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_free_builtname;
-	}
-
-	dp = opendir(scan_el_dir);
-	if (dp == NULL) {
-		ret = -errno;
-		goto error_free_builtname_generic;
-	}
-
-	while (ent = readdir(dp), ent != NULL)
-		/*
-		 * Do we allow devices to override a generic name with
-		 * a specific one?
-		 */
-		if ((strcmp(builtname, ent->d_name) == 0) ||
-				(strcmp(builtname_generic, ent->d_name) == 0)) {
-			ret = asprintf(&filename, "%s/%s", scan_el_dir, ent->d_name);
-			if (ret < 0) {
-				ret = -ENOMEM;
-				goto error_closedir;
-			}
-
-			sysfsfp = fopen(filename, "r");
-			if (sysfsfp == NULL) {
-				printf("failed to open %s\n", filename);
-				ret = -errno;
-				goto error_free_filename;
-			}
-
-			ret = fscanf(sysfsfp, "%ce:%c%u/%u>>%u", &endianchar,
-					&signchar, bits_used, &padint, shift);
-			if (ret < 0) {
-				ret = -errno;
-				goto error_close_sysfsfp;
-			}
-
-			*be = (endianchar == 'b');
-			*bytes = padint / 8;
-			if (*bits_used == 64)
-				*mask = ~0;
-			else
-				*mask = (1 << *bits_used) - 1;
-
-			if (signchar == 's')
-				*is_signed = 1;
-			else
-				*is_signed = 0;
-
-			fclose(sysfsfp);
-			free(filename);
-
-			filename = 0;
-			sysfsfp = 0;
-		}
-
-error_close_sysfsfp:
-	if (sysfsfp)
-		fclose(sysfsfp);
-error_free_filename:
-	if (filename)
-		free(filename);
-error_closedir:
-	closedir(dp);
-error_free_builtname_generic:
-	free(builtname_generic);
-error_free_builtname:
-	free(builtname);
-error_free_scan_el_dir:
-	free(scan_el_dir);
-error_ret:
-	return ret;
-}
-
-inline int iioutils_get_param_float(float *output, const char *param_name,
-		const char *device_dir, const char *name, const char *generic_name)
-{
-	char *builtname, *builtname_generic;
-	const struct dirent *ent;
-	char *filename = NULL;
-	FILE *sysfsfp;
-	int ret;
-	DIR *dp;
-
-	ret = asprintf(&builtname, "%s_%s", name, param_name);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
-
-	ret = asprintf(&builtname_generic, "%s_%s", generic_name, param_name);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_free_builtname;
-	}
-
-	dp = opendir(device_dir);
-	if (dp == NULL) {
-		ret = -errno;
-		goto error_free_builtname_generic;
-	}
-
-	while (ent = readdir(dp), ent != NULL)
-		if ((strcmp(builtname, ent->d_name) == 0) ||
-				(strcmp(builtname_generic, ent->d_name) == 0)) {
-			ret = asprintf(&filename, "%s/%s", device_dir, ent->d_name);
-			if (ret < 0) {
-				ret = -ENOMEM;
-				goto error_closedir;
-			}
-
-			sysfsfp = fopen(filename, "r");
-			if (!sysfsfp) {
-				ret = -errno;
-				goto error_free_filename;
-			}
-			fscanf(sysfsfp, "%f", output);
-			break;
-		}
-error_free_filename:
-	if (filename)
-		free(filename);
-error_closedir:
-	closedir(dp);
-error_free_builtname_generic:
-	free(builtname_generic);
-error_free_builtname:
-	free(builtname);
-error_ret:
-	return ret;
-}
-
-/**
- * bsort_channel_array_by_index() - reorder so that the array is in index order
- *
- **/
-inline void bsort_channel_array_by_index(struct iio_channel_info **ci_array,
-					 int cnt)
-{
-
-	struct iio_channel_info temp;
-	int x, y;
-
-	for (x = 0; x < cnt; x++) {
-		for (y = 0; y < (cnt - 1); y++) {
-			if ((*ci_array)[y].index > (*ci_array)[y+1].index) {
-				temp = (*ci_array)[y + 1];
-				(*ci_array)[y + 1] = (*ci_array)[y];
-				(*ci_array)[y] = temp;
-			}
-		}
-	}
-}
-
-int iio_utils_enable_sensor(const char *device_dir, bool enable)
-{
-	return write_sysfs_int_and_verify((char *)iio_buffer_enable, (char *)device_dir, (int)enable);
-}
-
-int iio_utils_get_hw_fifo_lenght(const char *device_dir)
-{
-	int len;
-
-	len = read_sysfs_posint((char *)iio_hw_fifo_lenght, (char *)device_dir);
-	if (len < 0)
-		return 0;
-
-	return len;
-}
-
-int iio_utils_set_scale(const char *device_dir, float value, int device_type)
-{
-	int err;
-	char *scale_file_name;
-
-	switch (device_type) {
-		case SENSOR_TYPE_ACCELEROMETER:
-			scale_file_name = (char *)"in_accel_x_scale";
-			break;
-		case SENSOR_TYPE_MAGNETIC_FIELD:
-			scale_file_name = (char *)"in_magn_x_scale";
-			break;
-		case SENSOR_TYPE_GYROSCOPE:
-			scale_file_name = (char *)"in_anglvel_x_scale";
-			break;
-		case SENSOR_TYPE_PRESSURE:
-			scale_file_name = (char *)"in_press_scale";
-			break;
-		default:
-			return -EINVAL;
-	}
-
-	err = write_sysfs_float_and_verify(scale_file_name, (char *)device_dir, value);
-	if (err < 0)
-		return err;
-
-	return 0;
-}
-
-int iio_utils_get_scale_available(const char *device_dir, struct iio_scale_available *sa, int device_type)
-{
-	int err;
-	FILE *fp;
-	char *tmp_name, *avl_name, *pch, line[200];
-
-	sa->num_available = 0;
-
-	switch (device_type) {
-		case SENSOR_TYPE_ACCELEROMETER:
-			avl_name = (char *)"in_accel_scale_available";
-			break;
-		case SENSOR_TYPE_MAGNETIC_FIELD:
-			avl_name = (char *)"in_magn_scale_available";
-			break;
-		case SENSOR_TYPE_GYROSCOPE:
-			avl_name = (char *)"in_anglvel_scale_available";
-			break;
-		case SENSOR_TYPE_PRESSURE:
-			avl_name = (char *)"in_press_scale_available";
-			break;
-		default:
-			return -EINVAL;
-	}
-
-	err = asprintf(&tmp_name, "%s/%s", device_dir, avl_name);
-	if (err < 0)
-		return err;
-
-	fp = fopen(tmp_name, "r");
-	if (fp == NULL) {
-		err = 0;
-		goto open_file_error;
-	}
-
-	fgets(line, sizeof(line), fp);
-	if (line == NULL) {
-		ALOGE("Scale available file format error: \"%s\".", tmp_name);
-		err = -EINVAL;
-		goto read_error;
-	}
-
-	pch = strtok(line," ");
-	while (pch != NULL) {
-		sa->values[sa->num_available] = atof(pch);
-		pch = strtok(NULL, " ");
-		sa->num_available++;
-
-		if (sa->num_available >= IIO_UTILS_SCALE_AVAILABLE)
-			break;
-	}
-
-read_error:
-	fclose(fp);
-open_file_error:
-	free(tmp_name);
-	return err < 0 ? err : 0;
-}
-
-int iio_utils_get_sampling_frequency_available(const char *device_dir,
-					struct iio_sampling_frequency_available *sfa)
-{
-	int err;
-	FILE *fp;
-	char *tmp_name, *pch, line[200];
-
-	sfa->num_available = 0;
-
-	err = asprintf(&tmp_name, "%s/%s", device_dir, iio_sampling_frequency_available_filename);
-	if (err < 0)
-		return err;
-
-	fp = fopen(tmp_name, "r");
-	if (fp == NULL) {
-		ALOGE("Failed to open sampling frequency available file: \"%s\".", tmp_name);
-		err = -errno;
-		goto tmp_name_free;
-	}
-
-	fgets(line, sizeof(line), fp);
-	if (line == NULL) {
-		ALOGE("Sampling frequency file format error: \"%s\".", tmp_name);
-		err = -EINVAL;
-		goto close_file;
-	}
-
-	pch = strtok(line," ,.");
-	while (pch != NULL) {
-		sfa->hz[sfa->num_available] = atoi(pch);
-		pch = strtok(NULL, " ,.");
-		sfa->num_available++;
-
-		if (sfa->num_available >= IIO_UTILS_MAX_SAMP_FREQ_AVAILABLE)
-			break;
-	}
-
-close_file:
-	fclose(fp);
-tmp_name_free:
-	free(tmp_name);
-	return err < 0 ? err : 0;
-}
-
-int iio_utils_build_channel_array(const char *device_dir,
-		struct iio_channel_info **ci_array, int *counter, bool read_offset)
-{
-	DIR *dp;
-	FILE *sysfsfp;
-	int count, i;
-	struct iio_channel_info *current;
-	int ret;
-	const struct dirent *ent;
-	char *scan_el_dir;
-	char *filename;
-
-	*counter = 0;
-	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir);
-	if (ret < 0) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
-
-	dp = opendir(scan_el_dir);
-	if (dp == NULL) {
-		ret = -errno;
-		goto error_free_name;
-	}
-
-	while (ent = readdir(dp), ent != NULL)
-		if (strcmp(ent->d_name + strlen(ent->d_name)
-						- strlen("_en"), "_en") == 0) {
-			ret = asprintf(&filename,
-					"%s/%s", scan_el_dir, ent->d_name);
-			if (ret < 0) {
-				ret = -ENOMEM;
-				goto error_close_dir;
-			}
-
-			sysfsfp = fopen(filename, "r+");
-			if (sysfsfp == NULL) {
-				ret = -errno;
-				free(filename);
-				goto error_close_dir;
-			}
-
-			fprintf(sysfsfp, "%d", 1);
-			rewind(sysfsfp);
-
-			fscanf(sysfsfp, "%u", &ret);
-			if (ret == 1)
-				(*counter)++;
-
-			fclose(sysfsfp);
-			free(filename);
-		}
-	*ci_array = malloc(sizeof(**ci_array) * (*counter));
-	if (*ci_array == NULL) {
-		ret = -ENOMEM;
-		goto error_close_dir;
-	}
-
-	rewinddir(dp);
-	count = 0;
-	while (ent = readdir(dp), ent != NULL) {
-		if (strcmp(ent->d_name + strlen(ent->d_name)
-						- strlen("_en"), "_en") == 0) {
-			current = &(*ci_array)[count++];
-			ret = asprintf(&filename, "%s/%s", scan_el_dir, ent->d_name);
-			if (ret < 0) {
-				ret = -ENOMEM;
-				/* decrement count to avoid freeing name */
-				count--;
-				goto error_cleanup_array;
-			}
-
-			sysfsfp = fopen(filename, "r");
-			if (sysfsfp == NULL) {
-				free(filename);
-				ret = -errno;
-				goto error_cleanup_array;
-			}
-
-			fscanf(sysfsfp, "%u", &current->enabled);
-			fclose(sysfsfp);
-
-			if (!current->enabled) {
-				free(filename);
-				count--;
-				continue;
-			}
-
-			current->scale = 1.0f;
-			current->offset = 0.0f;
-			current->name = strndup(ent->d_name,
-					strlen(ent->d_name) - strlen("_en"));
-			if (current->name == NULL) {
-				free(filename);
-				ret = -ENOMEM;
-				goto error_cleanup_array;
-			}
-
-			/* Get the generic and specific name elements */
-			ret = iioutils_break_up_name(current->name,
-							&current->generic_name);
-			if (ret) {
-				free(filename);
-				goto error_cleanup_array;
-			}
-
-			ret = asprintf(&filename, "%s/%s_index",
-						scan_el_dir, current->name);
-			if (ret < 0) {
-				free(filename);
-				ret = -ENOMEM;
-				goto error_cleanup_array;
-			}
-
-			sysfsfp = fopen(filename, "r");
-			fscanf(sysfsfp, "%u", &current->index);
-			fclose(sysfsfp);
-			free(filename);
-
-			/* Find the scale */
-			ret = iioutils_get_param_float(&current->scale, "scale",
-				device_dir, current->name, current->generic_name);
-			if (ret < 0)
-				goto error_cleanup_array;
-
-			if (read_offset) {
-				ret = iioutils_get_param_float(&current->offset,
-						"offset", device_dir, current->name,
-								current->generic_name);
-				if (ret < 0)
-					goto error_cleanup_array;
-			}
-
-			ret = iioutils_get_type(&current->is_signed,
-						&current->bytes,
-						&current->bits_used,
-						&current->shift,
-						&current->mask,
-						&current->be,
-						device_dir,
-						current->name,
-						current->generic_name);
-		}
-	}
-
-	closedir(dp);
-	/* reorder so that the array is in index order */
-	bsort_channel_array_by_index(ci_array, *counter);
-
-	return 1;
-
-error_cleanup_array:
-	for (i = count - 1; i >= 0; i--)
-		free((*ci_array)[i].name);
-	free(*ci_array);
-error_close_dir:
-	closedir(dp);
-error_free_name:
-	free(scan_el_dir);
-error_ret:
-	return ret;
-}
-
-int find_type_by_name(char *name, const char *type)
-{
-	char thisname[IIO_MAX_NAME_LENGTH];
-	const struct dirent *ent;
-	int number, numstrlen;
-	char *filename;
-	FILE *nameFile;
-	DIR *dp;
-
-	dp = opendir(iio_dir);
-	if (dp == NULL)
-		return -ENODEV;
-
-	while (ent = readdir(dp), ent != NULL) {
-		if (strcmp(ent->d_name, ".") != 0 &&
-				strcmp(ent->d_name, "..") != 0 &&
-				strlen(ent->d_name) > strlen(type) &&
-				strncmp(ent->d_name, type, strlen(type)) == 0) {
-
-			numstrlen = sscanf(ent->d_name + strlen(type), "%d", &number);
-
-			/* verify the next character is not a colon */
-			if (strncmp(ent->d_name + strlen(type) + numstrlen,
-								":", 1) != 0) {
-				filename = (char *)malloc(strlen(iio_dir)
-						+ strlen(type)
-						+ numstrlen
-						+ 6);
-				if (filename == NULL) {
-					closedir(dp);
-					return -ENOMEM;
-				}
-
-				sprintf(filename, "%s%s%d/name", iio_dir,
-								type, number);
-				nameFile = fopen(filename, "r");
-				if (!nameFile) {
-					free(filename);
-					continue;
-				}
-
-				free(filename);
-				fscanf(nameFile, "%s", thisname);
-				fclose(nameFile);
-				if (strcmp(name, thisname) == 0) {
-					closedir(dp);
-					return number;
-				}
-			}
-		}
-	}
-	closedir(dp);
-
-	return -ENODEV;
-}
-
-int iio_utils_get_devices_name(struct iio_device devices[], unsigned int max_list)
-{
-	unsigned int device_num = 0;
-	char thisname[IIO_MAX_NAME_LENGTH];
-	const struct dirent *ent;
-	int number, numstrlen;
-	char *filename;
-	FILE *nameFile;
-	DIR *dp;
-
-	dp = opendir(iio_dir);
-	if (dp == NULL)
-		return -ENODEV;
-
-	while (ent = readdir(dp), ent != NULL) {
-		if (strcmp(ent->d_name, ".") != 0 &&
-				strcmp(ent->d_name, "..") != 0 &&
-				strlen(ent->d_name) > strlen("iio:device") &&
-				strncmp(ent->d_name, "iio:device", strlen("iio:device")) == 0) {
-
-			numstrlen = sscanf(ent->d_name + strlen("iio:device"), "%d", &number);
-
-			/* verify the next character is not a colon */
-			if (strncmp(ent->d_name + strlen("iio:device") + numstrlen,
-								":", 1) != 0) {
-				filename = (char *)malloc(strlen(iio_dir)
-						+ strlen("iio:device")
-						+ numstrlen
-						+ 6);
-				if (filename == NULL) {
-					closedir(dp);
-					return -ENOMEM;
-				}
-
-				sprintf(filename, "%s%s%d/name", iio_dir,
-							"iio:device", number);
-				nameFile = fopen(filename, "r");
-				if (!nameFile) {
-					free(filename);
-					continue;
-				}
-
-				free(filename);
-				fscanf(nameFile, "%s", thisname);
-				fclose(nameFile);
-
-				memcpy(devices[device_num].name, thisname, strlen(thisname));
-				devices[device_num].name[strlen(thisname)] = '\0';
-
-				devices[device_num].dev_num = number;
-				device_num++;
-
-				if (device_num >= max_list) {
-					closedir(dp);
-					return (int)device_num;
-				}
-			}
-		}
-	}
-	closedir(dp);
-
-	return (int)device_num;
-}
-
-inline int _write_sysfs_int(char *filename, char *basedir, int val, int verify)
-{
-	int ret = 0;
-	FILE *sysfsfp;
-	int test;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "w");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fprintf(sysfsfp, "%d", val);
-	fclose(sysfsfp);
-
-	if (verify) {
-		sysfsfp = fopen(temp, "r");
-		if (sysfsfp == NULL) {
-			ret = -errno;
-			goto error_free;
-		}
-		fscanf(sysfsfp, "%d", &test);
-		fclose(sysfsfp);
-
-		if (test != val) {
-			ALOGE("Failed to write \"%d\" to \"%s/%s\" file.",
-							val, basedir, filename);
-			ret = -1;
-		}
-	}
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int write_sysfs_int(char *filename, char *basedir, int val)
-{
-	return _write_sysfs_int(filename, basedir, val, 0);
-}
-
-int write_sysfs_int_and_verify(char *filename, char *basedir, int val)
-{
-	return _write_sysfs_int(filename, basedir, val, 1);
-}
-
-inline int _write_sysfs_ulong_and_verify(char *filename, char *basedir,
-						unsigned long val, int verify)
-{
-	int ret = 0;
-	FILE *sysfsfp;
-	unsigned long test;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "w");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fprintf(sysfsfp, "%lu", val);
-	fclose(sysfsfp);
-
-	if (verify) {
-		sysfsfp = fopen(temp, "r");
-		if (sysfsfp == NULL) {
-			ret = -errno;
-			goto error_free;
-		}
-		fscanf(sysfsfp, "%lu", &test);
-		fclose(sysfsfp);
-
-		if (test != val) {
-			ALOGE("Failed to write \"%lu\" to \"%s/%s\" file.",
-							val, basedir, filename);
-			ret = -1;
-		}
-	}
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int write_sysfs_ulong_and_verify(char *filename, char *basedir, unsigned long val)
-{
-	return _write_sysfs_ulong_and_verify(filename, basedir, val, 1);
-}
-
-inline int _write_sysfs_float(char *filename, char *basedir, float val, int verify)
-{
-	int ret = 0;
-	FILE *sysfsfp;
-	float test;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "w");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fprintf(sysfsfp, "%f", val);
-	fclose(sysfsfp);
-
-	if (verify) {
-		sysfsfp = fopen(temp, "r");
-		if (sysfsfp == NULL) {
-			ret = -errno;
-			goto error_free;
-		}
-		fscanf(sysfsfp, "%f", &test);
-		fclose(sysfsfp);
-
-		if (test != val) {
-			ALOGE("Failed to write \"%f\" to \"%s/%s\" file.",
-							val, basedir, filename);
-			ret = -1;
-		}
-	}
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int write_sysfs_float(char *filename, char *basedir, float val)
-{
-	return _write_sysfs_float(filename, basedir, val, 0);
-}
-
-int write_sysfs_float_and_verify(char *filename, char *basedir, float val)
-{
-	return _write_sysfs_float(filename, basedir, val, 1);
-}
-
-int _write_sysfs_string(char *filename, char *basedir, char *val, int verify)
-{
-	FILE  *sysfsfp;
-	int ret = 0;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "w");
-	if (sysfsfp == NULL) {
-		ret = -EIO;
-		goto error_free;
-	}
-
-	fprintf(sysfsfp, "%s", val);
-	fclose(sysfsfp);
-	if (verify) {
-		sysfsfp = fopen(temp, "r");
-		if (sysfsfp == NULL) {
-			ret = -EIO;
-			goto error_free;
-		}
-
-		fscanf(sysfsfp, "%s", temp);
-		fclose(sysfsfp);
-		if (strcmp(temp, val) != 0)
-			ret = -1;
-	}
-error_free:
-	free(temp);
-
-	return ret;
-}
-
-int write_sysfs_string_and_verify(char *filename, char *basedir, char *val)
-{
-	return _write_sysfs_string(filename, basedir, val, 1);
-}
-
-int write_sysfs_string(char *filename, char *basedir, char *val)
-{
-	return _write_sysfs_string(filename, basedir, val, 0);
-}
-
-int read_sysfs_posint(char *filename, char *basedir)
-{
-	int ret;
-	FILE  *sysfsfp;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "r");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fscanf(sysfsfp, "%d\n", &ret);
-	fclose(sysfsfp);
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int read_sysfs_float(char *filename, char *basedir, float *val)
-{
-	float ret = 0;
-	FILE  *sysfsfp;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "r");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fscanf(sysfsfp, "%f\n", val);
-	fclose(sysfsfp);
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int read_sysfs_string(char *filename, char *basedir, char *str)
-{
-	int ret = 0;
-	FILE  *sysfsfp;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "r");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	fscanf(sysfsfp, "%s\n", str);
-	fclose(sysfsfp);
-
-error_free:
-	free(temp);
-	return ret;
-}
-
-int read_sysfs_byte(char *filename, char *basedir, uint8_t *data, size_t len)
-{
-	int ret = 0;
-	FILE  *sysfsfp;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "r");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	ret = fread(data, len, 1, sysfsfp);
-	fclose(sysfsfp);
-
-error_free:
-	free(temp);
-	return ret <= 0 ? -errno : (int)len;
-}
-
-int write_sysfs_byte(char *filename, char *basedir, uint8_t *data, size_t len)
-{
-	int ret = 0;
-	FILE  *sysfsfp;
-
-	char *temp = (char *)malloc(strlen(basedir) + strlen(filename) + 2);
-	if (temp == NULL)
-		return -ENOMEM;
-
-	sprintf(temp, "%s/%s", basedir, filename);
-	sysfsfp = fopen(temp, "w");
-	if (sysfsfp == NULL) {
-		ret = -errno;
-		goto error_free;
-	}
-
-	ret = fwrite(data, len, 1, sysfsfp);
-	fclose(sysfsfp);
-
-error_free:
-	free(temp);
-	return ret <= 0 ? -errno : (int)len;
-}
diff --git a/libsensors_iio/src/iio_utils.h b/libsensors_iio/src/iio_utils.h
deleted file mode 100644
index bb0d7c3..0000000
--- a/libsensors_iio/src/iio_utils.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* IIO - useful set of util functionality
- *
- * Copyright (c) 2008 Jonathan Cameron
- * Modified by Denis Ciocca <denis.ciocca@st.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
-
-#ifndef IIO_UTILS
-#define IIO_UTILS
-
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <dirent.h>
-#include <errno.h>
-#include <stdbool.h>
-
-
-/* Made up value to limit allocation sizes */
-#define IIO_MAX_NAME_LENGTH		(70)
-
-#define FORMAT_SCAN_ELEMENTS_DIR	"%s/scan_elements"
-#define FORMAT_TYPE_FILE		"%s_type"
-
-#define IIO_DEFAULT_BUFFER_LEN		(2)
-
-/**
- * struct iio_channel_info - information about a given channel
- * @name: channel name
- * @generic_name: general name for channel type
- * @scale: scale factor to be applied for conversion to si units
- * @offset: offset to be applied for conversion to si units
- * @index: the channel index in the buffer output
- * @bytes: number of bytes occupied in buffer output
- * @mask: a bit mask for the raw output
- * @is_signed: is the raw value stored signed
- * @enabled: is this channel enabled
- **/
-struct iio_channel_info {
-	char *name;
-	char *generic_name;
-	float scale;
-	float offset;
-	unsigned index;
-	unsigned bytes;
-	unsigned bits_used;
-	unsigned shift;
-	uint64_t mask;
-	unsigned be;
-	unsigned is_signed;
-	unsigned enabled;
-	unsigned location;
-	bool isfloat;
-	bool multi_data;
-};
-
-
-/**
- * build_channel_array() - function to figure out what channels are present
- * @device_dir: the IIO device directory in sysfs
- * @
- **/
-int iio_utils_build_channel_array(const char *device_dir,
-	struct iio_channel_info **ci_array, int *counter, bool read_offset);
-
-/**
- * find_type_by_name() - function to match top level types by name
- * @name: top level type instance name
- * @type: the type of top level instance being sort
- *
- * Typical types this is used for are device and trigger.
- **/
-int find_type_by_name(char *name, const char *type);
-
-int write_sysfs_int(char *filename, char *basedir, int val);
-
-int write_sysfs_int_and_verify(char *filename, char *basedir, int val);
-
-int write_sysfs_ulong_and_verify(char *filename, char *basedir, unsigned long val);
-
-int write_sysfs_float(char *filename, char *basedir, float val);
-
-int write_sysfs_float_and_verify(char *filename, char *basedir, float val);
-
-
-
-
-
-#define IIO_UTILS_MAX_SAMP_FREQ_AVAILABLE		(10)
-#define IIO_UTILS_SCALE_AVAILABLE			(10)
-
-struct iio_scale_available {
-	float values[IIO_UTILS_SCALE_AVAILABLE];
-	unsigned int num_available;
-};
-
-struct iio_sampling_frequency_available {
-	unsigned int hz[IIO_UTILS_MAX_SAMP_FREQ_AVAILABLE];
-	unsigned int num_available;
-};
-
-struct iio_device {
-	unsigned int dev_num;
-	char name[IIO_MAX_NAME_LENGTH];
-};
-
-int iio_utils_get_devices_name(struct iio_device devices[], unsigned int max_list);
-
-int iio_utils_get_sampling_frequency_available(const char *device_dir,
-					struct iio_sampling_frequency_available *sfa);
-
-int iio_utils_get_scale_available(const char *device_dir, struct iio_scale_available *sa, int device_type);
-
-int iio_utils_set_scale(const char *device_dir, float value, int device_type);
-
-int iio_utils_get_hw_fifo_lenght(const char *device_dir);
-
-
-int iio_utils_enable_sensor(const char *device_dir, bool enable);
-
-/**
- * write_sysfs_string_and_verify() - string write, readback and verify
- * @filename: name of file to write to
- * @basedir: the sysfs directory in which the file is to be found
- * @val: the string to write
- **/
-int write_sysfs_string_and_verify(char *filename, char *basedir, char *val);
-
-int write_sysfs_string(char *filename, char *basedir, char *val);
-
-int read_sysfs_posint(char *filename, char *basedir);
-
-int read_sysfs_float(char *filename, char *basedir, float *val);
-
-int read_sysfs_string(char *filename, char *basedir, char *str);
-
-int read_sysfs_byte(char *filename, char *basedir, uint8_t *data, size_t len);
-
-int write_sysfs_byte(char *filename, char *basedir, uint8_t *data, size_t len);
-
-#endif /* IIO_UTILS */
diff --git a/libsensors_iio/src/sensor_cal.c b/libsensors_iio/src/sensor_cal.c
deleted file mode 100644
index 5d0eb3b..0000000
--- a/libsensors_iio/src/sensor_cal.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "sensor_cal.h"
-
-#include <errno.h>
-#include <cutils/log.h>
-
-/* Load sensor calibration data */
-int load_cali_data(const int sindex)
-{
-    int err = 0, num, sum;
-    FILE *filp;
-
-    if (((sindex == ACCEL_SINDEX) && accl_cal_data_loaded) ||
-            ((sindex == GYRO_SINDEX) && gyro_cal_data_loaded))
-        return 0;
-
-    filp = fopen(sensor_cali_data_path[sindex], "r");
-    if (filp == NULL) {
-        err = -errno;
-        ALOGE("failed to open %s, errno=%d", sensor_cali_data_path[sindex], err);
-        return err;
-    }
-
-    num = fscanf(filp, "%d %d %d %d",
-                    &cal_data[sindex][0], &cal_data[sindex][1],
-                    &cal_data[sindex][2], &sum);
-    if (num != 4) {
-        err = -EINVAL;
-        ALOGE("read %s data failed, num=%d", sensor_cali_data_path[sindex], num);
-        goto out;
-    }
-
-    if ((cal_data[sindex][0] + cal_data[sindex][1] + cal_data[sindex][2]) != sum) {
-        err = -EINVAL;
-        ALOGE("%s check sum error", sensor_cali_data_path[sindex]);
-        goto out;
-    }
-
-out:
-    fclose(filp);
-    return err;
-}
-
-/* Write calibration data to iio channel offset */
-void set_cali_offset(const int sindex, const bool wakeup)
-{
-#define MAX_BUF_LEN 64
-    int err, j;
-    FILE *filp;
-    char buf[MAX_BUF_LEN];
-
-    for (j = 0; j < (Z_AXIS_INDEX + 1); j++) {
-        err = snprintf(buf, MAX_BUF_LEN, "%s/%s",
-                sensor_sysfs_dir[sindex][wakeup], sensor_offset[sindex][j]);
-        if (err < 0) {
-            ALOGE("%s/%s snprintf err=%d",
-                sensor_sysfs_dir[sindex][wakeup], sensor_offset[sindex][j], err);
-            return;
-        }
-        filp = fopen(buf, "w");
-        if (filp == NULL) {
-            ALOGE("failed to open %s, errno=%d", buf, errno);
-            return;
-        }
-        fprintf(filp, "%d", cal_data[sindex][j]);
-        fclose(filp);
-    }
-
-    if (sindex == ACCEL_SINDEX)
-        accl_cal_data_loaded = true;
-    if (sindex == GYRO_SINDEX)
-        gyro_cal_data_loaded = true;
-}
-
-
-void do_cal_data_loading(const int sindex, const bool wakeup)
-{
-    int err;
-
-    err = load_cali_data(sindex);
-    if (err != 0)
-        return;
-
-    set_cali_offset(sindex, wakeup);
-
-}
diff --git a/libsensors_iio/src/sensor_cal.h b/libsensors_iio/src/sensor_cal.h
deleted file mode 100644
index 5b0ba40..0000000
--- a/libsensors_iio/src/sensor_cal.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __SENSOR_CAL_H__
-#define __SENSOR_CAL_H__
-
-#include <stdio.h>
-#include <stdbool.h>
-
-#define NON_WAKEUP    0
-#define WAKEUP    1
-
-enum SENSOR_INDEX {
-    ACCEL_SINDEX = 0,
-    GYRO_SINDEX,
-};
-
-enum SENSOR_AXIS_INDEX {
-    X_AXIS_INDEX = 0,
-    Y_AXIS_INDEX,
-    Z_AXIS_INDEX,
-};
-
-static const char * const sensor_cali_data_path[] = {
-    [ACCEL_SINDEX] = "/config/sensor/accel_cali",
-    [GYRO_SINDEX] = "/config/sensor/gyro_cali",
-};
-
-static const char * const sensor_sysfs_dir[][2] = {
-    {
-        [NON_WAKEUP] = "/sys/devices/iio:device1",
-        [WAKEUP] = "/sys/devices/iio:device2",
-    },
-    {
-        [NON_WAKEUP] = "/sys/devices/iio:device3",
-        [WAKEUP] = "/sys/devices/iio:device4",
-    },
-};
-
-static const char * const sensor_offset[][3] = {
-    {
-        [X_AXIS_INDEX] = "in_accel_x_offset",
-        [Y_AXIS_INDEX] = "in_accel_y_offset",
-        [Z_AXIS_INDEX] = "in_accel_z_offset",
-    },
-    {
-        [X_AXIS_INDEX] = "in_anglvel_x_offset",
-        [Y_AXIS_INDEX] = "in_anglvel_y_offset",
-        [Z_AXIS_INDEX] = "in_anglvel_z_offset",
-    },
-};
-
-static bool accl_cal_data_loaded;
-static bool gyro_cal_data_loaded;
-static int cal_data[2][3];
-
-void do_cal_data_loading(const int sindex, const bool wakeup);
-
-#endif
diff --git a/libsensors_iio/src/types.h b/libsensors_iio/src/types.h
deleted file mode 100644
index 1ab3a95..0000000
--- a/libsensors_iio/src/types.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* industrial I/O data types needed both in and out of kernel
- *
- * Copyright (c) 2008 Jonathan Cameron
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
-
-#ifndef _IIO_TYPES_H_
-#define _IIO_TYPES_H_
-
-enum iio_chan_type {
-	IIO_VOLTAGE,
-	IIO_CURRENT,
-	IIO_POWER,
-	IIO_ACCEL,
-	IIO_ANGL_VEL,
-	IIO_MAGN,
-	IIO_LIGHT,
-	IIO_INTENSITY,
-	IIO_PROXIMITY,
-	IIO_TEMP,
-	IIO_INCLI,
-	IIO_ROT,
-	IIO_ANGL,
-	IIO_TIMESTAMP,
-	IIO_CAPACITANCE,
-	IIO_ALTVOLTAGE,
-	IIO_CCT,
-	IIO_PRESSURE,
-	IIO_SIGN_MOTION,
-};
-
-enum iio_modifier {
-	IIO_NO_MOD,
-	IIO_MOD_X,
-	IIO_MOD_Y,
-	IIO_MOD_Z,
-	IIO_MOD_X_AND_Y,
-	IIO_MOD_X_AND_Z,
-	IIO_MOD_Y_AND_Z,
-	IIO_MOD_X_AND_Y_AND_Z,
-	IIO_MOD_X_OR_Y,
-	IIO_MOD_X_OR_Z,
-	IIO_MOD_Y_OR_Z,
-	IIO_MOD_X_OR_Y_OR_Z,
-	IIO_MOD_LIGHT_BOTH,
-	IIO_MOD_LIGHT_IR,
-	IIO_MOD_ROOT_SUM_SQUARED_X_Y,
-	IIO_MOD_SUM_SQUARED_X_Y_Z,
-	IIO_MOD_LIGHT_CLEAR,
-	IIO_MOD_LIGHT_RED,
-	IIO_MOD_LIGHT_GREEN,
-	IIO_MOD_LIGHT_BLUE,
-};
-
-#define IIO_VAL_INT 1
-#define IIO_VAL_INT_PLUS_MICRO 2
-#define IIO_VAL_INT_PLUS_NANO 3
-#define IIO_VAL_INT_PLUS_MICRO_DB 4
-#define IIO_VAL_FRACTIONAL 10
-#define IIO_VAL_FRACTIONAL_LOG2 11
-
-#endif /* _IIO_TYPES_H_ */
diff --git a/libsensors_iio/tools/cfgdefine.c b/libsensors_iio/tools/cfgdefine.c
deleted file mode 100644
index 5fe5b14..0000000
--- a/libsensors_iio/tools/cfgdefine.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
- * tools/cfgdefine.c
- *
- *   Copyright (C) 2007-2013 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- *   Modified by Denis Ciocca <denis.ciocca@st.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- *    used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include "cfgdefine.h"
-#include <stdbool.h>
-
-#define CUTOM_MACRO_LIST	6
-
-char line[LINESIZE + 1];
-
-static struct custom_macro {
-	char name[45];
-} custom_macro[] = {
-	{ .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_ACCEL" },
-	{ .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_MAGN" },
-	{ .name = "CONFIG_ST_HAL_INEMO_GBIAS_THRESOLD_GYRO" },
-	{ .name = "CONFIG_ST_HAL_ACCEL_ROT_MATRIX" },
-	{ .name = "CONFIG_ST_HAL_MAGN_ROT_MATRIX" },
-	{ .name = "CONFIG_ST_HAL_GYRO_ROT_MATRIX" },
-};
-
-/* Skip over any spaces */
-static char *skip_space(char *ptr)
-{
-	while (*ptr && isspace((int)*ptr)) ptr++;
-
-	return ptr;
-}
-
-/* Find the end of a variable string */
-static char *find_name_end(char *ptr)
-{
-	while (*ptr && (isalnum((int)*ptr) || *ptr == '_')) ptr++;
-
-	return ptr;
-}
-
-/* Find the end of a value string */
-static char *find_value_end(char *ptr)
-{
-	while (*ptr && !isspace((int)*ptr)) {
-		if (*ptr == '"') {
-			do ptr++; while (*ptr && *ptr != '"');
-			if (*ptr) ptr++;
-		} else
-			do ptr++; while (*ptr && !isspace((int)*ptr) && *ptr != '"');
-
-	}
-
-	return ptr;
-}
-
-/* Read the next line from the configuration file */
-static char *read_line(FILE *stream)
-{
-	char *ptr;
-
-	for (;;) {
-		line[LINESIZE] = '\0';
-
-		if (!fgets(line, LINESIZE, stream))
-			return NULL;
-		else {
-			ptr = skip_space(line);
-			if (*ptr && *ptr != '#' && *ptr != '\n')
-				return ptr;
-			else if ((*ptr == '#') && (*(ptr+1) == '\n'))
-				printf("\n");
-		}
-	}
-
-	return NULL;
-}
-
-static void dequote_custom_values(char *var, char *value)
-{
-	int i, n, ret;
-	char *t1;
-
-	if (!var)
-		return;
-
-	for (i = 0; i < CUTOM_MACRO_LIST; i++) {
-		ret = strncmp(custom_macro[i].name, var, strlen(custom_macro[i].name));
-		if (ret == 0) {
-			for (n = 1; n < strlen(value) - 1; n++)
-				value[n - 1] = value[n];
-
-			value[n - 1] = '\0';
-			return;
-		}
-	}
-
-	return;
-}
-
-/* Parse the line from the configuration file into a variable name
- * string and a value string.
- */
-static void parse_line(char *ptr, char **varname, char **varval)
-{
-	/* Skip over any leading spaces */
-	ptr = skip_space(ptr);
-
-	/* The first no-space is the beginning of the variable name */
-	*varname = skip_space(ptr);
-	*varval = NULL;
-
-	/* Parse to the end of the variable name */
-	ptr = find_name_end(ptr);
-
-	/* An equal sign is expected next, perhaps after some white space */
-	if (*ptr && *ptr != '=') {
-		/* Some else follows the variable name.  Terminate the variable
-		* name and skip over any spaces.
-		*/
-
-		*ptr = '\0';
-		ptr = skip_space(ptr + 1);
-	}
-
-	/* Verify that the equal sign is present */
-	if (*ptr == '=') {
-		/* Make sure that the variable name is terminated (this was already
-		* done if the name was followed by white space.
-		*/
-
-		*ptr = '\0';
-
-		/* The variable value should follow =, perhaps separated by some
-		* white space.
-		*/
-
-		ptr = skip_space(ptr + 1);
-		if (*ptr) {
-			/* Yes.. a variable follows.  Save the pointer to the start
-			* of the variable string.
-			*/
-
-			*varval = ptr;
-
-			/* Find the end of the variable string and make sure that it
-			* is terminated.
-			*/
-
-			ptr = find_value_end(ptr);
-			*ptr = '\0';
-		}
-	}
-}
-
-void generate_definitions(FILE *stream)
-{
-	char *varname;
-	char *varval;
-	char *ptr;
-
-	/* Loop until the entire file has been parsed. */
-	do {
-		/* Read the next line from the file */
-		ptr = read_line(stream);
-		if (ptr) {
-			/* Parse the line into a variable and a value field */
-			parse_line(ptr, &varname, &varval);
-
-			dequote_custom_values(varname, varval);
-
-			/* Was a variable name found? */
-			if (varname) {
-				/* If no value was provided or if the special value 'n' was provided,
-				* then undefine the configuration variable.
-				*/
-
-				if (!varval || strcmp(varval, "n") == 0)
-					printf("#undef %s\n", varname);
-				else if (strcmp(varval, "y") == 0)
-					printf("#define %s 1\n", varname);
-				else
-					printf("#define %s %s\n", varname, varval);
-			}
-		}
-	} while (ptr);
-}
diff --git a/libsensors_iio/tools/cfgdefine.h b/libsensors_iio/tools/cfgdefine.h
deleted file mode 100644
index fd7d9a2..0000000
--- a/libsensors_iio/tools/cfgdefine.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- * tools/cfgdefine.h
- *
- *   Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- *   Modified by Denis Ciocca <denis.ciocca@st.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- *    used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#ifndef __TOOLS_CFGDEFINE_H
-#define __TOOLS_CFGDEFINE_H
-
-#include <stdio.h>
-#include <limits.h>
-
-#define LINESIZE		( PATH_MAX > 256 ? PATH_MAX : 256 )
-
-extern char line[LINESIZE+1];
-
-void generate_definitions(FILE *stream);
-
-#endif /* __TOOLS_CFGDEFINE_H */
diff --git a/libsensors_iio/tools/kconfig-language.txt b/libsensors_iio/tools/kconfig-language.txt
deleted file mode 100644
index 350f733..0000000
--- a/libsensors_iio/tools/kconfig-language.txt
+++ /dev/null
@@ -1,395 +0,0 @@
-Introduction
-------------
-
-The configuration database is a collection of configuration options
-organized in a tree structure:
-
-	+- Code maturity level options
-	|  +- Prompt for development and/or incomplete code/drivers
-	+- General setup
-	|  +- Networking support
-	|  +- System V IPC
-	|  +- BSD Process Accounting
-	|  +- Sysctl support
-	+- Loadable module support
-	|  +- Enable loadable module support
-	|     +- Set version information on all module symbols
-	|     +- Kernel module loader
-	+- ...
-
-Every entry has its own dependencies. These dependencies are used
-to determine the visibility of an entry. Any child entry is only
-visible if its parent entry is also visible.
-
-Menu entries
-------------
-
-Most entries define a config option; all other entries help to organize
-them. A single configuration option is defined like this:
-
-config MODVERSIONS
-	bool "Set version information on all module symbols"
-	depends on MODULES
-	help
-	  Usually, modules have to be recompiled whenever you switch to a new
-	  kernel.  ...
-
-Every line starts with a key word and can be followed by multiple
-arguments.  "config" starts a new config entry. The following lines
-define attributes for this config option. Attributes can be the type of
-the config option, input prompt, dependencies, help text and default
-values. A config option can be defined multiple times with the same
-name, but every definition can have only a single input prompt and the
-type must not conflict.
-
-Menu attributes
----------------
-
-A menu entry can have a number of attributes. Not all of them are
-applicable everywhere (see syntax).
-
-- type definition: "bool"/"tristate"/"string"/"hex"/"int"
-  Every config option must have a type. There are only two basic types:
-  tristate and string; the other types are based on these two. The type
-  definition optionally accepts an input prompt, so these two examples
-  are equivalent:
-
-	bool "Networking support"
-  and
-	bool
-	prompt "Networking support"
-
-- input prompt: "prompt" <prompt> ["if" <expr>]
-  Every menu entry can have at most one prompt, which is used to display
-  to the user. Optionally dependencies only for this prompt can be added
-  with "if".
-
-- default value: "default" <expr> ["if" <expr>]
-  A config option can have any number of default values. If multiple
-  default values are visible, only the first defined one is active.
-  Default values are not limited to the menu entry where they are
-  defined. This means the default can be defined somewhere else or be
-  overridden by an earlier definition.
-  The default value is only assigned to the config symbol if no other
-  value was set by the user (via the input prompt above). If an input
-  prompt is visible the default value is presented to the user and can
-  be overridden by him.
-  Optionally, dependencies only for this default value can be added with
-  "if".
-
-- type definition + default value:
-	"def_bool"/"def_tristate" <expr> ["if" <expr>]
-  This is a shorthand notation for a type definition plus a value.
-  Optionally dependencies for this default value can be added with "if".
-
-- dependencies: "depends on" <expr>
-  This defines a dependency for this menu entry. If multiple
-  dependencies are defined, they are connected with '&&'. Dependencies
-  are applied to all other options within this menu entry (which also
-  accept an "if" expression), so these two examples are equivalent:
-
-	bool "foo" if BAR
-	default y if BAR
-  and
-	depends on BAR
-	bool "foo"
-	default y
-
-- reverse dependencies: "select" <symbol> ["if" <expr>]
-  While normal dependencies reduce the upper limit of a symbol (see
-  below), reverse dependencies can be used to force a lower limit of
-  another symbol. The value of the current menu symbol is used as the
-  minimal value <symbol> can be set to. If <symbol> is selected multiple
-  times, the limit is set to the largest selection.
-  Reverse dependencies can only be used with boolean or tristate
-  symbols.
-  Note:
-	select should be used with care. select will force
-	a symbol to a value without visiting the dependencies.
-	By abusing select you are able to select a symbol FOO even
-	if FOO depends on BAR that is not set.
-	In general use select only for non-visible symbols
-	(no prompts anywhere) and for symbols with no dependencies.
-	That will limit the usefulness but on the other hand avoid
-	the illegal configurations all over.
-
-- limiting menu display: "visible if" <expr>
-  This attribute is only applicable to menu blocks, if the condition is
-  false, the menu block is not displayed to the user (the symbols
-  contained there can still be selected by other symbols, though). It is
-  similar to a conditional "prompt" attribute for individual menu
-  entries. Default value of "visible" is true.
-
-- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
-  This allows to limit the range of possible input values for int
-  and hex symbols. The user can only input a value which is larger than
-  or equal to the first symbol and smaller than or equal to the second
-  symbol.
-
-- help text: "help" or "---help---"
-  This defines a help text. The end of the help text is determined by
-  the indentation level, this means it ends at the first line which has
-  a smaller indentation than the first line of the help text.
-  "---help---" and "help" do not differ in behaviour, "---help---" is
-  used to help visually separate configuration logic from help within
-  the file as an aid to developers.
-
-- misc options: "option" <symbol>[=<value>]
-  Various less common options can be defined via this option syntax,
-  which can modify the behaviour of the menu entry and its config
-  symbol. These options are currently possible:
-
-  - "defconfig_list"
-    This declares a list of default entries which can be used when
-    looking for the default configuration (which is used when the main
-    .config doesn't exists yet.)
-
-  - "modules"
-    This declares the symbol to be used as the MODULES symbol, which
-    enables the third modular state for all config symbols.
-    At most one symbol may have the "modules" option set.
-
-  - "env"=<value>
-    This imports the environment variable into Kconfig. It behaves like
-    a default, except that the value comes from the environment, this
-    also means that the behaviour when mixing it with normal defaults is
-    undefined at this point. The symbol is currently not exported back
-    to the build environment (if this is desired, it can be done via
-    another symbol).
-
-  - "allnoconfig_y"
-    This declares the symbol as one that should have the value y when
-    using "allnoconfig". Used for symbols that hide other symbols.
-
-Menu dependencies
------------------
-
-Dependencies define the visibility of a menu entry and can also reduce
-the input range of tristate symbols. The tristate logic used in the
-expressions uses one more state than normal boolean logic to express the
-module state. Dependency expressions have the following syntax:
-
-<expr> ::= <symbol>                             (1)
-           <symbol> '=' <symbol>                (2)
-           <symbol> '!=' <symbol>               (3)
-           '(' <expr> ')'                       (4)
-           '!' <expr>                           (5)
-           <expr> '&&' <expr>                   (6)
-           <expr> '||' <expr>                   (7)
-
-Expressions are listed in decreasing order of precedence. 
-
-(1) Convert the symbol into an expression. Boolean and tristate symbols
-    are simply converted into the respective expression values. All
-    other symbol types result in 'n'.
-(2) If the values of both symbols are equal, it returns 'y',
-    otherwise 'n'.
-(3) If the values of both symbols are equal, it returns 'n',
-    otherwise 'y'.
-(4) Returns the value of the expression. Used to override precedence.
-(5) Returns the result of (2-/expr/).
-(6) Returns the result of min(/expr/, /expr/).
-(7) Returns the result of max(/expr/, /expr/).
-
-An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
-respectively for calculations). A menu entry becomes visible when its
-expression evaluates to 'm' or 'y'.
-
-There are two types of symbols: constant and non-constant symbols.
-Non-constant symbols are the most common ones and are defined with the
-'config' statement. Non-constant symbols consist entirely of alphanumeric
-characters or underscores.
-Constant symbols are only part of expressions. Constant symbols are
-always surrounded by single or double quotes. Within the quote, any
-other character is allowed and the quotes can be escaped using '\'.
-
-Menu structure
---------------
-
-The position of a menu entry in the tree is determined in two ways. First
-it can be specified explicitly:
-
-menu "Network device support"
-	depends on NET
-
-config NETDEVICES
-	...
-
-endmenu
-
-All entries within the "menu" ... "endmenu" block become a submenu of
-"Network device support". All subentries inherit the dependencies from
-the menu entry, e.g. this means the dependency "NET" is added to the
-dependency list of the config option NETDEVICES.
-
-The other way to generate the menu structure is done by analyzing the
-dependencies. If a menu entry somehow depends on the previous entry, it
-can be made a submenu of it. First, the previous (parent) symbol must
-be part of the dependency list and then one of these two conditions
-must be true:
-- the child entry must become invisible, if the parent is set to 'n'
-- the child entry must only be visible, if the parent is visible
-
-config MODULES
-	bool "Enable loadable module support"
-
-config MODVERSIONS
-	bool "Set version information on all module symbols"
-	depends on MODULES
-
-comment "module support disabled"
-	depends on !MODULES
-
-MODVERSIONS directly depends on MODULES, this means it's only visible if
-MODULES is different from 'n'. The comment on the other hand is always
-visible when MODULES is visible (the (empty) dependency of MODULES is
-also part of the comment dependencies).
-
-
-Kconfig syntax
---------------
-
-The configuration file describes a series of menu entries, where every
-line starts with a keyword (except help texts). The following keywords
-end a menu entry:
-- config
-- menuconfig
-- choice/endchoice
-- comment
-- menu/endmenu
-- if/endif
-- source
-The first five also start the definition of a menu entry.
-
-config:
-
-	"config" <symbol>
-	<config options>
-
-This defines a config symbol <symbol> and accepts any of above
-attributes as options.
-
-menuconfig:
-	"menuconfig" <symbol>
-	<config options>
-
-This is similar to the simple config entry above, but it also gives a
-hint to front ends, that all suboptions should be displayed as a
-separate list of options.
-
-choices:
-
-	"choice" [symbol]
-	<choice options>
-	<choice block>
-	"endchoice"
-
-This defines a choice group and accepts any of the above attributes as
-options. A choice can only be of type bool or tristate, while a boolean
-choice only allows a single config entry to be selected, a tristate
-choice also allows any number of config entries to be set to 'm'. This
-can be used if multiple drivers for a single hardware exists and only a
-single driver can be compiled/loaded into the kernel, but all drivers
-can be compiled as modules.
-A choice accepts another option "optional", which allows to set the
-choice to 'n' and no entry needs to be selected.
-If no [symbol] is associated with a choice, then you can not have multiple
-definitions of that choice. If a [symbol] is associated to the choice,
-then you may define the same choice (ie. with the same entries) in another
-place.
-
-comment:
-
-	"comment" <prompt>
-	<comment options>
-
-This defines a comment which is displayed to the user during the
-configuration process and is also echoed to the output files. The only
-possible options are dependencies.
-
-menu:
-
-	"menu" <prompt>
-	<menu options>
-	<menu block>
-	"endmenu"
-
-This defines a menu block, see "Menu structure" above for more
-information. The only possible options are dependencies and "visible"
-attributes.
-
-if:
-
-	"if" <expr>
-	<if block>
-	"endif"
-
-This defines an if block. The dependency expression <expr> is appended
-to all enclosed menu entries.
-
-source:
-
-	"source" <prompt>
-
-This reads the specified configuration file. This file is always parsed.
-
-mainmenu:
-
-	"mainmenu" <prompt>
-
-This sets the config program's title bar if the config program chooses
-to use it. It should be placed at the top of the configuration, before any
-other statement.
-
-
-Kconfig hints
--------------
-This is a collection of Kconfig tips, most of which aren't obvious at
-first glance and most of which have become idioms in several Kconfig
-files.
-
-Adding common features and make the usage configurable
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-It is a common idiom to implement a feature/functionality that are
-relevant for some architectures but not all.
-The recommended way to do so is to use a config variable named HAVE_*
-that is defined in a common Kconfig file and selected by the relevant
-architectures.
-An example is the generic IOMAP functionality.
-
-We would in lib/Kconfig see:
-
-# Generic IOMAP is used to ...
-config HAVE_GENERIC_IOMAP
-
-config GENERIC_IOMAP
-	depends on HAVE_GENERIC_IOMAP && FOO
-
-And in lib/Makefile we would see:
-obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-
-For each architecture using the generic IOMAP functionality we would see:
-
-config X86
-	select ...
-	select HAVE_GENERIC_IOMAP
-	select ...
-
-Note: we use the existing config option and avoid creating a new
-config variable to select HAVE_GENERIC_IOMAP.
-
-Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is
-introduced to overcome the limitation of select which will force a
-config option to 'y' no matter the dependencies.
-The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the
-situation where select forces a symbol equals to 'y'.
-
-Build as module only
-~~~~~~~~~~~~~~~~~~~~
-To restrict a component build to module-only, qualify its config symbol
-with "depends on m".  E.g.:
-
-config FOO
-	depends on BAR && m
-
-limits FOO to module (=m) or disabled (=n).
diff --git a/libsensors_iio/tools/kconfig-mconf b/libsensors_iio/tools/kconfig-mconf
deleted file mode 100755
index 3f84ffb..0000000
--- a/libsensors_iio/tools/kconfig-mconf
+++ /dev/null
Binary files differ
diff --git a/libsensors_iio/tools/mkconfig b/libsensors_iio/tools/mkconfig
deleted file mode 100755
index c2b1af1..0000000
--- a/libsensors_iio/tools/mkconfig
+++ /dev/null
Binary files differ
diff --git a/libsensors_iio/tools/mkconfig.c b/libsensors_iio/tools/mkconfig.c
deleted file mode 100644
index 8655711..0000000
--- a/libsensors_iio/tools/mkconfig.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * tools/mkconfig.c
- *
- *   Copyright (C) 2007-2013 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- *   Modified by Denis Ciocca <denis.ciocca@st.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- *    used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include "cfgdefine.h"
-
-#define DEFCONFIG ".config"
-
- static inline char *getfilepath(const char *name)
-{
-	snprintf(line, PATH_MAX, "%s/" DEFCONFIG, name);
-	line[PATH_MAX] = '\0';
-	return strdup(line);
-}
-
-static void show_usage(const char *progname)
-{
-	fprintf(stderr, "USAGE: %s <abs path to .config>\n", progname);
-	exit(1);
-}
-
-int main(int argc, char **argv, char **envp)
-{
-	char *filepath;
-	FILE *stream;
-
-	if (argc != 2) {
-		fprintf(stderr, "Unexpected number of arguments\n");
-		show_usage(argv[0]);
-	}
-
-	filepath = getfilepath(argv[1]);
-	if (!filepath) {
-		fprintf(stderr, "getfilepath failed\n");
-		exit(2);
-	}
-
-	stream = fopen(filepath, "r");
-	if (!stream) {
-		fprintf(stderr, "open %s failed: %s\n", filepath, strerror(errno));
-		exit(3);
-	}
-
-	printf("/* configuration.h -- Autogenerated file! Do not edit. */\n\n");
-	printf("#ifndef __ST_SENSOR_HAL_CONFIG_H\n");
-	printf("#define __ST_SENSOR_HAL_CONFIG_H\n\n");
-	generate_definitions(stream);
-	printf("\n");
-	printf("#endif /* __ST_SENSOR_HAL_CONFIG_H */\n");
-	fclose(stream);
-
-	return 0;
-}
diff --git a/tilt/Android.mk b/tilt/Android.mk
deleted file mode 100644
index 6c5f9d5..0000000
--- a/tilt/Android.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2015 Intel Corp
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-ifeq ($(USE_SENSOR_HAL_PREBUILTS),false)
-
-LOCAL_PATH := $(call my-dir)
-
-# HAL module implemenation, not prelinked, and stored in
-# hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.product.board>.so
-include $(CLEAR_VARS)
-
-# ANDROID version check
-MAJOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f1 -d.)
-MINOR_VERSION := $(shell echo $(PLATFORM_VERSION) | cut -f2 -d.)
-
-VERSION_JB := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 1 && echo true)
-VERSION_JB := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 2 && echo true)
-VERSION_JB_MR2 := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 3 && echo true)
-VERSION_KK := $(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -eq 4 && echo true)
-VERSION_L := $(shell test $(MAJOR_VERSION) -eq 5 && echo true)
-VERSION_M := $(shell test $(MAJOR_VERSION) -eq 6 && echo true)
-#ANDROID version check END
-
-LOCAL_MODULE := sensor_tilt.robby
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
-
-LOCAL_MODULE_TAGS := optional
-# TODO: remove LOG_NDEBUG=0 for production builds, keep it during integration
-LOCAL_CFLAGS := -DLOG_TAG=\"TiltSensor\" -DANDROID_VERSION=$(MAJOR_VERSION)
-
-ifeq ($(VERSION_JB),true)
-LOCAL_CFLAGS += -DANDROID_JB
-endif
-
-ifeq ($(VERSION_JBMR2),true)
-LOCAL_CFLAGS += -DANDROID_JBMR2
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-endif
-
-ifeq ($(VERSION_KK),true)
-LOCAL_CFLAGS += -DANDROID_KK
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-ifeq ($(VERSION_L),true)
-LOCAL_CFLAGS += -DANDROID_L
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-ifeq ($(VERSION_M),true)
-LOCAL_CFLAGS += -DANDROID_M
-#hal version is greater than and equal 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GE_1_0
-#hal version is greater than 1_0
-LOCAL_CFLAGS += -DHAL_VERSION_GT_1_0
-endif
-
-##LOCAL_C_INCLUDES += hardware/invensense/libsensors_iio
-LOCAL_SRC_FILES := \
-    sensors.cpp \
-    InputEventReader.cpp \
-    TiltSensor.cpp \
-    SensorBase.cpp
-
-LOCAL_SHARED_LIBRARIES := liblog libutils libdl
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # USE_SENSOR_HAL_PREBUILTS
diff --git a/tilt/InputEventReader.cpp b/tilt/InputEventReader.cpp
deleted file mode 100644
index 1812cf5..0000000
--- a/tilt/InputEventReader.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <poll.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/input.h>
-#include <cutils/log.h>
-#include "InputEventReader.h"
-
-
-
-struct input_event;
-
-InputEventCircularReader::InputEventCircularReader(size_t numEvents)
-			: mBuffer(new input_event[numEvents * 2]),
-			mBufferEnd(mBuffer + numEvents),
-			mHead(mBuffer),
-			mCurr(mBuffer),
-			mFreeSpace(numEvents)
-{
-	FUNC_LOG;
-	mLastFd = -1;
-}
-
-InputEventCircularReader::~InputEventCircularReader()
-{
-	FUNC_LOG;
-	delete [] mBuffer;
-}
-
-/* TODO: clear DEBUG flag on production builds, keep it during integration */
-#define INPUT_EVENT_DEBUG (0)
-ssize_t InputEventCircularReader::fill(int fd)
-{
-	FUNC_LOG;
-	size_t numEventsRead = 0;
-	mLastFd = fd;
-
-	LOGV_IF(INPUT_EVENT_DEBUG,
-			"DEBUG:%s enter, fd=%d\n", __PRETTY_FUNCTION__, fd);
-	if (mFreeSpace) {
-		const ssize_t nread = read(fd, mHead, mFreeSpace * sizeof(input_event));
-		if (nread < 0 || nread % sizeof(input_event)) {
-			/* LOGE("Partial event received nread=%d, required=%d",
-			     nread, sizeof(input_event));
-			LOGE("FD trying to read is: %d"); */
-			/* we got a partial event!! */
-			if (INPUT_EVENT_DEBUG) {
-				LOGV_IF(nread < 0, "DEBUG:%s exit nread < 0\n",
-							__PRETTY_FUNCTION__);
-				LOGV_IF(nread % sizeof(input_event),
-							"DEBUG:%s exit nread %% sizeof(input_event)\n",
-							__PRETTY_FUNCTION__);
-			}
-			return (nread < 0 ? -errno : -EINVAL);
-		}
-
-		numEventsRead = nread / sizeof(input_event);
-		if (numEventsRead) {
-			mHead += numEventsRead;
-			mFreeSpace -= numEventsRead;
-			if (mHead > mBufferEnd) {
-				size_t s = mHead - mBufferEnd;
-				memcpy(mBuffer, mBufferEnd, s * sizeof(input_event));
-				mHead = mBuffer + s;
-			}
-		}
-	}
-
-	LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s exit, numEventsRead:%d\n",
-			__PRETTY_FUNCTION__, numEventsRead);
-	return numEventsRead;
-}
-
-ssize_t InputEventCircularReader::readEvent(input_event const** events)
-{
-	FUNC_LOG;
-	*events = mCurr;
-	ssize_t available = (mBufferEnd - mBuffer) - mFreeSpace;
-	LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s fd:%d, available:%d\n",
-			__PRETTY_FUNCTION__, mLastFd, (int)available);
-	return (available ? 1 : 0);
-}
-
-void InputEventCircularReader::next()
-{
-	FUNC_LOG;
-	mCurr++;
-	mFreeSpace++;
-	if (mCurr >= mBufferEnd)
-		mCurr = mBuffer;
-
-	ssize_t available = (mBufferEnd - mBuffer) - mFreeSpace;
-	LOGV_IF(INPUT_EVENT_DEBUG, "DEBUG:%s fd:%d, still available:%d\n",
-				__PRETTY_FUNCTION__, mLastFd, (int)available);
-}
-
diff --git a/tilt/InputEventReader.h b/tilt/InputEventReader.h
deleted file mode 100644
index 6e4350b..0000000
--- a/tilt/InputEventReader.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_INPUT_EVENT_READER_H
-#define ANDROID_INPUT_EVENT_READER_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include "SensorBase.h"
-
-
-struct input_event;
-
-class InputEventCircularReader
-{
-	struct input_event* const mBuffer;
-	struct input_event* const mBufferEnd;
-	struct input_event* mHead;
-	struct input_event* mCurr;
-	ssize_t mFreeSpace;
-	int mLastFd;
-
-public:
-	InputEventCircularReader(size_t numEvents);
-	~InputEventCircularReader();
-	ssize_t fill(int fd);
-	ssize_t readEvent(input_event const** events);
-	void next();
-};
-#endif  // ANDROID_INPUT_EVENT_READER_H
diff --git a/tilt/SensorBase.cpp b/tilt/SensorBase.cpp
deleted file mode 100644
index cba4831..0000000
--- a/tilt/SensorBase.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <fcntl.h>
-#include <errno.h>
-#include <math.h>
-#include <poll.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/select.h>
-#include <cutils/log.h>
-#include <linux/input.h>
-#include "SensorBase.h"
-
-
-SensorBase::SensorBase(const char* dev_name,
-			const char* data_name) : dev_name(dev_name),
-			data_name(data_name),
-			dev_fd(-1),
-			data_fd(-1)
-{
-	/* FUNC_LOG; */
-	ALOGV("%s(): dev_name=%s, data_name=%s ", __func__, dev_name, data_name);
-
-	if (data_name)
-		data_fd = openInput(data_name);
-
-}
-
-SensorBase::~SensorBase() {
-	FUNC_LOG;
-	if (data_fd >= 0)
-		close(data_fd);
-
-	if (dev_fd >= 0)
-		close(dev_fd);
-
-}
-
-int SensorBase::open_device() {
-	FUNC_LOG;
-	if (dev_fd<0 && dev_name) {
-		dev_fd = open(dev_name, O_RDONLY);
-		LOGE_IF(dev_fd<0, "Couldn't open %s (%s)", dev_name, strerror(errno));
-	}
-	return 0;
-}
-
-int SensorBase::close_device() {
-	FUNC_LOG;
-	if (dev_fd >= 0) {
-		close(dev_fd);
-		dev_fd = -1;
-	}
-	return 0;
-}
-
-int SensorBase::getFd() const {
-	FUNC_LOG;
-	if (!data_name)
-		return dev_fd;
-
-	return data_fd;
-}
-
-int SensorBase::setDelay(int32_t handle, int64_t ns) {
-	FUNC_LOG;
-	return 0;
-}
-
-bool SensorBase::hasPendingEvents() const {
-	FUNC_LOG;
-	return false;
-}
-
-int64_t SensorBase::getTimestamp() {
-	FUNC_LOG;
-	struct timespec t;
-	t.tv_sec = t.tv_nsec = 0;
-	clock_gettime(CLOCK_MONOTONIC, &t);
-	return int64_t(t.tv_sec) * 1000000000LL + t.tv_nsec;
-}
-
-int SensorBase::openInput(const char* inputName) {
-	FUNC_LOG;
-	int fd = -1;
-	const char *dirname = "/dev/input";
-	char devname[PATH_MAX];
-	char *filename;
-	DIR *dir;
-	struct dirent *de;
-	dir = opendir(dirname);
-	if(dir == NULL)
-		return -1;
-	strcpy(devname, dirname);
-	filename = devname + strlen(devname);
-	*filename++ = '/';
-	while((de = readdir(dir))) {
-		if(de->d_name[0] == '.' &&
-				(de->d_name[1] == '\0' ||
-				(de->d_name[1] == '.' && de->d_name[2] == '\0')))
-			continue;
-		strcpy(filename, de->d_name);
-		fd = open(devname, O_RDONLY);
-		LOGV_IF(EXTRA_VERBOSE, "path open %s", devname);
-		LOGI("path open %s", devname);
-		if (fd >= 0) {
-			char name[80];
-			if (ioctl(fd, EVIOCGNAME(sizeof(name) - 1), &name) < 1)
-				name[0] = '\0';
-
-			LOGV_IF(EXTRA_VERBOSE, "name read %s", name);
-			if (!strcmp(name, inputName)) {
-				strcpy(input_name, filename);
-				break;
-			} else {
-				close(fd);
-				fd = -1;
-			}
-		}
-	}
-	closedir(dir);
-	LOGE_IF(fd < 0, "couldn't find '%s' input device", inputName);
-	return fd;
-}
-
-int SensorBase::enable(int32_t handle, int enabled)
-{
-	FUNC_LOG;
-	return 0;
-}
-
-int SensorBase::isActivated(int /* handle */)
-{
-	FUNC_LOG;
-	return 0;
-}
-
-#ifdef HAL_VERSION_GT_1_0
-int SensorBase::batch(int handle, int flags, int64_t period_ns, int64_t timeout)
-{
-	FUNC_LOG;
-	return 0;
-}
-#endif
diff --git a/tilt/SensorBase.h b/tilt/SensorBase.h
deleted file mode 100644
index 7c2913c..0000000
--- a/tilt/SensorBase.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-* Copyright (C) 2015 Intel Corp
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#ifndef ANDROID_SENSOR_BASE_H
-#define ANDROID_SENSOR_BASE_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#if ANDROID_VERSION >= 5
-/* #warning "build for Wear" */
-#define LOGV_IF ALOGV_IF
-#define LOGE_IF ALOGE_IF
-#define LOGI_IF ALOGI_IF
-#define LOGI    ALOGI
-#define LOGE    ALOGE
-#define LOGV    ALOGV
-#define LOGW    ALOGW
-#else
-#warning "build for ICS or earlier version"
-#endif
-
-/* Log enablers, each of these independent */
-
-/* TODO: clear all logging below on production build, keep it during integration */
-#define PROCESS_VERBOSE (1) /* process log messages */
-#define EXTRA_VERBOSE   (1) /* verbose log messages */
-#define SYSFS_VERBOSE   (1) /* log sysfs interactions as cat/echo for repro
-purpose on a shell */
-#define FUNC_ENTRY      (1) /* log entry in all one-time functions */
-
-/* Note that enabling this logs may affect performance */
-#define HANDLER_ENTRY   (1) /* log entry in all handler functions */
-#define ENG_VERBOSE     (1) /* log some a lot more info about the internals */
-#define INPUT_DATA      (1) /* log the data input from the events */
-#define HANDLER_DATA    (1) /* log the data fetched from the handlers */
-
-#define FUNC_LOG \
-	LOGV("%s (hardware/intel/sensors/tilt)", __PRETTY_FUNCTION__)
-#define VFUNC_LOG \
-	LOGV_IF(FUNC_ENTRY, "Entering function '%s' (hardware/intel/sensors/tilt)", __PRETTY_FUNCTION__)
-#define VHANDLER_LOG \
-	LOGV_IF(HANDLER_ENTRY, "Entering handler '%s' (hardware/intel/sensors/tilt)", __PRETTY_FUNCTION__)
-#define CALL_MEMBER_FN(pobject, ptrToMember) ((pobject)->*(ptrToMember))
-
-#define MAX_SYSFS_NAME_LEN  (100)
-#define IIO_BUFFER_LENGTH   (480)
-
-
-struct sensors_event_t;
-
-class SensorBase {
-protected:
-	const char *dev_name;
-	const char *data_name;
-	char input_name[PATH_MAX];
-	int dev_fd;
-	int data_fd;
-
-	int openInput(const char* inputName);
-	static int64_t getTimestamp();
-	static int64_t timevalToNano(timeval const& t) {
-		return t.tv_sec * 1000000000LL + t.tv_usec * 1000;
-	}
-
-	int open_device();
-	int close_device();
-
-public:
-	SensorBase(const char* dev_name, const char* data_name);
-	virtual ~SensorBase();
-	virtual int readEvents(sensors_event_t* data, int count) = 0;
-	virtual bool hasPendingEvents() const;
-	virtual int getFd() const;
-	virtual int setDelay(int32_t handle, int64_t ns);
-	virtual int enable(int32_t handle, int enabled);
-	virtual int isActivated(int handle);
-#ifdef HAL_VERSION_GT_1_0
-	virtual int batch(int handle, int flags, int64_t period_ns, int64_t timeout);
-#endif
-};
-
-#endif  // ANDROID_SENSOR_BASE_H
diff --git a/tilt/TiltSensor.cpp b/tilt/TiltSensor.cpp
deleted file mode 100644
index 710882b..0000000
--- a/tilt/TiltSensor.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fcntl.h>
-#include <errno.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <poll.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/select.h>
-#include <cutils/log.h>
-#include <cutils/properties.h>
-
-#include "TiltSensor.h"
-
-TiltSensor::TiltSensor()
-    : SensorBase(NULL, "lis3dsh_acc"),
-      mEnabled(0),
-      mInputReader(4)
-{
-    mPendingEvent.version = sizeof(sensors_event_t);
-    mPendingEvent.sensor = ID_T;
-    mPendingEvent.type = SENSOR_TYPE_WRIST_TILT_GESTURE;
-    memset(mPendingEvent.data, 0, sizeof(mPendingEvent.data));
-}
-
-TiltSensor::~TiltSensor() {
-    if (mEnabled) {
-        enable(0, 0);
-    }
-}
-
-int TiltSensor::enable(int32_t /* handle */, int en)
-{
-	int ret = 0;
-	int flags = en ? 1 : 0;
-	char sysfs_path[SYSFS_MAX_PATH_LEN];
-
-	if (flags != mEnabled) {
-		int fd;
-		char buf[2];
-
-		snprintf(sysfs_path, SYSFS_MAX_PATH_LEN, "%s/%s", INPUT_SYSFS_BASE, ENABLE_DEVICE);
-		fd = open(sysfs_path, O_RDWR);
-		if (fd > 0) {
-			buf[1] = 0;
-			if (flags)
-				buf[0] = '1';
-			else
-				buf[0] = '0';
-			write(fd, buf, sizeof(buf));
-			close(fd);
-		} else {
-			ret = -1;
-			goto out;
-		}
-
-		snprintf(sysfs_path, SYSFS_MAX_PATH_LEN, "%s/%s", INPUT_SYSFS_BASE, ENABLE_INTERRUPT_OUTPUT);
-		fd = open(sysfs_path, O_RDWR);
-		if (fd > 0) {
-			buf[1] = 0;
-			if (flags)
-				buf[0] = '2';	/* 3: enable int1 and int2; 2: enable int1; 1: enable int2; 0: disbale */
-			else
-				buf[0] = '0';
-			write(fd, buf, sizeof(buf));
-			close(fd);
-		} else {
-			ret = -1;
-			goto out;
-		}
-
-		snprintf(sysfs_path, SYSFS_MAX_PATH_LEN, "%s/%s", INPUT_SYSFS_BASE, ENABLE_STATE_PROG);
-		fd = open(sysfs_path, O_RDWR);
-		if(fd > 0) {
-			buf[1] = 0;
-			if (flags)
-				buf[0] = '2';	/* 3: enable SM1 and SM2; 2: enable SM1; 1: enable SM2; 0: disbale */
-			else
-				buf[0] = '0';
-			write(fd, buf, sizeof(buf));
-			close(fd);
-			mEnabled = flags;
-		} else {
-			ret = -1;
-		}
-	}
-out:
-	return ret;
-}
-
-int TiltSensor::isActivated(int /* handle */)
-{
-	return mEnabled;
-}
-
-int TiltSensor::readEvents(sensors_event_t* data, int count)
-{
-	if (count < 1)
-		return -EINVAL;
-
-	ssize_t n = mInputReader.fill(data_fd);
-	if (n < 0)
-		return n;
-
-	int numEventReceived = 0;
-	input_event const* event;
-
-	while (count && mInputReader.readEvent(&event)) {
-		int type = event->type;
-		if (type == EV_MSC) {
-			mPendingEvent.data[0] = 1.0f;
-			/*mPendingEvent.data[event->code] = event->value;*/
-		} else if (type == EV_SYN) {
-			mPendingEvent.timestamp = timevalToNano(event->time);
-			if (mEnabled) {
-				*data++ = mPendingEvent;
-				count--;
-				numEventReceived++;
-			}
-		} else {
-            ALOGE("TiltSensor: unknown event (type=%d, code=%d)",
-							type, event->code);
-		}
-		mInputReader.next();
-	}
-
-	return numEventReceived;
-}
diff --git a/tilt/TiltSensor.h b/tilt/TiltSensor.h
deleted file mode 100644
index 707ba8b..0000000
--- a/tilt/TiltSensor.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_TILT_SENSOR_H
-#define ANDROID_TILT_SENSOR_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include "sensors.h"
-#include "SensorBase.h"
-#include "InputEventReader.h"
-
-#define SYSFS_MAX_PATH_LEN	64
-#define INPUT_SYSFS_BASE	"/sys/class/i2c-adapter/i2c-4/4-001e"
-#define POLL_PERIOD_MS		"poll_period_ms"
-#define RANGE				"range"
-#define ENABLE_DEVICE		"enable_device"
-#define ENABLE_INTERRUPT_OUTPUT	"enable_interrupt_output"
-#define ENABLE_STATE_PROG	"enable_state_prog"
-#ifdef TILT_DEBUG
-#define REG_VALUE			"reg_value"
-#define REG_ADDR			"reg_addr"
-#endif
-
-
-struct input_event;
-
-class TiltSensor : public SensorBase {
-public:
-    TiltSensor();
-    virtual ~TiltSensor();
-
-    virtual int readEvents(sensors_event_t* data, int count);
-    virtual int enable(int32_t handle, int enabled);
-    virtual int isActivated(int handle);
-
-private:
-    int mEnabled;
-    InputEventCircularReader mInputReader;
-    sensors_event_t mPendingEvent;
-};
-#endif  // ANDROID_TILT_SENSOR_H
diff --git a/tilt/sensors.cpp b/tilt/sensors.cpp
deleted file mode 100644
index 0374cd0..0000000
--- a/tilt/sensors.cpp
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <hardware/sensors.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <dirent.h>
-#include <math.h>
-#include <poll.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <string.h>
-#include <linux/input.h>
-#include <utils/Atomic.h>
-#include <utils/Log.h>
-#include "sensors.h"
-#include "TiltSensor.h"
-
-#define DELAY_OUT_TIME          0x7FFFFFFF
-#define LIGHT_SENSOR_POLLTIME   2000000000
-
-#define SENSORS_LIGHT_HANDLE    (ID_L)
-#define SENSORS_TILT_HANDLE     (ID_T)
-
-
-/* The SENSORS Module */
-static struct sensor_t sSensorList[] = {
-	{ "TILT sensor",
-	  "STMicroelectronics",
-	  1, SENSORS_TILT_HANDLE,
-	  SENSOR_TYPE_WRIST_TILT_GESTURE, 1.0f, 1.0f, 1.0f, 0, 0, 0,
-	#ifdef ANDROID_L
-	  SENSOR_STRING_TYPE_WRIST_TILT_GESTURE, NULL, 0, SENSOR_FLAG_SPECIAL_REPORTING_MODE | SENSOR_FLAG_WAKE_UP,
-	#else
-	  NULL, NULL, 0, 0,
-	#endif
-	  { } },
-};
-
-static int open_sensors(const struct hw_module_t* module, const char* id,
-			struct hw_device_t** device);
-
-
-
-static int sensors__get_sensors_list(struct sensors_module_t* module,
-			struct sensor_t const** list)
-{
-	*list = sSensorList;
-	return ARRAY_SIZE(sSensorList);
-}
-
-static struct hw_module_methods_t sensors_module_methods = {
-	open: open_sensors
-};
-
-struct sensors_module_t HAL_MODULE_INFO_SYM = {
-	common: {
-		tag: HARDWARE_MODULE_TAG,
-		version_major: 1,
-		version_minor: 0,
-		id: SENSORS_HARDWARE_MODULE_ID,
-		name: "Intel MVN Sensor module",
-		author: "Intel MVN Company",
-		methods: &sensors_module_methods,
-		dso: 0,
-		reserved: {},
-	},
-	get_sensors_list: sensors__get_sensors_list,
-};
-
-struct sensors_poll_context_t {
-#ifdef HAL_VERSION_GE_1_0
-	struct sensors_poll_device_1 device; /* must be first */
-#else
-	struct sensors_poll_device_t device; /* must be first */
-#endif
-	sensors_poll_context_t();
-	~sensors_poll_context_t();
-	int activate(int handle, int enabled);
-	int setDelay(int handle, int64_t ns);
-#ifdef HAL_VERSION_GT_1_0
-	int batch(int handle, int flags, int64_t period_ns, int64_t timeout);
-	int flush(int handle);
-#endif
-	int pollEvents(sensors_event_t* data, int count);
-	bool getInitialized() { return mInitialized; };
-
-private:
-	bool mInitialized;
-
-	enum {
-		TILT = 0,
-		numSensorDrivers,       /* wake pipe goes here */
-		flushPipe,              /* flush pipe goes here */
-		numFds,
-	};
-
-	static const size_t wake = numFds - 2;
-	static const char WAKE_MESSAGE = 'W';
-	struct pollfd mPollFds[numFds];
-	int mWritePipeFd;
-	int mFlushWritePipeFd;
-	SensorBase* mSensors[numSensorDrivers];
-
-	int handleToDriver(int handle) const {
-		switch (handle) {
-		case ID_T:
-			return TILT;
-		}
-		return -EINVAL;
-	}
-};
-
-
-
-sensors_poll_context_t::sensors_poll_context_t()
-{
-	FUNC_LOG;
-	mInitialized = false;
-	/* Must clean this up early or else the destructor will make a mess */
-	memset(mSensors, 0, sizeof(mSensors));
-
-	mSensors[TILT] = new TiltSensor();
-	mPollFds[TILT].fd = mSensors[TILT]->getFd();
-	mPollFds[TILT].events = POLLIN;
-	mPollFds[TILT].revents = 0;
-
-	int wakeFds[2];
-	int result = pipe(wakeFds);
-	ALOGE_IF(result<0, "error creating wake pipe (%s)", strerror(errno));
-	result = fcntl(wakeFds[0], F_SETFL, O_NONBLOCK);
-	ALOGE_IF(result<0, "error setting wakeFds[0] access mode (%s)", strerror(errno));
-	result = fcntl(wakeFds[1], F_SETFL, O_NONBLOCK);
-	ALOGE_IF(result<0, "error setting wakeFds[1] access mode (%s)", strerror(errno));
-	mWritePipeFd = wakeFds[1];
-
-	mPollFds[wake].fd = wakeFds[0];
-	mPollFds[wake].events = POLLIN;
-	mPollFds[wake].revents = 0;
-
-	int flushFds[2];
-	result = pipe(flushFds);
-	ALOGE_IF(result<0, "error creating flush pipe (%s)", strerror(errno));
-	result = fcntl(flushFds[0], F_SETFL, O_NONBLOCK);
-	ALOGE_IF(result<0, "error setting flushFds[0] access mode (%s)", strerror(errno));
-	result = fcntl(flushFds[1], F_SETFL, O_NONBLOCK);
-	ALOGE_IF(result<0, "error setting flushFds[1] access mode (%s)", strerror(errno));
-	mFlushWritePipeFd = flushFds[1];
-
-	mPollFds[flushPipe].fd = flushFds[0];
-	mPollFds[flushPipe].events = POLLIN;
-	mPollFds[flushPipe].revents = 0;
-	mInitialized = true;
-}
-
-sensors_poll_context_t::~sensors_poll_context_t()
-{
-	FUNC_LOG;
-	for (int i=0 ; i<numSensorDrivers ; i++)
-		delete mSensors[i];
-
-	close(mPollFds[wake].fd);
-	close(mWritePipeFd);
-	close(mPollFds[flushPipe].fd);
-	close(mFlushWritePipeFd);
-	mInitialized = false;
-}
-
-int sensors_poll_context_t::activate(int handle, int enabled)
-{
-	FUNC_LOG;
-	if (!mInitialized)
-		return -EINVAL;
-
-	int index = handleToDriver(handle);
-	if (index < 0)
-		return index;
-	int err =  mSensors[index]->enable(handle, enabled);
-	if (!err) {
-		const char wakeMessage(WAKE_MESSAGE);
-		int result = write(mWritePipeFd, &wakeMessage, 1);
-		ALOGE_IF(result<0, "error sending wake message (%s)", strerror(errno));
-	}
-	return err;
-}
-
-int sensors_poll_context_t::setDelay(int handle, int64_t ns)
-{
-	FUNC_LOG;
-	int index = handleToDriver(handle);
-	if (index < 0)
-		return index;
-
-	return mSensors[index]->setDelay(handle, ns);
-}
-
-#ifdef HAL_VERSION_GT_1_0
-int sensors_poll_context_t::batch(int handle, int flags, int64_t period_ns, int64_t timeout)
-{
-	FUNC_LOG;
-	int index = handleToDriver(handle);
-	if (index < 0)
-		return index;
-
-	return mSensors[index]->batch(handle, flags, period_ns, timeout);
-}
-
-int sensors_poll_context_t::flush(int handle)
-{
-	FUNC_LOG;
-	int result;
-	sensors_event_t flush_event_data;
-
-	int index = handleToDriver(handle);
-	if (index < 0) return index;
-
-	result = mSensors[index]->isActivated(handle);
-	if (!result)
-		return -EINVAL;
-
-	flush_event_data.sensor = 0;
-	flush_event_data.timestamp = 0;
-	flush_event_data.meta_data.sensor = handle;
-	flush_event_data.meta_data.what = META_DATA_FLUSH_COMPLETE;
-	flush_event_data.type = SENSOR_TYPE_META_DATA;
-	flush_event_data.version = META_DATA_VERSION;
-
-	result = write(mFlushWritePipeFd, &flush_event_data, sizeof(sensors_event_t));
-	ALOGE_IF(result<0, "error sending flush event data (%s)", strerror(errno));
-
-	return (result >= 0 ? 0 : result);
-}
-
-#endif
-
-int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
-{
-	FUNC_LOG;
-	int nbEvents = 0;
-	int n = 0;
-
-	do {
-		for (int i=0 ; count && i<numSensorDrivers; i++) {
-			SensorBase* const sensor(mSensors[i]);
-			/* See if we have some pending events from the last poll() */
-			if ((mPollFds[i].revents & POLLIN) || (sensor->hasPendingEvents())) {
-				int nb = sensor->readEvents(data, count);
-
-				/* no more data for this sensor */
-				if (nb < count)
-					mPollFds[i].revents = 0;
-
-				count -= nb;
-				nbEvents += nb;
-				data += nb;
-			}
-		}
-
-		/* flush event data */
-		if (count) {
-			if (mPollFds[flushPipe].revents & POLLIN) {
-				int nb = read(mPollFds[flushPipe].fd, data, count * sizeof(sensors_event_t));
-				if (nb < 0) {
-					ALOGE("error reading from flush pipe (%s)", strerror(errno));
-					return -errno;
-				}
-				nb = nb/sizeof(sensors_event_t);
-				mPollFds[flushPipe].revents = 0;
-				count -= nb;
-				nbEvents += nb;
-				data += nb;
-			}
-		}
-
-
-		if (count) {
-			ALOGV("%s: start poll syscall to kernel", __func__);
-			n = poll(mPollFds, numFds, nbEvents ? 0 : -1);
-			if (n < 0) {
-				ALOGE("poll() failed (%s)", strerror(errno));
-				return -errno;
-			}
-			if (mPollFds[wake].revents & POLLIN) {
-				char msg;
-				int result = read(mPollFds[wake].fd, &msg, 1);
-				ALOGE_IF(result<0, "error reading from wake pipe (%s)", strerror(errno));
-				ALOGE_IF(msg != WAKE_MESSAGE, "unknown message on wake queue (0x%02x)", int(msg));
-				mPollFds[wake].revents = 0;
-			}
-		}
-		/* if we have events and space, go read them */
-	} while (n && count);
-
-	return nbEvents;
-}
-
-static int poll__close(struct hw_device_t *dev)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	if (ctx)
-		delete ctx;
-
-	return 0;
-}
-
-static int poll__activate(struct sensors_poll_device_t *dev,
-			int handle, int enabled)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	return ctx->activate(handle, enabled);
-}
-
-static int poll__setDelay(struct sensors_poll_device_t *dev,
-			int handle, int64_t ns)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	return ctx->setDelay(handle, ns);
-}
-
-#ifdef HAL_VERSION_GT_1_0
-static int poll__batch(struct sensors_poll_device_1 *dev,
-			int handle, int flags, int64_t period_ns, int64_t timeout)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	return ctx->batch(handle, flags, period_ns, timeout);
-}
-
-static int poll_flush(struct sensors_poll_device_1 *dev, int handle)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	return ctx->flush(handle);
-}
-#endif
-
-static int poll__poll(struct sensors_poll_device_t *dev,
-			sensors_event_t* data, int count)
-{
-	FUNC_LOG;
-	sensors_poll_context_t *ctx = (sensors_poll_context_t *)dev;
-	return ctx->pollEvents(data, count);
-}
-
-/* Open a new instance of a sensor device using name */
-static int open_sensors(const struct hw_module_t* module, const char* id,
-			struct hw_device_t** device)
-{
-	FUNC_LOG;
-	int status = -EINVAL;
-	sensors_poll_context_t *dev = new sensors_poll_context_t();
-
-	if (!dev->getInitialized()) {
-		ALOGE("Failed to open the sensors (%s)", id);
-		return status;
-	}
-#ifdef HAL_VERSION_GE_1_0
-	memset(&dev->device, 0, sizeof(sensors_poll_device_1));
-#else
-	memset(&dev->device, 0, sizeof(sensors_poll_device_t));
-#endif
-
-	dev->device.common.tag = HARDWARE_DEVICE_TAG;
-#ifdef ANDROID_L
-	dev->device.common.version  = SENSORS_DEVICE_API_VERSION_1_3;
-#endif
-#ifdef ANDROID_KK
-	dev->device.common.version  = SENSORS_DEVICE_API_VERSION_1_1;
-#endif
-#ifdef ANDROID_JBMR2
-	dev->device.common.version  = SENSORS_DEVICE_API_VERSION_1_0;
-#endif
-#ifdef ANDROID_JB
-	dev->device.common.version  = 0;
-#endif
-	dev->device.common.module   = const_cast<hw_module_t*>(module);
-	dev->device.common.close    = poll__close;
-	dev->device.activate        = poll__activate;
-	dev->device.setDelay        = poll__setDelay;
-#ifdef HAL_VERSION_GT_1_0
-	dev->device.batch           = poll__batch;
-	dev->device.flush           = poll_flush;
-#endif
-	dev->device.poll            = poll__poll;
-
-	*device = &dev->device.common;
-	status = 0;
-
-	return status;
-}
diff --git a/tilt/sensors.h b/tilt/sensors.h
deleted file mode 100644
index 869c9a7..0000000
--- a/tilt/sensors.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2015 Intel Corp
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_INTELNDG_SENSORS_H
-#define ANDROID_INTELNDG_SENSORS_H
-
-#include <stdint.h>
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include <linux/input.h>
-
-#include <hardware/hardware.h>
-#include <hardware/sensors.h>
-
-__BEGIN_DECLS
-
-/*****************************************************************************/
-
-#define ARRAY_SIZE(a)		(sizeof(a) / sizeof(a[0]))
-
-#define ID_INTELNDG_BASE	(0x1000)
-/* light sensor ID */
-#define ID_L				(ID_INTELNDG_BASE)
-/* tilt sensor ID */
-#define ID_T				(ID_L + 1)
-
-/*****************************************************************************/
-
-/*
- * The SENSORS Module
- */
-
-/*****************************************************************************/
-/* the GP2A is a binary proximity sensor that triggers around 5 cm on
- * this hardware */
-#define PROXIMITY_THRESHOLD_GP2A  	5.0f
-
-/* input event code for light sensor */
-#define EVENT_TYPE_LIGHT		MSC_RAW
-/*****************************************************************************/
-
-
-
-__END_DECLS
-
-#endif  /* ANDROID_INTELNDG_SENSORS_H */