1 /*
2  * Copyright (c) 2006-2023, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2023-06-04     Chushicheng  first version
9  */
10 
11 #ifndef __DRV_ADC_H__
12 #define __DRV_ADC_H__
13 
14 #include <rtdevice.h>
15 #ifdef BSP_USING_ADC
16 
17 /* pico adc dirver class */
18 struct pico_adc
19 {
20     struct rt_adc_ops ops;
21     struct rt_adc_device pico_adc_device;
22 };
23 
24 /* pico config class */
25 struct pico_adc_config
26 {
27     rt_uint8_t pin;
28     rt_uint8_t channel;
29     const char *device_name;
30 };
31 
32 #ifdef BSP_USING_ADC0
33 #define ADC0_CONFIG                                      \
34     {                                                    \
35         .pin = 26,                                       \
36         .channel = 0,                                    \
37         .device_name = "adc0",                           \
38     }
39 #endif
40 #ifdef BSP_USING_ADC1
41 #define ADC1_CONFIG                                      \
42     {                                                    \
43         .pin = 27,                                       \
44         .channel = 1,                                    \
45         .device_name = "adc1",                           \
46     }
47 #endif
48 #ifdef BSP_USING_ADC2
49 #define ADC2_CONFIG                                      \
50     {                                                    \
51         .pin = 28,                                       \
52         .channel = 2,                                    \
53         .device_name = "adc2",                           \
54     }
55 #endif
56 
57 int rt_hw_adc_init(void);
58 
59 #endif /* BSP_USING_ADC */
60 #endif /* __DRV_ADC_H__ */
61