]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC43XX/TARGET_LPC4330/PinNames.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / hal / TARGET_NXP / TARGET_LPC43XX / TARGET_LPC4330 / PinNames.h
1 /* mbed Microcontroller Library
2  * Copyright (c) 2006-2013 ARM Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef MBED_PINNAMES_H
17 #define MBED_PINNAMES_H
18
19 #include "cmsis.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 typedef enum {
26     PIN_INPUT,
27     PIN_OUTPUT
28 } PinDirection;
29
30 #define PORT_SHIFT  5
31 #define NO_GPIO     15
32
33 // On the LPC43xx the MCU pin name and the GPIO pin name are not the same.
34 // Encode SCU and GPIO offsets as a pin identifier
35 #define MBED_PIN(group, num, port, pin)  ((SCU_OFF(group,num) << 16) + GPIO_OFF(port,pin))
36
37 // Decode pin identifier into register, port and pin values
38 #define MBED_SCU_REG(MBED_PIN)   (LPC_SCU_BASE + (MBED_PIN >> 16))
39 #define MBED_GPIO_REG(MBED_PIN)  (LPC_GPIO_PORT_BASE + 0x2000 + ((MBED_PIN >> (PORT_SHIFT - 2)) & 0x0000003C))
40 #define MBED_GPIO_PORT(MBED_PIN) ((MBED_PIN >> PORT_SHIFT) & 0x0000000F)
41 #define MBED_GPIO_PIN(MBED_PIN)  (MBED_PIN & 0x0000001F)
42
43 typedef enum {
44     // LPC43xx Pin Names
45     // All pins defined. Package determines which are available.
46     //          LBGA256  TFBGA180 TFBGA100 LQFP208  LQFP144
47     // GPIO0    [15:0]   [15:0]   [15:6]   [15:0]   [15:0]
48     //                            [4:0]
49     // GPIO1    [15:0]   [15:0]   [15:0]   [15:0]   [15:0]
50     // GPIO2    [15:0]   [15:0]            [15:0]   [15:0]
51     // GPIO3    [15:0]   [15:0]   [7]      [15:0]   [15:0]
52     //                            [5:3]
53     //                            [1:0]
54     // GPIO4    [15:0]   [15:0]            [15:0]   [11]
55     // GPIO5    [26:0]   [26:0]   [11:0]   [25:0]   [18]
56     //                                              [16:0]
57     // GPIO6    [30:0]   [30:28]           [30:20]
58     //                   [26:25]           [5:0]
59     // GPIO7    [25:0]   [4:0]             [25:23]
60     //                                     [21:17]
61     //          ---      ---      ---      ---      ---
62     // Total    164      117      49       131      83
63
64     // Groups 0x00 - 0x0F : Digital pins
65     // * Digital pins support up to 8 functions
66     //   Use func=0 for GPIO0-GPIO4, func=4 for GPIO5-GPIO7
67     // * High-drive pins default to 4 mA but can support 8, 14, 20 mA
68     P0_0  = MBED_PIN(0x00, 0, 0, 0),    // GPIO0[0]
69     P0_1  = MBED_PIN(0x00, 1, 0, 1),    // GPIO0[1]
70
71     P1_0  = MBED_PIN(0x01, 0, 0, 4),    // GPIO0[4]
72     P1_1  = MBED_PIN(0x01, 1, 0, 8),    // GPIO0[8]
73     P1_2  = MBED_PIN(0x01, 2, 0, 9),    // GPIO0[9]
74     P1_3  = MBED_PIN(0x01, 3, 0, 10),   // GPIO0[10]
75     P1_4  = MBED_PIN(0x01, 4, 0, 11),   // GPIO0[11]
76     P1_5  = MBED_PIN(0x01, 5, 1, 8),    // GPIO1[8]
77     P1_6  = MBED_PIN(0x01, 6, 1, 9),    // GPIO1[9]
78     P1_7  = MBED_PIN(0x01, 7, 1, 0),    // GPIO1[0]
79     P1_8  = MBED_PIN(0x01, 8, 1, 1),    // GPIO1[1]
80     P1_9  = MBED_PIN(0x01, 9, 1, 2),    // GPIO1[2]
81     P1_10 = MBED_PIN(0x01, 10, 1, 3),   // GPIO1[3]
82     P1_11 = MBED_PIN(0x01, 11, 1, 4),   // GPIO1[4]
83     P1_12 = MBED_PIN(0x01, 12, 1, 5),   // GPIO1[5]
84     P1_13 = MBED_PIN(0x01, 13, 1, 6),   // GPIO1[6]
85     P1_14 = MBED_PIN(0x01, 14, 1, 7),   // GPIO1[7]
86     P1_15 = MBED_PIN(0x01, 15, 0, 2),   // GPIO0[2]
87     P1_16 = MBED_PIN(0x01, 16, 0, 3),   // GPIO0[3]
88     P1_17 = MBED_PIN(0x01, 17, 0, 12),  // GPIO0[12] high-drive
89     P1_18 = MBED_PIN(0x01, 18, 0, 13),  // GPIO0[13]
90     P1_19 = MBED_PIN(0x01, 19, NO_GPIO, 0),
91     P1_20 = MBED_PIN(0x01, 20, 0, 15),  // GPIO0[15]
92
93     P2_0  = MBED_PIN(0x02, 0, 5, 0),    // GPIO5[0]
94     P2_1  = MBED_PIN(0x02, 1, 5, 1),    // GPIO5[1]
95     P2_2  = MBED_PIN(0x02, 2, 5, 2),    // GPIO5[2]
96     P2_3  = MBED_PIN(0x02, 3, 5, 3),    // GPIO5[3]  high-drive
97     P2_4  = MBED_PIN(0x02, 4, 5, 4),    // GPIO5[4]  high-drive
98     P2_5  = MBED_PIN(0x02, 5, 5, 5),    // GPIO5[5]  high-drive
99     P2_6  = MBED_PIN(0x02, 6, 5, 6),    // GPIO5[6]
100     P2_7  = MBED_PIN(0x02, 7, 0, 7),    // GPIO0[7]
101     P2_8  = MBED_PIN(0x02, 8, 5, 7),    // GPIO5[7]
102     P2_9  = MBED_PIN(0x02, 9, 1, 10),   // GPIO1[10]
103     P2_10 = MBED_PIN(0x02, 10, 0, 14),  // GPIO0[14]
104     P2_11 = MBED_PIN(0x02, 11, 1, 11),  // GPIO1[11]
105     P2_12 = MBED_PIN(0x02, 12, 1, 12),  // GPIO1[12]
106     P2_13 = MBED_PIN(0x02, 13, 1, 13),  // GPIO1[13]
107
108     P3_0  = MBED_PIN(0x03, 0, NO_GPIO, 0),
109     P3_1  = MBED_PIN(0x03, 1, 5, 8),    // GPIO5[8]
110     P3_2  = MBED_PIN(0x03, 2, 5, 9),    // GPIO5[9]
111     P3_3  = MBED_PIN(0x03, 3, NO_GPIO, 0),
112     P3_4  = MBED_PIN(0x03, 4, 1, 14),   // GPIO1[14]
113     P3_5  = MBED_PIN(0x03, 5, 1, 15),   // GPIO1[15]
114     P3_6  = MBED_PIN(0x03, 6, 0, 6),    // GPIO0[6]
115     P3_7  = MBED_PIN(0x03, 7, 5, 10),   // GPIO5[10]
116     P3_8  = MBED_PIN(0x03, 8, 5, 11),   // GPIO5[11]
117
118     P4_0  = MBED_PIN(0x04, 0, 2, 0),    // GPIO2[0]
119     P4_1  = MBED_PIN(0x04, 1, 2, 1),    // GPIO2[1]
120     P4_2  = MBED_PIN(0x04, 2, 2, 2),    // GPIO2[2]
121     P4_3  = MBED_PIN(0x04, 3, 2, 3),    // GPIO2[3]
122     P4_4  = MBED_PIN(0x04, 4, 2, 4),    // GPIO2[4]
123     P4_5  = MBED_PIN(0x04, 5, 2, 5),    // GPIO2[5]
124     P4_6  = MBED_PIN(0x04, 6, 2, 6),    // GPIO2[6]
125     P4_7  = MBED_PIN(0x04, 7, NO_GPIO, 0),
126     P4_8  = MBED_PIN(0x04, 8, 5, 12),   // GPIO5[12]
127     P4_9  = MBED_PIN(0x04, 9, 5, 13),   // GPIO5[13]
128     P4_10 = MBED_PIN(0x04, 10, 5, 14),  // GPIO5[14]
129
130     P5_0  = MBED_PIN(0x05, 0, 2, 9),    // GPIO2[9]
131     P5_1  = MBED_PIN(0x05, 1, 2, 10),   // GPIO2[10]
132     P5_2  = MBED_PIN(0x05, 2, 2, 11),   // GPIO2[11]
133     P5_3  = MBED_PIN(0x05, 3, 2, 12),   // GPIO2[12]
134     P5_4  = MBED_PIN(0x05, 4, 2, 13),   // GPIO2[13]
135     P5_5  = MBED_PIN(0x05, 5, 2, 14),   // GPIO2[14]
136     P5_6  = MBED_PIN(0x05, 6, 2, 15),   // GPIO2[15]
137     P5_7  = MBED_PIN(0x05, 7, 2, 7),    // GPIO2[7]
138
139     P6_0  = MBED_PIN(0x06, 0, NO_GPIO, 0),
140     P6_1  = MBED_PIN(0x06, 1, 3, 0),    // GPIO3[0]
141     P6_2  = MBED_PIN(0x06, 2, 3, 1),    // GPIO3[1]
142     P6_3  = MBED_PIN(0x06, 3, 3, 2),    // GPIO3[2]
143     P6_4  = MBED_PIN(0x06, 4, 3, 3),    // GPIO3[3]
144     P6_5  = MBED_PIN(0x06, 5, 3, 4),    // GPIO3[4]
145     P6_6  = MBED_PIN(0x06, 6, 0, 5),    // GPIO0[5]
146     P6_7  = MBED_PIN(0x06, 7, 5, 15),   // GPIO5[15]
147     P6_8  = MBED_PIN(0x06, 8, 5, 16),   // GPIO5[16]
148     P6_9  = MBED_PIN(0x06, 9, 3, 5),    // GPIO3[5]
149     P6_10 = MBED_PIN(0x06, 10, 3, 6),   // GPIO3[6]
150     P6_11 = MBED_PIN(0x06, 11, 3, 7),   // GPIO3[7]
151     P6_12 = MBED_PIN(0x06, 12, 2, 8),   // GPIO2[8]
152
153     P7_0  = MBED_PIN(0x07, 0, 3, 8),    // GPIO3[8]
154     P7_1  = MBED_PIN(0x07, 1, 3, 9),    // GPIO3[9]
155     P7_2  = MBED_PIN(0x07, 2, 3, 10),   // GPIO3[10]
156     P7_3  = MBED_PIN(0x07, 3, 3, 11),   // GPIO3[11]
157     P7_4  = MBED_PIN(0x07, 4, 3, 12),   // GPIO3[12]
158     P7_5  = MBED_PIN(0x07, 5, 3, 13),   // GPIO3[13]
159     P7_6  = MBED_PIN(0x07, 6, 3, 14),   // GPIO3[14]
160     P7_7  = MBED_PIN(0x07, 7, 3, 15),   // GPIO3[15]
161
162     P8_0  = MBED_PIN(0x08, 8, 4, 0),    // GPIO4[0]  high-drive
163     P8_1  = MBED_PIN(0x09, 0, 4, 1),    // GPIO4[1]  high-drive
164     P8_2  = MBED_PIN(0x09, 1, 4, 2),    // GPIO4[2]  high-drive
165     P8_3  = MBED_PIN(0x09, 2, 4, 3),    // GPIO4[3]
166     P8_4  = MBED_PIN(0x08, 4, 4, 4),    // GPIO4[4]
167     P8_5  = MBED_PIN(0x08, 5, 4, 5),    // GPIO4[5]
168     P8_6  = MBED_PIN(0x08, 6, 4, 6),    // GPIO4[6]
169     P8_7  = MBED_PIN(0x08, 7, 4, 7),    // GPIO4[7]
170     P8_8  = MBED_PIN(0x08, 8, NO_GPIO, 0),
171
172     P9_0  = MBED_PIN(0x09, 0, 4, 12),   // GPIO4[12]
173     P9_1  = MBED_PIN(0x09, 1, 4, 13),   // GPIO4[13]
174     P9_2  = MBED_PIN(0x09, 2, 4, 14),   // GPIO4[14]
175     P9_3  = MBED_PIN(0x09, 3, 4, 15),   // GPIO4[15]
176     P9_4  = MBED_PIN(0x09, 4, 5, 17),   // GPIO5[17]
177     P9_5  = MBED_PIN(0x09, 5, 5, 18),   // GPIO5[18]
178     P9_6  = MBED_PIN(0x09, 6, 4, 11),   // GPIO4[11]
179
180     PA_0  = MBED_PIN(0x0A, 0, NO_GPIO, 0),
181     PA_1  = MBED_PIN(0x0A, 1, 4, 8),    // GPIO4[8]  high-drive
182     PA_2  = MBED_PIN(0x0A, 2, 4, 9),    // GPIO4[9]  high-drive
183     PA_3  = MBED_PIN(0x0A, 3, 4, 10),   // GPIO4[10] high-drive
184     PA_4  = MBED_PIN(0x0A, 4, 5, 19),   // GPIO5[19]
185
186     PB_0   = MBED_PIN(0x0B, 0, 5, 20),  // GPIO5[20]
187     PB_1   = MBED_PIN(0x0B, 1, 5, 21),  // GPIO5[21]
188     PB_2   = MBED_PIN(0x0B, 2, 5, 22),  // GPIO5[22]
189     PB_3   = MBED_PIN(0x0B, 3, 5, 23),  // GPIO5[23]
190     PB_4   = MBED_PIN(0x0B, 4, 5, 24),  // GPIO5[24]
191     PB_5   = MBED_PIN(0x0B, 5, 5, 25),  // GPIO5[25]
192     PB_6   = MBED_PIN(0x0B, 6, 5, 26),  // GPIO5[26]
193
194     PC_0   = MBED_PIN(0x0C, 0, NO_GPIO, 0),
195     PC_1   = MBED_PIN(0x0C, 1, 6, 0),   // GPIO6[0]
196     PC_2   = MBED_PIN(0x0C, 2, 6, 1),   // GPIO6[1]
197     PC_3   = MBED_PIN(0x0C, 3, 6, 2),   // GPIO6[2]
198     PC_4   = MBED_PIN(0x0C, 4, 6, 3),   // GPIO6[3]
199     PC_5   = MBED_PIN(0x0C, 5, 6, 4),   // GPIO6[4]
200     PC_6   = MBED_PIN(0x0C, 6, 6, 5),   // GPIO6[5]
201     PC_7   = MBED_PIN(0x0C, 7, 6, 6),   // GPIO6[6]
202     PC_8   = MBED_PIN(0x0C, 8, 6, 7),   // GPIO6[7]
203     PC_9   = MBED_PIN(0x0C, 9, 6, 8),   // GPIO6[8]
204     PC_10  = MBED_PIN(0x0C, 10, 6, 9),  // GPIO6[9]
205     PC_11  = MBED_PIN(0x0C, 11, 6, 10), // GPIO6[10]
206     PC_12  = MBED_PIN(0x0C, 12, 6, 11), // GPIO6[11]
207     PC_13  = MBED_PIN(0x0C, 13, 6, 12), // GPIO6[12]
208     PC_14  = MBED_PIN(0x0C, 14, 6, 13), // GPIO6[13]
209
210     PD_0   = MBED_PIN(0x0D, 0, 6, 14),  // GPIO6[14]
211     PD_1   = MBED_PIN(0x0D, 1, 6, 15),  // GPIO6[15]
212     PD_2   = MBED_PIN(0x0D, 2, 6, 16),  // GPIO6[16]
213     PD_3   = MBED_PIN(0x0D, 3, 6, 17),  // GPIO6[17]
214     PD_4   = MBED_PIN(0x0D, 4, 6, 18),  // GPIO6[18]
215     PD_5   = MBED_PIN(0x0D, 5, 6, 19),  // GPIO6[19]
216     PD_6   = MBED_PIN(0x0D, 6, 6, 20),  // GPIO6[20]
217     PD_7   = MBED_PIN(0x0D, 7, 6, 21),  // GPIO6[21]
218     PD_8   = MBED_PIN(0x0D, 8, 6, 22),  // GPIO6[22]
219     PD_9   = MBED_PIN(0x0D, 9, 6, 23),  // GPIO6[23]
220     PD_10  = MBED_PIN(0x0D, 10, 6, 24), // GPIO6[24]
221     PD_11  = MBED_PIN(0x0D, 11, 6, 25), // GPIO6[25]
222     PD_12  = MBED_PIN(0x0D, 12, 6, 26), // GPIO6[26]
223     PD_13  = MBED_PIN(0x0D, 13, 6, 27), // GPIO6[27]
224     PD_14  = MBED_PIN(0x0D, 14, 6, 28), // GPIO6[28]
225     PD_15  = MBED_PIN(0x0D, 15, 6, 29), // GPIO6[29]
226     PD_16  = MBED_PIN(0x0D, 16, 6, 30), // GPIO6[30]
227
228     PE_0   = MBED_PIN(0x0E, 0, 7, 0),   // GPIO7[0]
229     PE_1   = MBED_PIN(0x0E, 1, 7, 1),   // GPIO7[1]
230     PE_2   = MBED_PIN(0x0E, 2, 7, 2),   // GPIO7[2]
231     PE_3   = MBED_PIN(0x0E, 3, 7, 3),   // GPIO7[3]
232     PE_4   = MBED_PIN(0x0E, 4, 7, 4),   // GPIO7[4]
233     PE_5   = MBED_PIN(0x0E, 5, 7, 5),   // GPIO7[5]
234     PE_6   = MBED_PIN(0x0E, 6, 7, 6),   // GPIO7[6]
235     PE_7   = MBED_PIN(0x0E, 7, 7, 7),   // GPIO7[7]
236     PE_8   = MBED_PIN(0x0E, 8, 7, 8),   // GPIO7[8]
237     PE_9   = MBED_PIN(0x0E, 9, 7, 9),   // GPIO7[9]
238     PE_10  = MBED_PIN(0x0E, 10, 7, 10), // GPIO7[10]
239     PE_11  = MBED_PIN(0x0E, 11, 7, 11), // GPIO7[11]
240     PE_12  = MBED_PIN(0x0E, 12, 7, 12), // GPIO7[12]
241     PE_13  = MBED_PIN(0x0E, 13, 7, 13), // GPIO7[13]
242     PE_14  = MBED_PIN(0x0E, 14, 7, 14), // GPIO7[14]
243     PE_15  = MBED_PIN(0x0E, 15, 7, 15), // GPIO7[15]
244
245     PF_0   = MBED_PIN(0x0F, 0, NO_GPIO, 0),
246     PF_1   = MBED_PIN(0x0F, 1, 7, 16),  // GPIO7[16]
247     PF_2   = MBED_PIN(0x0F, 2, 7, 17),  // GPIO7[17]
248     PF_3   = MBED_PIN(0x0F, 3, 7, 18),  // GPIO7[18]
249     PF_4   = MBED_PIN(0x0F, 4, NO_GPIO, 0),
250     PF_5   = MBED_PIN(0x0F, 5, 7, 19),  // GPIO7[19]
251     PF_6   = MBED_PIN(0x0F, 6, 7, 20),  // GPIO7[20]
252     PF_7   = MBED_PIN(0x0F, 7, 7, 21),  // GPIO7[21]
253     PF_8   = MBED_PIN(0x0F, 8, 7, 22),  // GPIO7[22]
254     PF_9   = MBED_PIN(0x0F, 9, 7, 23),  // GPIO7[23]
255     PF_10  = MBED_PIN(0x0F, 10, 7, 24), // GPIO7[24]
256     PF_11  = MBED_PIN(0x0F, 11, 7, 25), // GPIO7[25]
257
258     // GPIO pins from MCU pins
259     GPIO0_0 = P0_0,
260     GPIO0_1 = P0_1 ,
261     GPIO0_2 = P1_15,
262     GPIO0_3 = P1_16,
263     GPIO0_4 = P1_0,
264     GPIO0_5 = P6_6,
265     GPIO0_6 = P3_6,
266     GPIO0_7 = P2_7,
267     GPIO0_8 = P1_1,
268     GPIO0_9 = P1_2,
269     GPIO0_10 = P1_3,
270     GPIO0_11 = P1_4,
271     GPIO0_12 = P1_17,
272     GPIO0_13 = P1_18,
273     GPIO0_14 = P2_10,
274     GPIO0_15 = P1_20,
275
276     GPIO1_0 = P1_7,
277     GPIO1_1 = P1_8,
278     GPIO1_2 = P1_9,
279     GPIO1_3 = P1_10,
280     GPIO1_4 = P1_11,
281     GPIO1_5 = P1_12,
282     GPIO1_6 = P1_13,
283     GPIO1_7 = P1_14,
284     GPIO1_8 = P1_5,
285     GPIO1_9 = P1_6,
286     GPIO1_10 = P2_9,
287     GPIO1_11 = P2_11,
288     GPIO1_12 = P2_12,
289     GPIO1_13 = P2_13,
290     GPIO1_14 = P3_4,
291     GPIO1_15 = P3_5,
292
293     GPIO2_0 = P4_0,
294     GPIO2_1 = P4_1,
295     GPIO2_2 = P4_2,
296     GPIO2_3 = P4_3,
297     GPIO2_4 = P4_4,
298     GPIO2_5 = P4_5,
299     GPIO2_6 = P4_6,
300     GPIO2_7 = P5_7,
301     GPIO2_8 = P6_12,
302     GPIO2_9 = P5_0,
303     GPIO2_10 = P5_1,
304     GPIO2_11 = P5_2,
305     GPIO2_12 = P5_3,
306     GPIO2_13 = P5_4,
307     GPIO2_14 = P5_5,
308     GPIO2_15 = P5_6,
309
310     GPIO3_0 = P6_1,
311     GPIO3_1 = P6_2,
312     GPIO3_2 = P6_3,
313     GPIO3_3 = P6_4,
314     GPIO3_4 = P6_5,
315     GPIO3_5 = P6_9,
316     GPIO3_6 = P6_10,
317     GPIO3_7 = P6_11,
318     GPIO3_8 = P7_0,
319     GPIO3_9 = P7_1,
320     GPIO3_10 = P7_2,
321     GPIO3_11 = P7_3,
322     GPIO3_12 = P7_4,
323     GPIO3_13 = P7_5,
324     GPIO3_14 = P7_6,
325     GPIO3_15 = P7_7,
326
327     GPIO4_0 = P8_0,
328     GPIO4_1 = P8_1,
329     GPIO4_2 = P8_2,
330     GPIO4_3 = P8_3,
331     GPIO4_4 = P8_4,
332     GPIO4_5 = P8_5,
333     GPIO4_6 = P8_6,
334     GPIO4_7 = P8_7,
335     GPIO4_8 = PA_1,
336     GPIO4_9 = PA_2,
337     GPIO4_10 = PA_3,
338     GPIO4_11 = P9_6,
339     GPIO4_12 = P9_0,
340     GPIO4_13 = P9_1,
341     GPIO4_14 = P9_2,
342     GPIO4_15 = P9_3,
343
344     GPIO5_0 = P2_0,
345     GPIO5_1 = P2_1,
346     GPIO5_2 = P2_2,
347     GPIO5_3 = P2_3,
348     GPIO5_4 = P2_4,
349     GPIO5_5 = P2_5,
350     GPIO5_6 = P2_6,
351     GPIO5_7 = P2_8,
352     GPIO5_8 = P3_1,
353     GPIO5_9 = P3_2,
354     GPIO5_10 = P3_7,
355     GPIO5_11 = P3_8,
356     GPIO5_12 = P4_8,
357     GPIO5_13 = P4_9,
358     GPIO5_14 = P4_10,
359     GPIO5_15 = P6_7,
360     GPIO5_16 = P6_8,
361     GPIO5_17 = P9_4,
362     GPIO5_18 = P9_5,
363     GPIO5_19 = PA_4,
364     GPIO5_20 = PB_0,
365     GPIO5_21 = PB_1,
366     GPIO5_22 = PB_2,
367     GPIO5_23 = PB_3,
368     GPIO5_24 = PB_4,
369     GPIO5_25 = PB_5,
370     GPIO5_26 = PB_6,
371
372     GPIO6_0 = PC_1,
373     GPIO6_1 = PC_2,
374     GPIO6_2 = PC_3,
375     GPIO6_3 = PC_4,
376     GPIO6_4 = PC_5,
377     GPIO6_5 = PC_6,
378     GPIO6_6 = PC_7,
379     GPIO6_7 = PC_8,
380     GPIO6_8 = PC_9,
381     GPIO6_9 = PC_10,
382     GPIO6_10 = PC_11,
383     GPIO6_11 = PC_12,
384     GPIO6_12 = PC_13,
385     GPIO6_13 = PC_14,
386     GPIO6_14 = PD_0,
387     GPIO6_15 = PD_1,
388     GPIO6_16 = PD_2,
389     GPIO6_17 = PD_3,
390     GPIO6_18 = PD_4,
391     GPIO6_19 = PD_5,
392     GPIO6_20 = PD_6,
393     GPIO6_21 = PD_7,
394     GPIO6_22 = PD_8,
395     GPIO6_23 = PD_9,
396     GPIO6_24 = PD_10,
397     GPIO6_25 = PD_11,
398     GPIO6_26 = PD_12,
399     GPIO6_27 = PD_13,
400     GPIO6_28 = PD_14,
401     GPIO6_29 = PD_15,
402     GPIO6_30 = PD_16,
403
404     GPIO7_0 = PE_0,
405     GPIO7_1 = PE_1,
406     GPIO7_2 = PE_2,
407     GPIO7_3 = PE_3,
408     GPIO7_4 = PE_4,
409     GPIO7_5 = PE_5,
410     GPIO7_6 = PE_5,
411     GPIO7_7 = PE_7,
412     GPIO7_8 = PE_8,
413     GPIO7_9 = PE_9,
414     GPIO7_10 = PE_10,
415     GPIO7_11 = PE_11,
416     GPIO7_12 = PE_12,
417     GPIO7_13 = PE_13,
418     GPIO7_14 = PE_14,
419     GPIO7_15 = PE_15,
420     GPIO7_16 = PF_1,
421     GPIO7_17 = PF_2,
422     GPIO7_18 = PF_3,
423     GPIO7_19 = PF_5,
424     GPIO7_20 = PF_6,
425     GPIO7_21 = PF_7,
426     GPIO7_22 = PF_8,
427     GPIO7_23 = PF_9,
428     GPIO7_24 = PF_10,
429     GPIO7_25 = PF_11,
430
431     // Map mbed pin names to LPC43xx board signals
432
433     // Group 0x18 : CLKn pins
434     SFP_CLK0  = MBED_PIN(0x18, 0, 0, 0),
435     SFP_CLK1  = MBED_PIN(0x18, 1, 0, 0),
436     SFP_CLK2  = MBED_PIN(0x18, 2, 0, 0),
437     SFP_CLK3  = MBED_PIN(0x18, 3, 0, 0),
438
439     // Group 0x19 : USB1, I2C0, ADC0, ADC1
440     SFP_USB1  = MBED_PIN(0x19, 0, 0, 0),
441     SFP_I2C0  = MBED_PIN(0x19, 1, 0, 0),
442     SFP_AIO0  = MBED_PIN(0x19, 2, 0, 0), // ADC0 function select register
443     SFP_AIO1  = MBED_PIN(0x19, 3, 0, 0), // ADC1 function select register
444     SFP_AIO2  = MBED_PIN(0x19, 4, 0, 0), // Analog function select register
445
446     SFP_EMCD  = MBED_PIN(0x1A, 0, 0, 0), // EMC clock delay register
447
448     SFP_INS0  = MBED_PIN(0x1C, 0, 0, 0), // Interrupt select for pin interrupts 0 to 3
449     SFP_INS1  = MBED_PIN(0x1C, 1, 0, 0), // Interrupt select for pin interrupts 4 to 7
450
451     // Dedicated pin (no GPIO)
452     P_DED = MBED_PIN(0, 0, NO_GPIO, 0),
453
454     // Not connected
455     NC = (int)0xFFFFFFFF,
456
457     // ---------- Micromint Bambino 200/200E/210/210E (LQFP144) ----------
458     // Base headers - J8, J9, J10 on Bambino 210/210E
459     //                n/p = not populated, n/a = not available
460     //              210E    210     200E    200
461     //              ----    ----    ----    ----
462     p15 = P7_4,  // J8-1    J8-1    S4-3    S4-3
463     p16 = P7_5,  // J8-2    J8-2    S4-4    S4-4
464     p17 = P4_1,  // J8-3    J8-3    S3-4    S3-4
465     p18 = P7_7,  // J8-4    J8-4    S4-5    S4-5
466     p19 = P4_3,  // J8-5*   J8-5*   S3-4    S3-3
467     p20 = P4_4,  // J8-6*   J8-6*   S1-5    S1-5
468     p20b = PF_8, // J8-6**  J8-6**  S3-5    S3-5
469                  // (*)  if p20 is configured as DAC, ADC is not available for p19
470                  // (**) requires JP2 mod
471
472     p21 = P6_5,  // J9-1    J9-1    S2-5    S2-5
473     p22 = P6_4,  // J9-2    J9-2    S2=4    S2-4
474     p23 = P1_7,  // J9-3    J9-3    S2-3    S2-3
475     p24 = P4_0,  // J9-4    J9-4    S3-7    S3-7
476     p25 = P6_9,  // J9-5    J9-5    S8-7    n/p
477     p26 = P5_5,  // J9-6    J9-6    S3-8    S3-8
478     p27 = P5_7,  // J9-7    J9-7    S3-9    S3-9
479     p28 = P7_6,  // J9-8    J9-8    S4-6    S4-6
480
481     p29 = P6_12, // J10-1   J10-1   S10-3   n/p
482     p30 = P5_0,  // J10-2   J10-2   S1-4    S1-4
483     p31 = P4_6,  // J10-3   J10-3   S2-6    S2-6
484     p32 = P4_8,  // J10-4   J10-4   S2-7    S2-7
485     p33 = P4_9,  // J10-5   J10-5   S2-8    S2-8
486     p34 = P4_10, // J10-6   J10-6   S2-9    S2-9
487     p37 = P2_3,  // J10-9   J10-9   S4-8    S4-8
488     p38 = P2_4,  // J10-10  J10-10  S4-9    S4-9
489
490     // Extended headers - J11, J12, J13, J14 on Bambino 210E
491     //              210E    210     200E    200
492     //              ----    ----    ----    ----
493     p47 = P6_3,  // J11-1   n/p     S7-5    n/p
494     p48 = P6_6,  // J11-2   n/p     S6-7    n/p
495     p49 = P6_7,  // J11-3   n/p     S6-8    n/p
496     p50 = P6_8,  // J11-4   n/p     S6-9    n/p
497     p53 = P2_2,  // J11-7   n/p     S7-7    n/p
498     p54 = P2_1,  // J11-8   n/p     S7-3    n/p
499
500     p55 = PF_10, // J12-1   n/p     n/a     n/a
501     p56 = PF_7,  // J12-2   n/p     n/a     n/a
502     p57 = P2_6,  // J12-3   n/p     S8-6    n/p
503     p58 = P2_8,  // J12-4   n/p     S8-3    n/p
504     p59 = P6_10, // J12-5   n/p     S7-8    n/p
505     p60 = P2_9,  // J12-6   n/p     S9-3    n/p
506
507     p61 = P7_3,  // J13-1   n/p     S7-9    n/p
508     p62 = P3_2,  // J13-2   n/p     S9-4    n/p
509     p63 = P7_2,  // J13-3   n/p     S4-7    S4-7
510     p64 = P3_1,  // J13-4   n/p     S9-5    n/p
511     p65 = P7_1,  // J13-5   n/p     S9-8    n/p
512     p66 = P7_0,  // J13-6   n/p     S9-9    n/p
513     p67 = P4_2,  // J13-7   n/p     S4-6    S4-6
514     p68 = P4_5,  // J13-8   n/p     S1-3    S1-3
515
516     p69 = P2_13, // J14-1   n/p     S9-7    n/p
517     p70 = P2_12, // J14-2   n/p     S9-6    n/p
518     p71 = P9_6,  // J14-3   n/p     S6-6    n/p
519     p72 = P9_5,  // J14-4   n/p     S7-4    n/p
520     p73 = P5_3,  // J14-5   n/p     S6-5    n/p
521     p74 = P1_8,  // J14-6   n/p     S6-4    n/p
522     p75 = P1_5,  // J14-7   n/p     S10-6   n/p
523     p76 = P1_4,  // J14-8   n/p     S10-7   n/p
524     p77 = P1_3,  // J14-9   n/p     S10-8   n/p
525     p78 = PF_4,  // J14-10  n/p     S10-9   n/p
526
527     // J16 - PMOD-SSP header (not populated, field installable)
528     p80 = P1_0,  // J16-1   J16-1   S1-6    S1-6
529     p81 = P1_2,  // J16-2   J16-2   S1-7    S1-7
530     p82 = P1_1,  // J16-3   J16-3   S1-8    S1-8
531     p83 = P3_0,  // J16-4   J16-4   S1-9    S1-9
532
533     // Arduino pins - J8, J9, J10
534     //              210E    210     200E    200
535     //              ----    ----    ----    ----
536     D0  = p21,  // J9-1     J9-1    S2-5    S2-5
537     D1  = p22,  // J9-2     J9-2    S2-4    S2-4
538     D2  = p23,  // J9-3     J9-3    S2-3    S2-3
539     D3  = p24,  // J9-4     J9-4    S3-7    S3-7
540     D4  = p25,  // J9-5     J9-5    S8-7    n/p
541     D5  = p26,  // J9-6     J9-6    S3-8    S3-8
542     D6  = p27,  // J9-7     J9-7    S3-9    S3-9
543     D7  = p28,  // J9-8     J9-8    S4-6    S4-6
544
545     D8  = p29,  // J10-1    J10-1   S10-1   n/p
546     D9  = p30,  // J10-2    J10-2   S1-4    S1-4
547     D10 = p31,  // J10-3    J10-3   S2-6    S2-6
548     D11 = p32,  // J10-4    J10-4   S2-7    S2-7
549     D12 = p33,  // J10-5    J10-5   S2-8    S2-8
550     D13 = p34,  // J10-6    J10-6   S2-9    S2-9
551     D16 = p37,  // J10-9    J10-9   S4-8    S4-8
552     D17 = p38,  // J10-10   J10-10  S4-9    S4-9
553
554     A0  = p15,  // J8-1     J8-1    S4-3    S4-3
555     A1  = p16,  // J8-2     J8-2    S4-4    S4-4
556     A2  = p17,  // J8-3     J8-3    S3-4    S3-4
557     A3  = p18,  // J8-4     J8-4    S3-4    S3-4
558     A4  = p19,  // J8-5*    J8-5*   S3-3    S3-3
559     A5  = p20,  // J8-6*    J8-6*   S1-5    S1-5
560     A5b = p20b, // J8-6**   J8-6**  S3-5    S3-5
561                 // (*)  if A5 is configured as DAC, ADC is not available for A4
562                 // (**) requires JP2 mod
563
564     // Extended Arduino pins - J11, J12, J13, J14
565     //             210E     210     200E    200
566     //             ----     ----    ----    ----
567     D20 = p61,  // J13-1    n/p     S7-9    n/p
568     D21 = p62,  // J13-2    n/p     S9-4    n/p
569     D22 = p63,  // J13-3    n/p     S4-7    S4-7
570     D23 = p64,  // J13-4    n/p     S9-5    n/p
571     D24 = p65,  // J13-5    n/p     S9-8    n/p
572     D25 = p66,  // J13-6    n/p     S9-9    n/p
573     D26 = p67,  // J13-7    n/p     S3-7    S3-7
574     D27 = p68,  // J13-8    n/p     S1-3    S1-3
575
576     D30 = p69,  // J14-1    n/p     S9-7    n/p
577     D31 = p70,  // J14-2    n/p     S9-6    n/p
578     D32 = p71,  // J14-3    n/p     S6-6    n/p
579     D33 = p72,  // J14-4    n/p     S7-4    n/p
580     D34 = p73,  // J14-5    n/p     S6-5    n/p
581     D35 = p74,  // J14-6    n/p     S6-4    n/p
582     D36 = p75,  // J14-7    n/p     S10-6   n/p
583     D37 = p76,  // J14-8    n/p     S10-7   n/p
584     D38 = p77,  // J14-9    n/p     S10-8   n/p
585     D39 = p78,  // J14-10   n/p     S10-9   n/p
586
587     D40 = p47,  // J11-1    n/p     S7-5    n/p
588     D41 = p48,  // J11-2    n/p     S6-7    n/p
589     D42 = p49,  // J11-3    n/p     S6-8    n/p
590     D43 = p50,  // J11-4    n/p     S6-9    n/p
591     D46 = p53,  // J11-7    n/p     S7-7    n/p
592     D47 = p54,  // J11-8    n/p     S7-3    n/p
593
594     D52 = p57,  // J12-3    n/p     S8-6    n/p
595     D53 = p58,  // J12-4    n/p     S8-3    n/p
596     D54 = p59,  // J12-5    n/p     S7-8    n/p
597     D55 = p60,  // J12-6    n/p     S9-3    n/p
598
599     A6  = p55,  // J12-1    n/p     n/a     n/a
600     A7  = p56,  // J12-2    n/p     n/a     n/a
601
602     // User interfaces: LEDs, buttons
603     //                   210E    210     200E    200
604     //                   ----    ----    ----    ----
605     LED1 = P6_11,     // 210/210E/200e/200
606     LED2 = P2_5,      // 210/210E/200e/200
607     LED3 = P6_1,      // 210/210E only   S6-3    n/p
608     LED4 = P6_2,      // 210/210E only   S7-6    n/p
609
610     LED_YELLOW = LED1,
611     LED_GREEN = LED2,
612     LED_RED = LED3,
613     LED_BLUE = LED4,
614
615     BTN1 = P2_7,
616
617     // Serial pins - UART, SPI, I2C
618     //                   210E    210     200E    200
619     //                   ----    ----    ----    ----
620     UART0_TX = P6_4,  // J9-2    J9-2    S2-4    S2-4
621     UART0_RX = P6_5,  // J9-1    J9-1    S2-5    S2-5
622     UART1_TX = P5_6,  // XBEE    n/p     S5-4/XBEE S5-4
623     UART1_RX = P1_14, // XBEE    n/p     S5-5/XBEE S5-5
624     UART2_TX = P2_10, // MBEDHDK MBEDHDK S10-4   n/p
625     UART2_RX = P2_11, // MBEDHDK MBEDHDK S10-5   n/p
626     UART3_TX = P2_3,  // J10-9   n/p     S4-8    S4-8
627     UART3_RX = P2_4,  // J10-10  n/p     S4-9    S4-9
628
629     COM1_TX = UART0_TX,
630     COM1_RX = UART0_RX,
631     COM2_TX = UART1_TX,
632     COM2_RX = UART1_RX,
633     COM3_TX = UART2_TX,
634     COM3_RX = UART2_RX,
635     COM4_TX = UART3_TX,
636     COM4_RX = UART3_RX,
637
638     //                   210E    210     200E    200
639     //                   ----    ----    ----    ----
640     SPI0_SCK  = P3_0, // J16-4   n/p     S1-9    S1-9
641     SPI0_MISO = P1_1, // J16-3   n/p     S1-8    S1-8
642     SPI0_MOSI = P1_2, // J16-2   n/p     S1-7    S1-7
643     SPI0_SSEL = P1_0, // J16-1   n/p     S1-6    S1-6
644     SPI1_SCK  = PF_4, // J14-10  n/p     S10-9   n/p
645     SPI1_MISO = P1_3, // J14-9   n/p     S10-8   n/p
646     SPI1_MOSI = P1_4, // J14-8   n/p     S10-7   n/p
647     SPI1_SSEL = P1_5, // J14-7   n/p     S10-6   n/p
648
649     I2C0_SDA = P_DED, // J15-3   J15-3   S8-8    n/p
650     I2C0_SCL = P_DED, // J15-1   J15-1   S8-9    n/p
651     I2C1_SDA = P2_3,  // J10-9   J10-9   S4-8    S4-8
652     I2C1_SCL = P2_4,  // J10-10  J10-10  S4-9    S4-9
653
654     // Analog pins
655     ADC0 = P7_4,      // J8-1     J8-1    S4-3    S4-3
656     ADC1 = P7_5,      // J8-2     J8-2    S4-4    S4-4
657     ADC2 = P4_1,      // J8-3     J8-3    S3-4    S3-4
658     ADC3 = P7_7,      // J8-4     J8-4    S3-4    S3-4
659     ADC4 = P4_3,      // J8-5*    J8-5*   S3-3    S3-3
660     ADC5 = PF_8,      // J8-6**   J8-6**  S1-5    S1-5
661     ADC6 = PF_10,     // J12-1    n/p     n/a     n/a
662     ADC7 = PF_7,      // J12-2    n/p     n/a     n/a
663     DAC0 = P4_4,      // J8-6*    J8-6*   S3-5    S3-5
664                       // (*)  if DAC0 is configured, ADC4 is not available
665                       // (**) ADC5 requires JP2 mod
666
667     // USB pins
668     //                   210E    210     200E    200
669     //                   ----    ----    ----    ----
670     USBTX = UART2_TX, // MBEDHDK MBEDHDK S10-4   n/p
671     USBRX = UART2_RX, // MBEDHDK MBEDHDK S10-5   n/p
672
673     // PWM pins
674     //                   210E    210     200E    200
675     //                   ----    ----    ----    ----
676     PWM1 = P1_7,      // J9-3    J9-3    S2-3    S2-3
677     PWM2 = P7_6,      // J9-8    J9-8    S4-6    S4-6
678     PWM3 = P6_12,     // J10-1   J10-1   S10-3   n/p
679     PWM4 = P4_6,      // J10-3   J10-3   S2-6    S2-6
680     PWM5 = P7_5,      // J8-2    J8-2    S4-4    S4-4
681     PWM6 = P4_1,      // J8-3    J8-3    S3-4    S3-4
682     PWM7 = P7_7,      // J8-4    J8-4    S4-5    S4-5
683     PWM8 = P2_8,      // J12-4   n/p     S8-3    n/p
684     PWM9 = P2_9,      // J12-6   n/p     S9-3    n/p
685     PWM10 = P7_1,     // J13-5   n/p     S9-8    n/p
686     PWM11 = P7_0,     // J13-6   n/p     S9-9    n/p
687     PWM12 = P1_5,     // J14-7   n/p     S10-6   n/p
688
689     // ---------- End of Micromint Bambino ----------
690 } PinName;
691
692 typedef enum {
693     PullUp = 0,
694     PullDown = 3,
695     PullNone = 2,
696     Repeater = 1,
697     OpenDrain = 4,
698     PullDefault = PullDown
699 } PinMode;
700
701 #ifdef __cplusplus
702 }
703 #endif
704
705 #endif