]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F4/TARGET_UBLOX_C029/PinNames.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / hal / TARGET_STM / TARGET_STM32F4 / TARGET_UBLOX_C029 / PinNames.h
1 /* mbed Microcontroller Library
2  *******************************************************************************
3  * Copyright (c) 2014, STMicroelectronics
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright notice,
10  *    this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  *    this list of conditions and the following disclaimer in the documentation
13  *    and/or other materials provided with the distribution.
14  * 3. Neither the name of STMicroelectronics nor the names of its contributors
15  *    may be used to endorse or promote products derived from this software
16  *    without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  *******************************************************************************
29  */
30 #ifndef MBED_PINNAMES_H
31 #define MBED_PINNAMES_H
32
33 #include "cmsis.h"
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 // See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
40 #define STM_PIN_DATA(MODE, PUPD, AFNUM)  ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
41 #define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED)  ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
42 #define STM_PIN_MODE(X)   (((X) >> 0) & 0x0F)
43 #define STM_PIN_PUPD(X)   (((X) >> 4) & 0x07)
44 #define STM_PIN_AFNUM(X)  (((X) >> 7) & 0x0F)
45 #define STM_PIN_CHANNEL(X)  (((X) >> 11) & 0x0F)
46 #define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
47 #define STM_MODE_INPUT              (0)
48 #define STM_MODE_OUTPUT_PP          (1)
49 #define STM_MODE_OUTPUT_OD          (2)
50 #define STM_MODE_AF_PP              (3)
51 #define STM_MODE_AF_OD              (4)
52 #define STM_MODE_ANALOG             (5)
53 #define STM_MODE_IT_RISING          (6)
54 #define STM_MODE_IT_FALLING         (7)
55 #define STM_MODE_IT_RISING_FALLING  (8)
56 #define STM_MODE_EVT_RISING         (9)
57 #define STM_MODE_EVT_FALLING        (10)
58 #define STM_MODE_EVT_RISING_FALLING (11)
59 #define STM_MODE_IT_EVT_RESET       (12)
60
61 // High nibble = port number (0=A, 1=B, 2=C, 3=D, 4=E, 5=F, 6=G, 7=H)
62 // Low nibble  = pin number
63 #define STM_PORT(X) (((uint32_t)(X) >> 4) & 0xF)
64 #define STM_PIN(X)  ((uint32_t)(X) & 0xF)
65
66 typedef enum {
67     PIN_INPUT,
68     PIN_OUTPUT
69 } PinDirection;
70
71 typedef enum {
72     PA_0  = 0x00, PA_1  = 0x01, PA_2  = 0x02, PA_3  = 0x03,
73     PA_4  = 0x04, PA_5  = 0x05, PA_6  = 0x06, PA_7  = 0x07,
74     PA_8  = 0x08, PA_9  = 0x09, PA_10 = 0x0A, PA_11 = 0x0B,
75     PA_12 = 0x0C, PA_13 = 0x0D, PA_14 = 0x0E, PA_15 = 0x0F,
76
77     PB_0  = 0x10, PB_1  = 0x11, PB_2  = 0x12, PB_3  = 0x13,
78     PB_4  = 0x14, PB_5  = 0x15, PB_6  = 0x16, PB_7  = 0x17,
79     PB_8  = 0x18, PB_9  = 0x19, PB_10 = 0x1A, PB_11 = 0x1B,
80     PB_12 = 0x1C, PB_13 = 0x1D, PB_14 = 0x1E, PB_15 = 0x1F,
81
82     PC_0  = 0x20, PC_1  = 0x21, PC_2  = 0x22, PC_3  = 0x23,
83     PC_4  = 0x24, PC_5  = 0x25, PC_6  = 0x26, PC_7  = 0x27,
84     PC_8  = 0x28, PC_9  = 0x29, PC_10 = 0x2A, PC_11 = 0x2B,
85     PC_12 = 0x2C, PC_13 = 0x2D, PC_14 = 0x2E, PC_15 = 0x2F,
86
87     PD_0  = 0x30, PD_1  = 0x31, PD_2  = 0x32, PD_3  = 0x33,
88     PD_4  = 0x34, PD_5  = 0x35, PD_6  = 0x36, PD_7  = 0x37,
89     PD_8  = 0x38, PD_9  = 0x39, PD_10 = 0x3A, PD_11 = 0x3B,
90     PD_12 = 0x3C, PD_13 = 0x3D, PD_14 = 0x3E, PD_15 = 0x3F,
91     
92     PE_0  = 0x40, PE_1  = 0x41, PE_2  = 0x42, PE_3  = 0x43,
93     PE_4  = 0x44, PE_5  = 0x45, PE_6  = 0x46, PE_7  = 0x47,
94     PE_8  = 0x48, PE_9  = 0x49, PE_10 = 0x4A, PE_11 = 0x4B,
95     PE_12 = 0x4C, PE_13 = 0x4D, PE_14 = 0x4E, PE_15 = 0x4F,
96
97     PF_0  = 0x50, PF_1  = 0x51, PF_2  = 0x52, PF_3  = 0x53,
98     PF_4  = 0x54, PF_5  = 0x55, PF_6  = 0x56, PF_7  = 0x57,
99     PF_8  = 0x58, PF_9  = 0x59, PF_10 = 0x5A, PF_11 = 0x5B,
100     PF_12 = 0x5C, PF_13 = 0x5D, PF_14 = 0x5E, PF_15 = 0x5F,
101
102     PG_0  = 0x60, PG_1  = 0x61, PG_2  = 0x62, PG_3  = 0x63,
103     PG_4  = 0x64, PG_5  = 0x65, PG_6  = 0x66, PG_7  = 0x67,
104     PG_8  = 0x68, PG_9  = 0x69, PG_10 = 0x6A, PG_11 = 0x6B,
105     PG_12 = 0x6C, PG_13 = 0x6D, PG_14 = 0x6E, PG_15 = 0x6F,
106
107     PH_0  = 0x70, PH_1  = 0x71, PH_2  = 0x72, PH_3  = 0x73,
108     PH_4  = 0x74, PH_5  = 0x75, PH_6  = 0x76, PH_7  = 0x77,
109     PH_8  = 0x78, PH_9  = 0x79, PH_10 = 0x7A, PH_11 = 0x7B,
110     PH_12 = 0x7C, PH_13 = 0x7D, PH_14 = 0x7E, PH_15 = 0x7F,
111
112     // Module Pins
113     // A
114     P_A5    = PC_2,   // UART-DTR
115     P_A6    = PF_2,   // Switch-0
116     P_A7    = PE_0,   // Red, Mode
117     P_A8    = PB_6,   // Green, Switch-1
118     P_A9    = PB_8,   // Blue
119     P_A10   = PA_11,  // UART-CTS
120     P_A11   = PA_9,   // UART-TXD
121     P_A12   = PA_12,  // UART-RTS
122     P_A13   = PA_10,  // UART-RXD
123     P_A14   = PD_9,   // GPIO-0
124     P_A15   = PD_8,   // GPIO-1
125     P_A16   = PD_11,  // GPIO-2
126     P_A17   = PD_12,  // GPIO-3
127     P_A18   = PA_3,   // UART-DSR
128     // B
129     // C
130     P_C5    = PG_4,   // SPI-IRQ
131     P_C6    = PE_13,  // SPI-MISO
132     P_C8    = PE_12,  // Res
133     P_C10   = PE_14,  // SPI-MOSI
134     P_C11   = PE_11,  // SPI-CS0
135     P_C12   = PE_9,   // Res
136     P_C13   = PF_6,   // GPIO-4
137     P_C14   = PC_1,   // RMII-MDC
138     P_C15   = PA_2,   // RMII-MDIO
139     P_C16   = PF_7,   // GPIO-7
140     P_C17   = PF_1,   // I2C-SCL
141     P_C18   = PF_0,   // I2C-SDA
142     // D
143     P_D1    = PB_12,  // RMII-TXD0
144     P_D2    = PB_13,  // RMII-TXD1
145     P_D3    = PB_11,  // RMII-TXEN
146     P_D4    = PA_7,   // RMII-CRSDV
147     P_D5    = PC_4,   // RMII-RXD0
148     P_D6    = PC_5,   // RMII-RXD1
149     P_D8    = PA_1,   // RMII-REFCLK
150     // TP
151     P_TP5   = PB_4,   // NTRST
152     P_TP7   = PA_13,  // TMS  SWDIO
153     P_TP8   = PA_15,  // TDI
154     P_TP9   = PA_14,  // TCK  SWCLK
155     P_TP10  = PB_3,   // TDO  
156
157     // Board Pins
158     // A0-A5
159     A0      = PF_7,
160     A1      = PF_6,
161     A2      = PA_3,
162     A3      = PC_2,
163     A4      = PG_4,  // not AI
164     A5      = PB_3,  // not AI
165     // D0-D15
166     D0      = PD_9,   // RX
167     D1      = PD_8,   // TX
168     D2      = PA_10,  // RX
169     D3      = PA_11,
170     D4      = PA_12,
171     D5      = PA_15,
172     D6      = PD_11,
173     D7      = PD_12,
174     D8      = PA_9,   // TX
175     D9      = PE_9,   // shared with SW1
176     D10     = PE_11,  // SSEL
177     D11     = PE_14,  // MOSI
178     D12     = PE_13,  // MISO
179     D13     = PE_12,  // SCK
180     D14     = PF_0,   // SDA
181     D15     = PF_1,   // SCL
182     // Internal
183     LED1    = PE_0,   // Red
184     LED2    = PB_6,   // Green / shared with SW1
185     LED_RED = PE_0,   // Red
186     LED_GRE = PB_6,   // Green / shared with SW1
187     LED_BLU = PB_8,   // Blue
188     SW0     = PF_2,       // Switch 0
189     SW1     = PB_6,   // Switch 1 / shared with LED_GRE
190     SDCS    = PE_9,   // SD Card CS / shared with D9
191     USBRXD  = PD_9,   // RX
192     USBTXD  = PD_8,   // TX
193
194     // Not connected
195     NC = (int)0xFFFFFFFF
196 } PinName;
197
198 typedef enum {
199     PullNone  = 0,
200     PullUp    = 1,
201     PullDown  = 2,
202     OpenDrain = 3,
203     PullDefault = PullNone
204 } PinMode;
205
206 #ifdef __cplusplus
207 }
208 #endif
209
210 #endif