blob: c77fb2cbaef0e0cbe2788b6350f1670dc8fe7324 [file] [log] [blame]
jb.qi56c57ea2023-10-07 01:37:47 -07001#include <ctype.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <pthread.h>
6#include <sc_irq.h>
7
8#include "lynq-irq.h"
9#include "liblog/lynq_deflog.h"
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
jb.qi56c57ea2023-10-07 01:37:47 -070015
16/*****************************************
17* @brief:lynq_irq_install
18* @param count [IN]:2
19* @param sum [OUT]:NA
20* @return :success 0, failed other
21* @todo:NA
22* @see:NA
23* @warning:NA
24******************************************/
25
26int lynq_irq_install(int line, irq_handler irq_test_handler, int trig_type)
27{
28 int ret;
jb.qie8b744f2023-11-16 02:05:44 -080029 if(trig_type < 0)
30 {
31 return -1;
32 }
jb.qi56c57ea2023-10-07 01:37:47 -070033 ret = sc_irq_install(line, irq_test_handler, trig_type);
34 if (ret != 0)
35 {
36 LYINFLOG("do_install_irq failed, ret:%d\n", ret);
37 return ret;
38 }
39 return 0;
40}
41
42
43/*****************************************
44* @brief:lynq_irq_uninstall
45* @param count [IN]:2
46* @param sum [OUT]:NA
47* @return :success 0, failed other
48* @todo:NA
49* @see:NA
50* @warning:NA
51******************************************/
52
53int lynq_irq_uninstall(int line)
54{
55 int ret;
jb.qi56c57ea2023-10-07 01:37:47 -070056 ret = sc_irq_uninstall(line);
57 if (ret != 0)
58 {
59 LYINFLOG("unistall failed, ret:%d\n", ret);
60 return ret;
61 }
62 LYINFLOG("uninstall irq(%d) ok\n", line);
63 return 0;
64}
65
66
67/*****************************************
68* @brief:lynq_irq_set_type
69* @param count [IN]:2
70* @param sum [OUT]:NA
71* @return :success 0, failed other
72* @todo:NA
73* @see:NA
74* @warning:NA
75******************************************/
76int lynq_irq_set_type(int line, int trig_type)
77{
78 int ret;
jb.qie8b744f2023-11-16 02:05:44 -080079 if(trig_type < 0)
80 {
81 return -1;
82 }
jb.qi56c57ea2023-10-07 01:37:47 -070083 ret = sc_irq_set_type(line, trig_type);
jb.qi20861f02023-11-19 18:43:31 -080084 if (ret != 0)
jb.qi56c57ea2023-10-07 01:37:47 -070085 {
86 LYINFLOG("set_type failed, ret:%d\n", ret);
87 return ret;
88 }
89 return 0;
90
91}
92
jb.qie8b744f2023-11-16 02:05:44 -080093/*****************************************
94* @brief:lynq_irq_get_type
95* @param count [IN]:1
96* @param sum [OUT]:NA
97* @return :success >= 0, failed other
98* @todo:NA
99* @see:NA
100* @warning:NA
101******************************************/
102int lynq_irq_get_type(int line)
103{
104 int ret;
105 int trig_type;
106 ret = sc_irq_get_type(line, &trig_type);
107 if (ret != 0)
108 {
109 LYINFLOG("get_type failed, ret:%d\n", ret);
110 return ret;
111 }
112 LYINFLOG("get_type readback(%d)\n", trig_type);
113 return trig_type;
114}
115
jb.qi56c57ea2023-10-07 01:37:47 -0700116
117/*****************************************
118* @brief:lynq_irq_set_wake
119* @param count [IN]:2
120* @param sum [OUT]:NA
jb.qi20861f02023-11-19 18:43:31 -0800121* @return :success 0, failed other
jb.qi56c57ea2023-10-07 01:37:47 -0700122* @todo:NA
123* @see:NA
124* @warning:NA
125******************************************/
126int lynq_irq_set_wake(int line, int en)
127{
128 int ret;
jb.qi20861f02023-11-19 18:43:31 -0800129 if((en != 0) && (en != 1))
130 {
131 LYINFLOG("wake_state is not 0 or 1\n");
132 return -1;
133 }
jb.qi56c57ea2023-10-07 01:37:47 -0700134 ret = sc_irq_set_wake(line, en);
jb.qi20861f02023-11-19 18:43:31 -0800135 if (ret != 0)
jb.qi56c57ea2023-10-07 01:37:47 -0700136 {
137 LYINFLOG("set_wake failed, ret:%d\n", ret);
138 return ret;
139 }
140 return 0;
141}
142
143/*****************************************
144* @brief:lynq_irq_get_wake
145* @param count [IN]:1
146* @param sum [OUT]:NA
147* @return :success >= 0, failed other
148* @todo:NA
149* @see:NA
150* @warning:NA
151******************************************/
152int lynq_irq_get_wake(int line)
153{
154 int ret;
155 int en;
jb.qi56c57ea2023-10-07 01:37:47 -0700156 ret = sc_irq_get_wake(line, &en);
157 if (ret != 0)
158 {
159 LYINFLOG("get_wake failed, ret:%d\n", ret);
160 return ret;
161 }
162 LYINFLOG("get_wake readback(%d)\n", en);
163 return en;
164}
165
166
167DEFINE_LYNQ_LIB_LOG(LYNQ_IRQ)
168
169#ifdef __cplusplus
170}
171#endif
172
173
174