Add basic change for v1453
Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/libql_lib_v2_rilv2/ql_gpio.c b/mbtk/libql_lib_v2_rilv2/ql_gpio.c
new file mode 100755
index 0000000..83149b2
--- /dev/null
+++ b/mbtk/libql_lib_v2_rilv2/ql_gpio.c
@@ -0,0 +1,129 @@
+#include "ql_gpio.h"
+#include "mbtk_gpio.h"
+#include "mbtk_log.h"
+#include "mbtk_type.h"
+
+#include <errno.h>
+
+int ql_gpio_init(ENUM_PINNAME pin_name,
+ ENUM_PIN_DIRECTION dir,
+ ENUM_PIN_LEVEL level,
+ ENUM_PIN_PULLSEL pull_sel
+ )
+{
+ if(pull_sel != PINPULLSEL_DISABLE)
+ {
+ LOGE("[ql_gpio_init] pull_sel fail.");
+ return RES_BAD_PARAMETER;
+ }
+
+ if(dir == PINDIRECTION_IN)
+ {
+ dir = MBTK_GPIO_DIRECT_IN;
+ }
+ else if(dir == PINDIRECTION_OUT)
+ {
+ dir = MBTK_GPIO_DIRECT_OUT;
+ }
+ else
+ {
+ dir = MBTK_GPIO_DIRECT_UNKNOWN;
+ LOGE("[ql_gpio_init] direction fail.");
+ return RES_BAD_PARAMETER;
+ }
+
+ if(level != PINLEVEL_LOW && level != PINLEVEL_HIGH)
+ {
+ LOGE("[ql_gpio_init] level fail.");
+ return RES_BAD_PARAMETER;
+ }
+
+ if(mbtk_gpio_export(pin_name))
+ {
+ LOGE("[ql_gpio_init]gpio_export fail.");
+ return RES_IO_ERROR;
+ }
+
+ if(mbtk_gpio_direct_set(pin_name, dir))
+ {
+ LOGE("[ql_gpio_init]gpio_direct_set fail.");
+ return RES_IO_ERROR;
+ }
+
+ if(mbtk_gpio_value_set_2(pin_name, level))
+ {
+ LOGE("[ql_gpio_init]gpio_value_set fail.");
+ return RES_IO_ERROR;
+ }
+
+ return RES_OK;
+}
+
+int ql_gpio_set_level(ENUM_PINNAME pin_name, ENUM_PIN_LEVEL level)
+{
+ if(level != PINLEVEL_LOW && level != PINLEVEL_HIGH)
+ {
+ LOGE("[ql_gpio_set_level] level fail.");
+ return RES_BAD_PARAMETER;
+ }
+
+ if(mbtk_gpio_value_set_2(pin_name, level) != 0)
+ {
+ LOGE("[ql_gpio_set_level]gpio_value_set fail.");
+ return RES_IO_ERROR;
+ }
+
+ return RES_OK;
+}
+
+int ql_gpio_get_level(ENUM_PINNAME pin_name)
+{
+ int ret;
+
+ ret = mbtk_gpio_value_get(pin_name);
+ if (ret == -1)
+ {
+ LOGE("[ql_gpio_set_level]gpio_value_set fail.");
+ return RES_IO_ERROR;
+ }
+
+ return ret;
+}
+
+int ql_gpio_set_direction(ENUM_PINNAME pin_name, ENUM_PIN_DIRECTION dir)
+{
+ if(dir == PINDIRECTION_IN)
+ {
+ dir = MBTK_GPIO_DIRECT_IN;
+ }
+ else if(dir == PINDIRECTION_OUT)
+ {
+ dir = MBTK_GPIO_DIRECT_OUT;
+ }
+ else
+ {
+ dir = MBTK_GPIO_DIRECT_UNKNOWN;
+ LOGE("[ql_gpio_init] direction fail.");
+ return RES_BAD_PARAMETER;
+ }
+
+ if(mbtk_gpio_direct_set(pin_name, dir))
+ {
+ LOGE("[ql_gpio_set_direction]gpio_direct_set fail.");
+ return RES_IO_ERROR;
+ }
+
+ return RES_OK;
+}
+
+int ql_gpio_uninit(ENUM_PINNAME pin_name)
+{
+ if(mbtk_gpio_unexport(pin_name))
+ {
+ LOGE("[ql_gpio_uninit]gpio_unexport fail.");
+ return RES_IO_ERROR;
+ }
+
+ return RES_OK;
+}
+