blob: c77fb2cbaef0e0cbe2788b6350f1670dc8fe7324 [file] [log] [blame]
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <sc_irq.h>
#include "lynq-irq.h"
#include "liblog/lynq_deflog.h"
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************
* @brief:lynq_irq_install
* @param count [IN]:2
* @param sum [OUT]:NA
* @return :success 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_install(int line, irq_handler irq_test_handler, int trig_type)
{
int ret;
if(trig_type < 0)
{
return -1;
}
ret = sc_irq_install(line, irq_test_handler, trig_type);
if (ret != 0)
{
LYINFLOG("do_install_irq failed, ret:%d\n", ret);
return ret;
}
return 0;
}
/*****************************************
* @brief:lynq_irq_uninstall
* @param count [IN]:2
* @param sum [OUT]:NA
* @return :success 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_uninstall(int line)
{
int ret;
ret = sc_irq_uninstall(line);
if (ret != 0)
{
LYINFLOG("unistall failed, ret:%d\n", ret);
return ret;
}
LYINFLOG("uninstall irq(%d) ok\n", line);
return 0;
}
/*****************************************
* @brief:lynq_irq_set_type
* @param count [IN]:2
* @param sum [OUT]:NA
* @return :success 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_set_type(int line, int trig_type)
{
int ret;
if(trig_type < 0)
{
return -1;
}
ret = sc_irq_set_type(line, trig_type);
if (ret != 0)
{
LYINFLOG("set_type failed, ret:%d\n", ret);
return ret;
}
return 0;
}
/*****************************************
* @brief:lynq_irq_get_type
* @param count [IN]:1
* @param sum [OUT]:NA
* @return :success >= 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_get_type(int line)
{
int ret;
int trig_type;
ret = sc_irq_get_type(line, &trig_type);
if (ret != 0)
{
LYINFLOG("get_type failed, ret:%d\n", ret);
return ret;
}
LYINFLOG("get_type readback(%d)\n", trig_type);
return trig_type;
}
/*****************************************
* @brief:lynq_irq_set_wake
* @param count [IN]:2
* @param sum [OUT]:NA
* @return :success 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_set_wake(int line, int en)
{
int ret;
if((en != 0) && (en != 1))
{
LYINFLOG("wake_state is not 0 or 1\n");
return -1;
}
ret = sc_irq_set_wake(line, en);
if (ret != 0)
{
LYINFLOG("set_wake failed, ret:%d\n", ret);
return ret;
}
return 0;
}
/*****************************************
* @brief:lynq_irq_get_wake
* @param count [IN]:1
* @param sum [OUT]:NA
* @return :success >= 0, failed other
* @todo:NA
* @see:NA
* @warning:NA
******************************************/
int lynq_irq_get_wake(int line)
{
int ret;
int en;
ret = sc_irq_get_wake(line, &en);
if (ret != 0)
{
LYINFLOG("get_wake failed, ret:%d\n", ret);
return ret;
}
LYINFLOG("get_wake readback(%d)\n", en);
return en;
}
DEFINE_LYNQ_LIB_LOG(LYNQ_IRQ)
#ifdef __cplusplus
}
#endif