common_library: gettid is multiple declaration in cl_error
[staging/basesystem.git] / video_in_hal / stub / memory_gpio_access_library / client / include / stub / el_gpio.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file el_gpio.h
19  * @brief el_gpio function header file
20  */
21
22 #ifndef MEMORY_GPIO_ACCESS_LIBRARY_CLIENT_INCLUDE_NATIVE_SERVICE_EL_GPIO_H_
23 #define MEMORY_GPIO_ACCESS_LIBRARY_CLIENT_INCLUDE_NATIVE_SERVICE_EL_GPIO_H_
24
25 /** @addtogroup BaseSystem
26  *  @{
27  */
28 /** @addtogroup native_service
29  *  @ingroup BaseSystem
30  *  @{
31  */
32 /** @addtogroup memory_gpio_access_library
33  *  @ingroup native_service
34  *  @{
35  */
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 #include <stdbool.h>
41
42 /**
43  * \~english Definitions of the GPIO Control Symbol
44  */
45 enum {
46   EL_GPO_SUB_RST_N = 0 ,
47   EL_GPO_NAVI_DET,
48   EL_GPI_ILG_RST_N,
49   EL_GPI_GPS_INT,
50   EL_GPO_GPS_P_OFF,
51   EL_GPO_CP_RST_N,
52   EL_GPO_TP_RST_N,
53   EL_GPI_SEC_ST1,
54   EL_GPI_SEC_ST0,
55   EL_GPO__CWORD52__RST,
56   EL_GPI__CWORD32__INT,
57   EL_GPO__CWORD32__RST,
58   EL_GPO_XM_RST,
59   EL_GPO_NFC_RST,
60   EL_GPO_USB1_PWEN,
61   EL_GPI_USB1_OVC,
62   EL_GPO__CWORD52__VUP,
63   EL_GPO_WL_EN,
64   EL_GPO_BT_EN,
65   EL_GPO_AVB_RST_N,
66   EL_GPO_SEC_RST_N,
67   EL_SPI_NAVI_REQ,
68   EL_SPI_NAVI_RDY,
69   EL_GPI_USB0_QVC,
70   EL_GPO_USB0_PWE,
71   EL_GPO_GVIFTX1_RST_N,
72   EL_GPO_GVIFTX0_RST_N,
73   EL_GPO_EMMC_ON_N,
74   EL_SPI_GVIF_D_UCS,
75   EL_GPO__CWORD65__RST_N,
76   EL_GPO_GVIFRX_RST_N,
77   EL_GPI_IOEX_INT,
78   EL_GPO_FBRQ,
79   EL_GPO_IOEX_RST_N,
80   EL_GPI_GVIFTX1_GPIO3,
81   EL_GPI_DARC_INT,
82   EL_GPI_GVIFTX0_GPIO3,
83   EL_GPI_GVIF_REQ_INT,
84   EL_GPI_ACC_DET_OUT,
85   EL_GPI_GVIFRX_GPIO3,
86   EL_GPO_DTCP_RST_N,
87   EL_NAVI_NMI_N,
88   EL_GPI_SDPCHK,
89   EL_GPO_XM_SHDN,
90   EL_GPI_GVIF_D_REQ_INT,
91   EL_SPI_GVIF_D_DCS,
92   EL_GPO_EMMC_PU_ON,
93   EL_GPIO_GVIFRX_GPIO0,
94   EL_GPI_GVIFRX_GPIO2,
95   EL_GPI_GVIFRX_LOS,
96   EL_GPIO_GVIFTX0_GPIO0,
97   EL_GPI_GVIFTX0_GPIO2,
98   EL_GPIO_GVIFTX1_GPIO0,
99   EL_GPI_GVIFTX1_GPIO2,
100   EL_GPO_USBHUB_RST,
101   EL_GPI__CWORD65__BOOT_ERR,
102   EL_GPO_CKECNT,
103   EL_GPO_SDPCLR,
104   EL_GPO_SENSOR_RST,
105   EL_GPI_SENSOR_INT,
106   EL_GPO_DAC_MUTE,
107   EL_GPO_DSRC_PON,
108   EL_GPI_2PULSE_REV,
109   EL_GPI_ILL_DET,
110   EL_GPI_DAB_DET,
111   EL_GPI_FAN_DET,
112
113   EL_GPO_SOC_DIAG_OUT,
114   EL_GPI_SOC_DIAG_IN,
115
116   EL_GPIO_SYMBOL_MAX,
117 };
118
119 /**
120  * \~english Rising level trigger
121  */
122 #define EL_GPIO_IRQ_TRIGGER_RISING    (0x01)
123
124 /**
125  * \~english Falling level trigger
126  */
127 #define EL_GPIO_IRQ_TRIGGER_FALLING   (0x02)
128
129 /**
130  * \~english High level trigger
131  */
132 #define EL_GPIO_IRQ_TRIGGER_HIGH    (0x04)
133
134 /**
135  * \~english Low level trigger
136  */
137 #define EL_GPIO_IRQ_TRIGGER_LOW     (0x08)
138
139 /**
140  * \~english Trigger mask
141  */
142 #define EL_GPIO_IRQ_TRIGGER_MASK    (EL_GPIO_IRQ_TRIGGER_RISING |        \
143                                      EL_GPIO_IRQ_TRIGGER_FALLING |       \
144                                      EL_GPIO_IRQ_TRIGGER_HIGH |          \
145                                      EL_GPIO_IRQ_TRIGGER_LOW)
146
147 /**
148  * \~english None timeout
149  */
150 #define EL_GPIO_IRQ_NO_TIMEOUT (-1)
151
152 /**\ingroup EL_Gpio_write
153 * \~english @par Brief
154 *        Write data to specified GPIO.
155 * \~english @param [in] symbol
156 *        int   - symbol(Definitions of the GPIO Control Symbol)
157 * \~english @param [in] value
158 *        bool  - setting value(0 or 1)
159 * \~english @par
160 *        Definitions of the GPIO Control Symbol
161 * \~english @code
162 *        enum {
163 *                   EL_GPO_SUB_RST_N = 0 ,
164 *                   EL_GPO_NAVI_DET,
165 *                   EL_GPI_ILG_RST_N,
166 *                   EL_GPI_GPS_INT,
167 *                   EL_GPO_GPS_P_OFF,
168 *                   EL_GPO_CP_RST_N,
169 *                   EL_GPO_TP_RST_N,
170 *                   EL_GPI_SEC_ST1,
171 *                   EL_GPI_SEC_ST0,
172 *                   EL_GPO__CWORD52__RST,
173 *                   EL_GPI__CWORD32__INT,
174 *                   EL_GPO__CWORD32__RST,
175 *                   EL_GPO_XM_RST,
176 *                   EL_GPO_NFC_RST,
177 *                   EL_GPO_USB1_PWEN,
178 *                   EL_GPI_USB1_OVC,
179 *                   EL_GPO__CWORD52__VUP,
180 *                   EL_GPO_WL_EN,
181 *                   EL_GPO_BT_EN,
182 *                   EL_GPO_AVB_RST_N,
183 *                   EL_GPO_SEC_RST_N,
184 *                   EL_SPI_NAVI_REQ,
185 *                   EL_SPI_NAVI_RDY,
186 *                   EL_GPI_USB0_QVC,
187 *                   EL_GPO_USB0_PWE,
188 *                   EL_GPO_GVIFTX1_RST_N,
189 *                   EL_GPO_GVIFTX0_RST_N,
190 *                   EL_GPO_EMMC_ON_N,
191 *                   EL_SPI_GVIF_D_UCS,
192 *                   EL_GPO__CWORD65__RST_N,
193 *                   EL_GPO_GVIFRX_RST_N,
194 *                   EL_GPI_IOEX_INT,
195 *                   EL_GPO_FBRQ,
196 *                   EL_GPO_IOEX_RST_N,
197 *                   EL_GPI_GVIFTX1_GPIO3,
198 *                   EL_GPI_DARC_INT,
199 *                   EL_GPI_GVIFTX0_GPIO3,
200 *                   EL_GPI_DARC_INT,
201 *                   EL_GPI_GVIFTX0_GPIO3,
202 *                   EL_GPI_GVIF_REQ_INT,
203 *                   EL_GPI_ACC_DET_OUT,
204 *                   EL_GPI_GVIFRX_GPIO3,
205 *                   EL_GPO_DTCP_RST_N,
206 *                   EL_NAVI_NMI_N,
207 *                   EL_GPI_SDPCHK,
208 *                   EL_GPO_XM_SHDN,
209 *                   EL_GPI_GVIF_D_REQ_INT,
210 *                   EL_SPI_GVIF_D_DCS,
211 *                   EL_GPO_EMMC_PU_ON,
212 *                   EL_GPIO_GVIFRX_GPIO0,
213 *                   EL_GPI_GVIFRX_GPIO2,
214 *                   EL_GPI_GVIFRX_LOS,
215 *                   EL_GPIO_GVIFTX0_GPIO0,
216 *                   EL_GPI_GVIFTX0_GPIO2,
217 *                   EL_GPIO_GVIFTX1_GPIO0,
218 *                   EL_GPI_GVIFTX1_GPIO2,
219 *                   EL_GPO_USBHUB_RST,
220 *                   EL_GPI__CWORD65__BOOT_ERR,
221 *                   EL_GPO_CKECNT,
222 *                   EL_GPO_SDPCLR,
223 *                   EL_GPO_SENSOR_RST,
224 *                   EL_GPI_SENSOR_INT,
225 *                   EL_GPO_DAC_MUTE,
226 *                   EL_GPO_DSRC_PON,
227 *                   EL_GPI_2PULSE_REV,
228 *                   EL_GPI_ILL_DET,
229 *                   EL_GPI_DAB_DET,
230 *                   EL_GPI_FAN_DET,
231 *                   EL_GPO_SOC_DIAG_OUT,
232 *                   EL_GPI_SOC_DIAG_IN,
233 *                   EL_GPIO_SYMBOL_MAX,
234 *        };
235 *            @endcode
236 * \~english @retval 0 Success
237 * \~english @retval -1 Error:Set errno according to error type when error occurs.
238 * \~english @par Prerequisite
239 *        - None.
240 * \~english @par Change of internal state
241 *        - Change of internal state according to the API does not occur.
242 * \~english @par Conditions of processing failure
243 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
244 *        - syscall error(open(), ioctl()). [-1]
245 * \~english @par Detail
246 *        - There is authority to access the specified GPIO, writing data is possiable only\n
247 *        when GPIO port is an output port.
248 * \~english @par Classification
249 *        Public
250 * \~english @par Type
251 *        Sync
252 * \~english @see EL_Gpio_read
253 */
254 int EL_Gpio_write(int symbol , bool value);  // NOLINT[readability/naming]
255
256 /** \ingroup EL_Gpio_read
257 * \~english @par Brief
258 *        Read data from specified GPIO.
259 * \~english @param [in] symbol
260 *        int   - symbol(Definitions of the GPIO Control Symbol)
261 * \~english @param [out] value
262 *        bool *  - setting value
263 * \~english @par
264 *        Definitions of the GPIO Control Symbol
265 * \~english @code
266 *        enum {
267 *                   EL_GPO_SUB_RST_N = 0 ,
268 *                   EL_GPO_NAVI_DET,
269 *                   EL_GPI_ILG_RST_N,
270 *                   EL_GPI_GPS_INT,
271 *                   EL_GPO_GPS_P_OFF,
272 *                   EL_GPO_CP_RST_N,
273 *                   EL_GPO_TP_RST_N,
274 *                   EL_GPI_SEC_ST1,
275 *                   EL_GPI_SEC_ST0,
276 *                   EL_GPO__CWORD52__RST,
277 *                   EL_GPI__CWORD32__INT,
278 *                   EL_GPO__CWORD32__RST,
279 *                   EL_GPO_XM_RST,
280 *                   EL_GPO_NFC_RST,
281 *                   EL_GPO_USB1_PWEN,
282 *                   EL_GPI_USB1_OVC,
283 *                   EL_GPO__CWORD52__VUP,
284 *                   EL_GPO_WL_EN,
285 *                   EL_GPO_BT_EN,
286 *                   EL_GPO_AVB_RST_N,
287 *                   EL_GPO_SEC_RST_N,
288 *                   EL_SPI_NAVI_REQ,
289 *                   EL_SPI_NAVI_RDY,
290 *                   EL_GPI_USB0_QVC,
291 *                   EL_GPO_USB0_PWE,
292 *                   EL_GPO_GVIFTX1_RST_N,
293 *                   EL_GPO_GVIFTX0_RST_N,
294 *                   EL_GPO_EMMC_ON_N,
295 *                   EL_SPI_GVIF_D_UCS,
296 *                   EL_GPO__CWORD65__RST_N,
297 *                   EL_GPO_GVIFRX_RST_N,
298 *                   EL_GPI_IOEX_INT,
299 *                   EL_GPO_FBRQ,
300 *                   EL_GPO_IOEX_RST_N,
301 *                   EL_GPI_GVIFTX1_GPIO3,
302 *                   EL_GPI_DARC_INT,
303 *                   EL_GPI_GVIFTX0_GPIO3,
304 *                   EL_GPI_DARC_INT,
305 *                   EL_GPI_GVIFTX0_GPIO3,
306 *                   EL_GPI_GVIF_REQ_INT,
307 *                   EL_GPI_ACC_DET_OUT,
308 *                   EL_GPI_GVIFRX_GPIO3,
309 *                   EL_GPO_DTCP_RST_N,
310 *                   EL_NAVI_NMI_N,
311 *                   EL_GPI_SDPCHK,
312 *                   EL_GPO_XM_SHDN,
313 *                   EL_GPI_GVIF_D_REQ_INT,
314 *                   EL_SPI_GVIF_D_DCS,
315 *                   EL_GPO_EMMC_PU_ON,
316 *                   EL_GPIO_GVIFRX_GPIO0,
317 *                   EL_GPI_GVIFRX_GPIO2,
318 *                   EL_GPI_GVIFRX_LOS,
319 *                   EL_GPIO_GVIFTX0_GPIO0,
320 *                   EL_GPI_GVIFTX0_GPIO2,
321 *                   EL_GPIO_GVIFTX1_GPIO0,
322 *                   EL_GPI_GVIFTX1_GPIO2,
323 *                   EL_GPO_USBHUB_RST,
324 *                   EL_GPI__CWORD65__BOOT_ERR,
325 *                   EL_GPO_CKECNT,
326 *                   EL_GPO_SDPCLR,
327 *                   EL_GPO_SENSOR_RST,
328 *                   EL_GPI_SENSOR_INT,
329 *                   EL_GPO_DAC_MUTE,
330 *                   EL_GPO_DSRC_PON,
331 *                   EL_GPI_2PULSE_REV,
332 *                   EL_GPI_ILL_DET,
333 *                   EL_GPI_DAB_DET,
334 *                   EL_GPI_FAN_DET,
335 *                   EL_GPO_SOC_DIAG_OUT,
336 *                   EL_GPI_SOC_DIAG_IN,
337 *                   EL_GPIO_SYMBOL_MAX,
338 *        };
339 *            @endcode
340 * \~english @retval 0 Success
341 * \~english @retval -1 Error:Set errno according to error type when error occurs.
342 * \~english @par Prerequisite
343 *        - None.
344 * \~english @par Change of internal state
345 *        - Change of internal state according to the API does not occur.
346 * \~english @par Conditions of processing failure
347 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
348 *        - syscall error(open(), ioctl()). [-1]
349 * \~english @par Detail
350 *        - Reading data is possiable when there is authority to access the specified GPIO.
351 * \~english @par Classification
352 *        Public
353 * \~english @par Type
354 *        Sync
355 * \~english @see EL_Gpio_write
356 */
357 int EL_Gpio_read(int symbol , bool *value);  // NOLINT[readability/naming]
358
359 /** \ingroup EL_Gpio_attachInterruptControl
360 * \~english @par Brief
361 *        Register interruption control of specified GPIO.
362 * \~english @param [in] symbol
363 *        int   - symbol(Definitions of the GPIO Control Symbol)
364 * \~english @param [in] irq_flags
365 *        unsigned long - Interruption control flag of GPIO.
366 * \~english @par
367 *        Definitions of the GPIO Control Symbol
368 * \~english @code
369 *        enum {
370 *                   EL_GPO_SUB_RST_N = 0 ,
371 *                   EL_GPO_NAVI_DET,
372 *                   EL_GPI_ILG_RST_N,
373 *                   EL_GPI_GPS_INT,
374 *                   EL_GPO_GPS_P_OFF,
375 *                   EL_GPO_CP_RST_N,
376 *                   EL_GPO_TP_RST_N,
377 *                   EL_GPI_SEC_ST1,
378 *                   EL_GPI_SEC_ST0,
379 *                   EL_GPO__CWORD52__RST,
380 *                   EL_GPI__CWORD32__INT,
381 *                   EL_GPO__CWORD32__RST,
382 *                   EL_GPO_XM_RST,
383 *                   EL_GPO_NFC_RST,
384 *                   EL_GPO_USB1_PWEN,
385 *                   EL_GPI_USB1_OVC,
386 *                   EL_GPO__CWORD52__VUP,
387 *                   EL_GPO_WL_EN,
388 *                   EL_GPO_BT_EN,
389 *                   EL_GPO_AVB_RST_N,
390 *                   EL_GPO_SEC_RST_N,
391 *                   EL_SPI_NAVI_REQ,
392 *                   EL_SPI_NAVI_RDY,
393 *                   EL_GPI_USB0_QVC,
394 *                   EL_GPO_USB0_PWE,
395 *                   EL_GPO_GVIFTX1_RST_N,
396 *                   EL_GPO_GVIFTX0_RST_N,
397 *                   EL_GPO_EMMC_ON_N,
398 *                   EL_SPI_GVIF_D_UCS,
399 *                   EL_GPO__CWORD65__RST_N,
400 *                   EL_GPO_GVIFRX_RST_N,
401 *                   EL_GPI_IOEX_INT,
402 *                   EL_GPO_FBRQ,
403 *                   EL_GPO_IOEX_RST_N,
404 *                   EL_GPI_GVIFTX1_GPIO3,
405 *                   EL_GPI_DARC_INT,
406 *                   EL_GPI_GVIFTX0_GPIO3,
407 *                   EL_GPI_DARC_INT,
408 *                   EL_GPI_GVIFTX0_GPIO3,
409 *                   EL_GPI_GVIF_REQ_INT,
410 *                   EL_GPI_ACC_DET_OUT,
411 *                   EL_GPI_GVIFRX_GPIO3,
412 *                   EL_GPO_DTCP_RST_N,
413 *                   EL_NAVI_NMI_N,
414 *                   EL_GPI_SDPCHK,
415 *                   EL_GPO_XM_SHDN,
416 *                   EL_GPI_GVIF_D_REQ_INT,
417 *                   EL_SPI_GVIF_D_DCS,
418 *                   EL_GPO_EMMC_PU_ON,
419 *                   EL_GPIO_GVIFRX_GPIO0,
420 *                   EL_GPI_GVIFRX_GPIO2,
421 *                   EL_GPI_GVIFRX_LOS,
422 *                   EL_GPIO_GVIFTX0_GPIO0,
423 *                   EL_GPI_GVIFTX0_GPIO2,
424 *                   EL_GPIO_GVIFTX1_GPIO0,
425 *                   EL_GPI_GVIFTX1_GPIO2,
426 *                   EL_GPO_USBHUB_RST,
427 *                   EL_GPI__CWORD65__BOOT_ERR,
428 *                   EL_GPO_CKECNT,
429 *                   EL_GPO_SDPCLR,
430 *                   EL_GPO_SENSOR_RST,
431 *                   EL_GPI_SENSOR_INT,
432 *                   EL_GPO_DAC_MUTE,
433 *                   EL_GPO_DSRC_PON,
434 *                   EL_GPI_2PULSE_REV,
435 *                   EL_GPI_ILL_DET,
436 *                   EL_GPI_DAB_DET,
437 *                   EL_GPI_FAN_DET,
438 *                   EL_GPO_SOC_DIAG_OUT,
439 *                   EL_GPI_SOC_DIAG_IN,
440 *                   EL_GPIO_SYMBOL_MAX,
441 *        };
442 *            @endcode
443 * \~english @par
444 *        Interruption control flag of GPIO
445 *        - EL_GPIO_IRQ_TRIGGER_RISING  :Rising level trigger
446 *        - EL_GPIO_IRQ_TRIGGER_FALLING :Falling level trigger
447 *        - EL_GPIO_IRQ_TRIGGER_HIGH  :High level trigger
448 *        - EL_GPIO_IRQ_TRIGGER_LOW :Low level trigger
449 * \~english @retval 0 Success
450 * \~english @retval -1 Error
451 * \~english @par Prerequisite
452 *        - None.
453 * \~english @par Change of internal state
454 *        - Change of internal state according to the API does not occur.
455 * \~english @par Conditions of processing failure
456 *        - Flag specified by irq_flags is not defined flag. [-1]
457 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
458 *        - syscall error(open(), ioctl()). [-1]
459 * \~english @par Detail
460 *        - Register interruption control of specified GPIO.
461 * \~english @par Classification
462 *        Public
463 * \~english @par Type
464 *        Sync
465 * \~english @see EL_Gpio_detachInterruptControl
466 */
467 int EL_Gpio_attachInterruptControl(int symbol , unsigned long irq_flags);  // NOLINT [readability/nolint]
468
469 /** \ingroup EL_Gpio_detachInterruptControl
470 * \~english @par Brief
471 *        Detach interruption control of specified GPIO.
472 * \~english @param [in] symbol
473 *        int   - symbol(Definitions of the GPIO Control Symbol)
474 * \~english @par
475 *        Definitions of the GPIO Control Symbol
476 * \~english @code
477 *        enum {
478 *                   EL_GPO_SUB_RST_N = 0 ,
479 *                   EL_GPO_NAVI_DET,
480 *                   EL_GPI_ILG_RST_N,
481 *                   EL_GPI_GPS_INT,
482 *                   EL_GPO_GPS_P_OFF,
483 *                   EL_GPO_CP_RST_N,
484 *                   EL_GPO_TP_RST_N,
485 *                   EL_GPI_SEC_ST1,
486 *                   EL_GPI_SEC_ST0,
487 *                   EL_GPO__CWORD52__RST,
488 *                   EL_GPI__CWORD32__INT,
489 *                   EL_GPO__CWORD32__RST,
490 *                   EL_GPO_XM_RST,
491 *                   EL_GPO_NFC_RST,
492 *                   EL_GPO_USB1_PWEN,
493 *                   EL_GPI_USB1_OVC,
494 *                   EL_GPO__CWORD52__VUP,
495 *                   EL_GPO_WL_EN,
496 *                   EL_GPO_BT_EN,
497 *                   EL_GPO_AVB_RST_N,
498 *                   EL_GPO_SEC_RST_N,
499 *                   EL_SPI_NAVI_REQ,
500 *                   EL_SPI_NAVI_RDY,
501 *                   EL_GPI_USB0_QVC,
502 *                   EL_GPO_USB0_PWE,
503 *                   EL_GPO_GVIFTX1_RST_N,
504 *                   EL_GPO_GVIFTX0_RST_N,
505 *                   EL_GPO_EMMC_ON_N,
506 *                   EL_SPI_GVIF_D_UCS,
507 *                   EL_GPO__CWORD65__RST_N,
508 *                   EL_GPO_GVIFRX_RST_N,
509 *                   EL_GPI_IOEX_INT,
510 *                   EL_GPO_FBRQ,
511 *                   EL_GPO_IOEX_RST_N,
512 *                   EL_GPI_GVIFTX1_GPIO3,
513 *                   EL_GPI_DARC_INT,
514 *                   EL_GPI_GVIFTX0_GPIO3,
515 *                   EL_GPI_DARC_INT,
516 *                   EL_GPI_GVIFTX0_GPIO3,
517 *                   EL_GPI_GVIF_REQ_INT,
518 *                   EL_GPI_ACC_DET_OUT,
519 *                   EL_GPI_GVIFRX_GPIO3,
520 *                   EL_GPO_DTCP_RST_N,
521 *                   EL_NAVI_NMI_N,
522 *                   EL_GPI_SDPCHK,
523 *                   EL_GPO_XM_SHDN,
524 *                   EL_GPI_GVIF_D_REQ_INT,
525 *                   EL_SPI_GVIF_D_DCS,
526 *                   EL_GPO_EMMC_PU_ON,
527 *                   EL_GPIO_GVIFRX_GPIO0,
528 *                   EL_GPI_GVIFRX_GPIO2,
529 *                   EL_GPI_GVIFRX_LOS,
530 *                   EL_GPIO_GVIFTX0_GPIO0,
531 *                   EL_GPI_GVIFTX0_GPIO2,
532 *                   EL_GPIO_GVIFTX1_GPIO0,
533 *                   EL_GPI_GVIFTX1_GPIO2,
534 *                   EL_GPO_USBHUB_RST,
535 *                   EL_GPI__CWORD65__BOOT_ERR,
536 *                   EL_GPO_CKECNT,
537 *                   EL_GPO_SDPCLR,
538 *                   EL_GPO_SENSOR_RST,
539 *                   EL_GPI_SENSOR_INT,
540 *                   EL_GPO_DAC_MUTE,
541 *                   EL_GPO_DSRC_PON,
542 *                   EL_GPI_2PULSE_REV,
543 *                   EL_GPI_ILL_DET,
544 *                   EL_GPI_DAB_DET,
545 *                   EL_GPI_FAN_DET,
546 *                   EL_GPO_SOC_DIAG_OUT,
547 *                   EL_GPI_SOC_DIAG_IN,
548 *                   EL_GPIO_SYMBOL_MAX,
549 *        };
550 *            @endcode
551 * \~english @retval 0 Success
552 * \~english @retval -1 Error
553 * \~english @par Prerequisite
554 *        - None.
555 * \~english @par Change of internal state
556 *        - Change of internal state according to the API does not occur.
557 * \~english @par Conditions of processing failure
558 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
559 *        - syscall error(open(), ioctl()). [-1]
560 * \~english @par Detail
561 *        - Detach interruption control of specified GPIO.
562 * \~english @par Classification
563 *        Public
564 * \~english @par Type
565 *        Sync
566 * \~english @see EL_Gpio_attachInterruptControl
567 */
568 int EL_Gpio_detachInterruptControl(int symbol);  // NOLINT[readability/naming]
569
570 /** \ingroup EL_Gpio_waitInterrupt
571 * \~english @par Brief
572 *        Waiting interruption of specified GPIO occured without timeout.
573 * \~english @param [in] symbol
574 *        int   - symbol(Definitions of the GPIO Control Symbol)
575 * \~english @par
576 *        Definitions of the GPIO Control Symbol
577 * \~english @code
578 *        enum {
579 *                   EL_GPO_SUB_RST_N = 0 ,
580 *                   EL_GPO_NAVI_DET,
581 *                   EL_GPI_ILG_RST_N,
582 *                   EL_GPI_GPS_INT,
583 *                   EL_GPO_GPS_P_OFF,
584 *                   EL_GPO_CP_RST_N,
585 *                   EL_GPO_TP_RST_N,
586 *                   EL_GPI_SEC_ST1,
587 *                   EL_GPI_SEC_ST0,
588 *                   EL_GPO__CWORD52__RST,
589 *                   EL_GPI__CWORD32__INT,
590 *                   EL_GPO__CWORD32__RST,
591 *                   EL_GPO_XM_RST,
592 *                   EL_GPO_NFC_RST,
593 *                   EL_GPO_USB1_PWEN,
594 *                   EL_GPI_USB1_OVC,
595 *                   EL_GPO__CWORD52__VUP,
596 *                   EL_GPO_WL_EN,
597 *                   EL_GPO_BT_EN,
598 *                   EL_GPO_AVB_RST_N,
599 *                   EL_GPO_SEC_RST_N,
600 *                   EL_SPI_NAVI_REQ,
601 *                   EL_SPI_NAVI_RDY,
602 *                   EL_GPI_USB0_QVC,
603 *                   EL_GPO_USB0_PWE,
604 *                   EL_GPO_GVIFTX1_RST_N,
605 *                   EL_GPO_GVIFTX0_RST_N,
606 *                   EL_GPO_EMMC_ON_N,
607 *                   EL_SPI_GVIF_D_UCS,
608 *                   EL_GPO__CWORD65__RST_N,
609 *                   EL_GPO_GVIFRX_RST_N,
610 *                   EL_GPI_IOEX_INT,
611 *                   EL_GPO_FBRQ,
612 *                   EL_GPO_IOEX_RST_N,
613 *                   EL_GPI_GVIFTX1_GPIO3,
614 *                   EL_GPI_DARC_INT,
615 *                   EL_GPI_GVIFTX0_GPIO3,
616 *                   EL_GPI_DARC_INT,
617 *                   EL_GPI_GVIFTX0_GPIO3,
618 *                   EL_GPI_GVIF_REQ_INT,
619 *                   EL_GPI_ACC_DET_OUT,
620 *                   EL_GPI_GVIFRX_GPIO3,
621 *                   EL_GPO_DTCP_RST_N,
622 *                   EL_NAVI_NMI_N,
623 *                   EL_GPI_SDPCHK,
624 *                   EL_GPO_XM_SHDN,
625 *                   EL_GPI_GVIF_D_REQ_INT,
626 *                   EL_SPI_GVIF_D_DCS,
627 *                   EL_GPO_EMMC_PU_ON,
628 *                   EL_GPIO_GVIFRX_GPIO0,
629 *                   EL_GPI_GVIFRX_GPIO2,
630 *                   EL_GPI_GVIFRX_LOS,
631 *                   EL_GPIO_GVIFTX0_GPIO0,
632 *                   EL_GPI_GVIFTX0_GPIO2,
633 *                   EL_GPIO_GVIFTX1_GPIO0,
634 *                   EL_GPI_GVIFTX1_GPIO2,
635 *                   EL_GPO_USBHUB_RST,
636 *                   EL_GPI__CWORD65__BOOT_ERR,
637 *                   EL_GPO_CKECNT,
638 *                   EL_GPO_SDPCLR,
639 *                   EL_GPO_SENSOR_RST,
640 *                   EL_GPI_SENSOR_INT,
641 *                   EL_GPO_DAC_MUTE,
642 *                   EL_GPO_DSRC_PON,
643 *                   EL_GPI_2PULSE_REV,
644 *                   EL_GPI_ILL_DET,
645 *                   EL_GPI_DAB_DET,
646 *                   EL_GPI_FAN_DET,
647 *                   EL_GPO_SOC_DIAG_OUT,
648 *                   EL_GPI_SOC_DIAG_IN,
649 *                   EL_GPIO_SYMBOL_MAX,
650 *        };
651 *            @endcode
652 * \~english @retval 0 Success
653 * \~english @retval -1 Error
654 * \~english @par Prerequisite
655 *        - Interruption of specified GPIO was registered by \ref EL_Gpio_attachInterruptControl.
656 * \~english @par Change of internal state
657 *        - Change of internal state according to the API does not occur.
658 * \~english @par Conditions of processing failure
659 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
660 *        - syscall error(open(), ioctl()). [-1]
661 * \~english @par Detail
662 *        - Waiting interruption of specified GPIO occured without timeout.
663 * \~english @par Classification
664 *        Public
665 * \~english @par Type
666 *        Sync
667 * \~english @see EL_Gpio_waitInterrupt_timeout
668 */
669 int EL_Gpio_waitInterrupt(int symbol);  // NOLINT[readability/naming]
670
671 /** \ingroup EL_Gpio_waitInterrupt_timeout
672 * \~english @par Brief
673 *        Waiting interruption of specified GPIO with timeout.
674 * \~english @param [in] symbol
675 *        int   - Symbol(Definitions of the GPIO Control Symbol)
676 * \~english @param [in] timeout
677 *        int   - Timeout of time(unit: jiffies)
678 * \~english @par
679 *        Definitions of the GPIO Control Symbol
680 * \~english @code
681 *        enum {
682 *                   EL_GPO_SUB_RST_N = 0 ,
683 *                   EL_GPO_NAVI_DET,
684 *                   EL_GPI_ILG_RST_N,
685 *                   EL_GPI_GPS_INT,
686 *                   EL_GPO_GPS_P_OFF,
687 *                   EL_GPO_CP_RST_N,
688 *                   EL_GPO_TP_RST_N,
689 *                   EL_GPI_SEC_ST1,
690 *                   EL_GPI_SEC_ST0,
691 *                   EL_GPO__CWORD52__RST,
692 *                   EL_GPI__CWORD32__INT,
693 *                   EL_GPO__CWORD32__RST,
694 *                   EL_GPO_XM_RST,
695 *                   EL_GPO_NFC_RST,
696 *                   EL_GPO_USB1_PWEN,
697 *                   EL_GPI_USB1_OVC,
698 *                   EL_GPO__CWORD52__VUP,
699 *                   EL_GPO_WL_EN,
700 *                   EL_GPO_BT_EN,
701 *                   EL_GPO_AVB_RST_N,
702 *                   EL_GPO_SEC_RST_N,
703 *                   EL_SPI_NAVI_REQ,
704 *                   EL_SPI_NAVI_RDY,
705 *                   EL_GPI_USB0_QVC,
706 *                   EL_GPO_USB0_PWE,
707 *                   EL_GPO_GVIFTX1_RST_N,
708 *                   EL_GPO_GVIFTX0_RST_N,
709 *                   EL_GPO_EMMC_ON_N,
710 *                   EL_SPI_GVIF_D_UCS,
711 *                   EL_GPO__CWORD65__RST_N,
712 *                   EL_GPO_GVIFRX_RST_N,
713 *                   EL_GPI_IOEX_INT,
714 *                   EL_GPO_FBRQ,
715 *                   EL_GPO_IOEX_RST_N,
716 *                   EL_GPI_GVIFTX1_GPIO3,
717 *                   EL_GPI_DARC_INT,
718 *                   EL_GPI_GVIFTX0_GPIO3,
719 *                   EL_GPI_DARC_INT,
720 *                   EL_GPI_GVIFTX0_GPIO3,
721 *                   EL_GPI_GVIF_REQ_INT,
722 *                   EL_GPI_ACC_DET_OUT,
723 *                   EL_GPI_GVIFRX_GPIO3,
724 *                   EL_GPO_DTCP_RST_N,
725 *                   EL_NAVI_NMI_N,
726 *                   EL_GPI_SDPCHK,
727 *                   EL_GPO_XM_SHDN,
728 *                   EL_GPI_GVIF_D_REQ_INT,
729 *                   EL_SPI_GVIF_D_DCS,
730 *                   EL_GPO_EMMC_PU_ON,
731 *                   EL_GPIO_GVIFRX_GPIO0,
732 *                   EL_GPI_GVIFRX_GPIO2,
733 *                   EL_GPI_GVIFRX_LOS,
734 *                   EL_GPIO_GVIFTX0_GPIO0,
735 *                   EL_GPI_GVIFTX0_GPIO2,
736 *                   EL_GPIO_GVIFTX1_GPIO0,
737 *                   EL_GPI_GVIFTX1_GPIO2,
738 *                   EL_GPO_USBHUB_RST,
739 *                   EL_GPI__CWORD65__BOOT_ERR,
740 *                   EL_GPO_CKECNT,
741 *                   EL_GPO_SDPCLR,
742 *                   EL_GPO_SENSOR_RST,
743 *                   EL_GPI_SENSOR_INT,
744 *                   EL_GPO_DAC_MUTE,
745 *                   EL_GPO_DSRC_PON,
746 *                   EL_GPI_2PULSE_REV,
747 *                   EL_GPI_ILL_DET,
748 *                   EL_GPI_DAB_DET,
749 *                   EL_GPI_FAN_DET,
750 *                   EL_GPO_SOC_DIAG_OUT,
751 *                   EL_GPI_SOC_DIAG_IN,
752 *                   EL_GPIO_SYMBOL_MAX,
753 *        };
754 *            @endcode
755 * \~english @retval 0 Success
756 * \~english @retval -1 Error
757 * \~english @par Prerequisite
758 *        - Interruption of specified GPIO was registered by \ref EL_Gpio_attachInterruptControl .
759 * \~english @par Change of internal state
760 *        - Change of internal state according to the API does not occur.
761 * \~english @par Conditions of processing failure
762 *        - The value of symbol is less than 0 or greater than EL_GPIO_SYMBOL_MAX-1. [-1]
763 *        - syscall error(open(), ioctl()). [-1]
764 * \~english @par Detail
765 *        - Waiting interruption of specified GPIO with timeout.
766 *        - If the value of timeout is not greater than 0, timeout will not happened.
767 * \~english @par Classification
768 *        Public
769 * \~english @par Type
770 *        Sync
771 * \~english @see none
772 */
773 int EL_Gpio_waitInterrupt_timeout(int symbol, int timeout);  // NOLINT[readability/naming]
774
775 /** \ingroup EL_Gpio_finalize
776 * \~english @par Brief
777 *        End processing.
778 * \~english @retval 0 Return 0
779 * \~english @par Prerequisite
780 *        - None.
781 * \~english @par Change of internal state
782 *        - Change of internal state according to the API does not occur.
783 * \~english @par Conditions of processing failure
784 *        - none
785 * \~english @par Detail
786 *        - Change IO-Expander device to reset status.
787 * \~english @par Classification
788 *        Public
789 * \~english @par Type
790 *        Sync
791 * \~english @see EL_Gpio_write, EL_Gpio_read
792 */
793 int EL_Gpio_finalize(void);  // NOLINT[readability/naming]
794
795 #ifdef __cplusplus
796 }
797 #endif  // __cplusplus
798
799 /** @}*/  // end of memory_gpio_access_library
800 /** @}*/  // end of native_service
801 /** @}*/  // end of BaseSystem
802 #endif  // MEMORY_GPIO_ACCESS_LIBRARY_CLIENT_INCLUDE_NATIVE_SERVICE_EL_GPIO_H_