1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2018-11-5      zylx         first version
9  */
10 
11 #ifndef __EXT_IO_H__
12 #define __EXT_IO_H__
13 
14 #include "rtthread.h"
15 /*
16     armfly STM32-V6 Development board Extend IO
17     D0  - GPRS_RERM_ON
18     D1  - GPRS_RESET
19     D2  - NRF24L01_CE
20     D3  - NRF905_TX_EN
21     D4  - NRF905_TRX_CE/VS1053_XDCS
22     D5  - NRF905_PWR_UP
23     D6  - ESP8266_G0
24     D7  - ESP8266_G2
25 
26     D8  - LED1
27     D9  - LED2
28     D10 - LED3
29     D11 - LED4
30     D12 - TP_NRST
31     D13 - AD7606_OS0
32     D14 - AD7606_OS1
33     D15 - AD7606_OS2
34 
35     GPIO can output 5V
36     D16  - Y50_0
37     D17  - Y50_1
38     D18  - Y50_2
39     D19  - Y50_3
40     D20  - Y50_4
41     D21  - Y50_5
42     D22  - Y50_6
43     D23  - Y50_7
44 
45     GPIO can output 3.3V
46     D24  - AD7606_RESET
47     D25  - AD7606_RAGE
48     D26  - Y33_2
49     D27  - Y33_3
50     D28  - Y33_4
51     D29  - Y33_5
52     D30  - Y33_6
53     D31  - Y33_7
54 */
55 
56 #ifndef GPIO_Pin_0
57     #define GPIO_Pin_0                 ((uint16_t)0x0001)  /* Pin 0 selected */
58     #define GPIO_Pin_1                 ((uint16_t)0x0002)  /* Pin 1 selected */
59     #define GPIO_Pin_2                 ((uint16_t)0x0004)  /* Pin 2 selected */
60     #define GPIO_Pin_3                 ((uint16_t)0x0008)  /* Pin 3 selected */
61     #define GPIO_Pin_4                 ((uint16_t)0x0010)  /* Pin 4 selected */
62     #define GPIO_Pin_5                 ((uint16_t)0x0020)  /* Pin 5 selected */
63     #define GPIO_Pin_6                 ((uint16_t)0x0040)  /* Pin 6 selected */
64     #define GPIO_Pin_7                 ((uint16_t)0x0080)  /* Pin 7 selected */
65     #define GPIO_Pin_8                 ((uint16_t)0x0100)  /* Pin 8 selected */
66     #define GPIO_Pin_9                 ((uint16_t)0x0200)  /* Pin 9 selected */
67     #define GPIO_Pin_10                ((uint16_t)0x0400)  /* Pin 10 selected */
68     #define GPIO_Pin_11                ((uint16_t)0x0800)  /* Pin 11 selected */
69     #define GPIO_Pin_12                ((uint16_t)0x1000)  /* Pin 12 selected */
70     #define GPIO_Pin_13                ((uint16_t)0x2000)  /* Pin 13 selected */
71     #define GPIO_Pin_14                ((uint16_t)0x4000)  /* Pin 14 selected */
72     #define GPIO_Pin_15                ((uint16_t)0x8000)  /* Pin 15 selected */
73 #endif
74 
75 #define GPIO_Pin_16                 ((uint32_t)0x00010000)  /* Pin 0 selected */
76 #define GPIO_Pin_17                 ((uint32_t)0x00020000)  /* Pin 1 selected */
77 #define GPIO_Pin_18                 ((uint32_t)0x00040000)  /* Pin 2 selected */
78 #define GPIO_Pin_19                 ((uint32_t)0x00080000)  /* Pin 3 selected */
79 #define GPIO_Pin_20                 ((uint32_t)0x00100000)  /* Pin 4 selected */
80 #define GPIO_Pin_21                 ((uint32_t)0x00200000)  /* Pin 5 selected */
81 #define GPIO_Pin_22                 ((uint32_t)0x00400000)  /* Pin 6 selected */
82 #define GPIO_Pin_23                 ((uint32_t)0x00800000)  /* Pin 7 selected */
83 #define GPIO_Pin_24                 ((uint32_t)0x01000000)  /* Pin 8 selected */
84 #define GPIO_Pin_25                 ((uint32_t)0x02000000)  /* Pin 9 selected */
85 #define GPIO_Pin_26                 ((uint32_t)0x04000000)  /* Pin 10 selected */
86 #define GPIO_Pin_27                 ((uint32_t)0x08000000)  /* Pin 11 selected */
87 #define GPIO_Pin_28                 ((uint32_t)0x10000000)  /* Pin 12 selected */
88 #define GPIO_Pin_29                 ((uint32_t)0x20000000)  /* Pin 13 selected */
89 #define GPIO_Pin_30                 ((uint32_t)0x40000000)  /* Pin 14 selected */
90 #define GPIO_Pin_31                 ((uint32_t)0x80000000)  /* Pin 15 selected */
91 
92 /* Rename the macro for the sake of memory */
93 #define GPRS_TERM_ON   GPIO_Pin_0
94 #define GPRS_RESET     GPIO_Pin_1
95 #define NRF24L01_CE    GPIO_Pin_2
96 #define NRF905_TX_EN   GPIO_Pin_3
97 #define NRF905_TRX_CE  GPIO_Pin_4
98   #define VS1053_XDCS    GPIO_Pin_4
99 #define NRF905_PWR_UP  GPIO_Pin_5
100 #define ESP8266_G0     GPIO_Pin_6
101 #define ESP8266_G2     GPIO_Pin_7
102 
103 #define LED1           GPIO_Pin_8
104 #define LED2           GPIO_Pin_9
105 #define LED3           GPIO_Pin_10
106 #define LED4           GPIO_Pin_11
107 #define TP_NRST        GPIO_Pin_12
108 #define AD7606_OS0     GPIO_Pin_13
109 #define AD7606_OS1     GPIO_Pin_14
110 #define AD7606_OS2     GPIO_Pin_15
111 
112 #define Y50_0          GPIO_Pin_16
113 #define Y50_1          GPIO_Pin_17
114 #define Y50_2          GPIO_Pin_18
115 #define Y50_3          GPIO_Pin_19
116 #define Y50_4          GPIO_Pin_20
117 #define Y50_5          GPIO_Pin_21
118 #define Y50_6          GPIO_Pin_22
119 #define Y50_7          GPIO_Pin_23
120 
121 #define AD7606_RESET   GPIO_Pin_24
122 #define AD7606_RANGE   GPIO_Pin_25
123 #define Y33_2          GPIO_Pin_26
124 #define Y33_3          GPIO_Pin_27
125 #define Y33_4          GPIO_Pin_28
126 #define Y33_5          GPIO_Pin_29
127 #define Y33_6          GPIO_Pin_30
128 #define Y33_7          GPIO_Pin_31
129 
130 void HC574_SetPin(rt_uint32_t _pin, uint8_t _value);
131 rt_uint8_t HC574_GetPin(rt_uint32_t _pin);
132 
133 #endif /* __EXT_IO_H__ */
134