1 /*
2  * Copyright (C) 2021 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _AOS_ADC_CSI_H
6 #define _AOS_ADC_CSI_H
7 
8 #include <aos/adc_core.h>
9 #include <drv/adc.h>
10 
11 typedef struct {
12     aos_adc_t aos_adc;  /* aos adc device */
13     csi_adc_t csi_adc; /* csi adc device */
14 } aos_adc_csi_t;
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /**
21  * Register an CSI ADC device
22  *
23  * @param[in]   adc      ADC ref to operate. The caller should allocate memory,
24  *                       init it and set id for the CSI ADC device.
25  *
26  * @return      0: on success; < 0: on failure
27  */
28 aos_status_t aos_adc_csi_register(aos_adc_csi_t *adc_csi);
29 
30 /**
31  * Unregister an CSI ADC device by id
32  *
33  * @param[in]   id      CSI ADC device id
34  *
35  * @return      0: on success; < 0: on failure
36  */
37 aos_status_t aos_adc_csi_unregister(uint32_t id);
38 
39 #ifdef __cplusplus
40 }
41 #endif
42 
43 #endif /* _AOS_ADC_CSI_H */
44