]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/hal/TARGET_Maxim/TARGET_MAX32600/TARGET_MAX32600MBED/PinNames.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / hal / TARGET_Maxim / TARGET_MAX32600 / TARGET_MAX32600MBED / PinNames.h
1 /*******************************************************************************
2  * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included
12  * in all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17  * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
18  * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20  * OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * Except as contained in this notice, the name of Maxim Integrated
23  * Products, Inc. shall not be used except as stated in the Maxim Integrated
24  * Products, Inc. Branding Policy.
25  *
26  * The mere transfer of this software does not imply any licenses
27  * of trade secrets, proprietary technology, copyrights, patents,
28  * trademarks, maskwork rights, or any other form of intellectual
29  * property whatsoever. Maxim Integrated Products, Inc. retains all
30  * ownership rights.
31  *******************************************************************************
32  */
33  
34 #ifndef MBED_PINNAMES_H
35 #define MBED_PINNAMES_H
36
37 #include "cmsis.h"
38 #include "gpio_regs.h"
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 typedef enum {
45     PIN_INPUT  = MXC_V_GPIO_OUT_MODE_HIGH_Z,
46     PIN_OUTPUT = MXC_V_GPIO_OUT_MODE_NORMAL_DRIVE
47 } PinDirection;
48
49 #define PORT_SHIFT  12
50 #define PINNAME_TO_PORT(name)   ((unsigned int)(name) >> PORT_SHIFT)
51 #define PINNAME_TO_PIN(name)    ((unsigned int)(name) & ~(0xFFFFFFFF << PORT_SHIFT))
52
53 typedef enum {
54     P0_0 = (0 << PORT_SHIFT) | 0,
55     P0_1 = (0 << PORT_SHIFT) | 1,
56     P0_2 = (0 << PORT_SHIFT) | 2,
57     P0_3 = (0 << PORT_SHIFT) | 3,
58     P0_4 = (0 << PORT_SHIFT) | 4,
59     P0_5 = (0 << PORT_SHIFT) | 5,
60     P0_6 = (0 << PORT_SHIFT) | 6,
61     P0_7 = (0 << PORT_SHIFT) | 7,
62
63     P1_0 = (1 << PORT_SHIFT) | 0,
64     P1_1 = (1 << PORT_SHIFT) | 1,
65     P1_2 = (1 << PORT_SHIFT) | 2,
66     P1_3 = (1 << PORT_SHIFT) | 3,
67     P1_4 = (1 << PORT_SHIFT) | 4,
68     P1_5 = (1 << PORT_SHIFT) | 5,
69     P1_6 = (1 << PORT_SHIFT) | 6,
70     P1_7 = (1 << PORT_SHIFT) | 7,
71
72     P2_0 = (2 << PORT_SHIFT) | 0,
73     P2_1 = (2 << PORT_SHIFT) | 1,
74     P2_2 = (2 << PORT_SHIFT) | 2,
75     P2_3 = (2 << PORT_SHIFT) | 3,
76     P2_4 = (2 << PORT_SHIFT) | 4,
77     P2_5 = (2 << PORT_SHIFT) | 5,
78     P2_6 = (2 << PORT_SHIFT) | 6,
79     P2_7 = (2 << PORT_SHIFT) | 7,
80
81     P3_0 = (3 << PORT_SHIFT) | 0,
82     P3_1 = (3 << PORT_SHIFT) | 1,
83     P3_2 = (3 << PORT_SHIFT) | 2,
84     P3_3 = (3 << PORT_SHIFT) | 3,
85     P3_4 = (3 << PORT_SHIFT) | 4,
86     P3_5 = (3 << PORT_SHIFT) | 5,
87     P3_6 = (3 << PORT_SHIFT) | 6,
88     P3_7 = (3 << PORT_SHIFT) | 7,
89
90     P4_0 = (4 << PORT_SHIFT) | 0,
91     P4_1 = (4 << PORT_SHIFT) | 1,
92     P4_2 = (4 << PORT_SHIFT) | 2,
93     P4_3 = (4 << PORT_SHIFT) | 3,
94     P4_4 = (4 << PORT_SHIFT) | 4,
95     P4_5 = (4 << PORT_SHIFT) | 5,
96     P4_6 = (4 << PORT_SHIFT) | 6,
97     P4_7 = (4 << PORT_SHIFT) | 7,
98
99     P5_0 = (5 << PORT_SHIFT) | 0,
100     P5_1 = (5 << PORT_SHIFT) | 1,
101     P5_2 = (5 << PORT_SHIFT) | 2,
102     P5_3 = (5 << PORT_SHIFT) | 3,
103     P5_4 = (5 << PORT_SHIFT) | 4,
104     P5_5 = (5 << PORT_SHIFT) | 5,
105     P5_6 = (5 << PORT_SHIFT) | 6,
106     P5_7 = (5 << PORT_SHIFT) | 7,
107
108     P6_0 = (6 << PORT_SHIFT) | 0,
109     P6_1 = (6 << PORT_SHIFT) | 1,
110     P6_2 = (6 << PORT_SHIFT) | 2,
111     P6_3 = (6 << PORT_SHIFT) | 3,
112     P6_4 = (6 << PORT_SHIFT) | 4,
113     P6_5 = (6 << PORT_SHIFT) | 5,
114     P6_6 = (6 << PORT_SHIFT) | 6,
115     P6_7 = (6 << PORT_SHIFT) | 7,
116
117     P7_0 = (7 << PORT_SHIFT) | 0,
118     P7_1 = (7 << PORT_SHIFT) | 1,
119     P7_2 = (7 << PORT_SHIFT) | 2,
120     P7_3 = (7 << PORT_SHIFT) | 3,
121     P7_4 = (7 << PORT_SHIFT) | 4,
122     P7_5 = (7 << PORT_SHIFT) | 5,
123     P7_6 = (7 << PORT_SHIFT) | 6,
124     P7_7 = (7 << PORT_SHIFT) | 7,
125
126     // Analog ADC pins
127     AIN_0P = (0xA << PORT_SHIFT) | 0,
128     AIN_1P = (0xA << PORT_SHIFT) | 1,
129     AIN_2P = (0xA << PORT_SHIFT) | 2,
130     AIN_3P = (0xA << PORT_SHIFT) | 3,
131     AIN_4P = (0xA << PORT_SHIFT) | 4,
132     AIN_5P = (0xA << PORT_SHIFT) | 5,
133     AIN_6P = (0xA << PORT_SHIFT) | 6,
134     AIN_7P = (0xA << PORT_SHIFT) | 7,
135
136     AIN_0N = (0xB << PORT_SHIFT) | 0,
137     AIN_1N = (0xB << PORT_SHIFT) | 1,
138     AIN_2N = (0xB << PORT_SHIFT) | 2,
139     AIN_3N = (0xB << PORT_SHIFT) | 3,
140     AIN_4N = (0xB << PORT_SHIFT) | 4,
141     AIN_5N = (0xB << PORT_SHIFT) | 5,
142     AIN_6N = (0xB << PORT_SHIFT) | 6,
143     AIN_7N = (0xB << PORT_SHIFT) | 7,
144
145     // Analog differential ADC
146     AIN_0D = (0xC << PORT_SHIFT) | 0,
147     AIN_1D = (0xC << PORT_SHIFT) | 1,
148     AIN_2D = (0xC << PORT_SHIFT) | 2,
149     AIN_3D = (0xC << PORT_SHIFT) | 3,
150     AIN_4D = (0xC << PORT_SHIFT) | 4,
151     AIN_5D = (0xC << PORT_SHIFT) | 5,
152     AIN_6D = (0xC << PORT_SHIFT) | 6,
153     AIN_7D = (0xC << PORT_SHIFT) | 7,
154
155     // OPAMP Positive supply pins
156     AOUT_AP = (0xD << PORT_SHIFT) | 0,
157     AOUT_BP = (0xD << PORT_SHIFT) | 1,
158     AOUT_CP = (0xD << PORT_SHIFT) | 2,
159     AOUT_DP = (0xD << PORT_SHIFT) | 3,
160
161     // OPAMP Negative supply pins
162     AOUT_AN = (0xE << PORT_SHIFT) | 0,
163     AOUT_BN = (0xE << PORT_SHIFT) | 1,
164     AOUT_CN = (0xE << PORT_SHIFT) | 2,
165     AOUT_DN = (0xE << PORT_SHIFT) | 3,
166
167     // DAC Output pins
168     AOUT_AO = (0xF << PORT_SHIFT) | 0,
169     AOUT_BO = (0xF << PORT_SHIFT) | 1,
170     AOUT_CO = (0xF << PORT_SHIFT) | 2,
171     AOUT_DO = (0xF << PORT_SHIFT) | 3,
172
173     LED_GREEN  = P7_4,
174     LED_RED    = P7_0,
175     LED_YELLOW = P6_6,
176     LED_BLUE   = P7_6,
177
178     // mbed original LED naming
179     LED1 = LED_RED,
180     LED2 = LED_GREEN,
181     LED3 = LED_BLUE,
182     LED4 = LED_YELLOW,
183
184     // Push button
185     SW2 = P6_4,
186     SW3 = P6_5,
187
188     // UART pins
189     USBTX = P7_3,
190     USBRX = P7_2,
191     STDIO_UART_TX = USBTX,
192     STDIO_UART_RX = USBRX,
193
194     // I2C pins
195     I2C0_SCL = P2_4,
196     I2C0_SDA = P2_5,
197
198     I2C1_SCL = P2_7,
199     I2C1_SDA = P2_6,
200
201     // UART pins
202     UART0_RX  = P1_0,
203     UART0_TX  = P1_1,
204     UART0_CTS = P1_2,
205     UART0_RTS = P1_3,
206
207     UART1_RX  = P1_2,
208     UART1_TX  = P1_3,
209     UART1_CTS = P2_6,
210     UART1_RTS = P2_7,
211
212     // SPI pins
213     SPI0_SCK  = P6_0,
214     SPI0_MOSI = P6_1,
215     SPI0_MISO = P6_2,
216     SPI0_SS   = P6_3,
217
218     SPI2_SCK  = P2_0,
219     SPI2_MOSI = P2_1,
220     SPI2_MISO = P2_2,
221     SPI2_SS   = P2_3,
222
223     // Arduino Headers
224     D0  = P1_0,
225     D1  = P1_1,
226     D2  = P1_2,
227     D3  = P1_3,
228     D4  = P1_4,
229     D5  = P1_5,
230     D6  = P1_6,
231     D7  = P1_7,
232     D8  = P2_5,
233     D9  = P2_4,
234     D10 = P2_3,
235     D11 = P2_1,
236     D12 = P2_2,
237     D13 = P2_0,
238     D14 = P2_6,
239     D15 = P2_7,
240     A0  = AIN_0P,
241     A1  = AIN_1P,
242     A2  = AIN_2P,
243     A3  = AIN_3P,
244     A4  = AIN_4P,
245     A5  = AIN_5P,
246
247     // Not connected
248     NC = (int)0xFFFFFFFF
249 } PinName;
250
251 typedef enum {
252     PullUp,
253     OpenDrain,
254     PullNone,
255     PullDefault = PullUp
256 } PinMode;
257
258 typedef enum {
259     LED_ON = 0,
260     LED_OFF = 1
261 } LedStates;
262
263 #ifdef __cplusplus
264 }
265 #endif
266
267 #endif