diff options
author | Joshua Henderson <joshua.henderson@microchip.com> | 2016-02-01 17:48:30 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-02-05 17:54:47 -0500 |
commit | 2ba384e6c3810733e14e183dedc3406f402a686f (patch) | |
tree | 4e4c1408bfee94f0544f6c20ca8a8ffad3eeaeb0 | |
parent | ad2db351e77d3022f61934406fbefce1616b6f76 (diff) |
pinctrl: pinctrl-pic32: Add PIC32 pin control driver
Add a driver for the pin controller present on the Microchip PIC32
including the specific variant PIC32MZDA. This driver provides pinmux
and pinconfig operations as well as GPIO and IRQ chips for the GPIO
banks.
Signed-off-by: Joshua Henderson <joshua.henderson@microchip.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/pinctrl/Kconfig | 17 | ||||
-rw-r--r-- | drivers/pinctrl/Makefile | 1 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-pic32.c | 2312 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-pic32.h | 141 |
4 files changed, 2471 insertions, 0 deletions
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index 6ba67a619062..a4c07394e313 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig | |||
@@ -207,6 +207,23 @@ config PINCTRL_PALMAS | |||
207 | open drain configuration for the Palmas series devices like | 207 | open drain configuration for the Palmas series devices like |
208 | TPS65913, TPS80036 etc. | 208 | TPS65913, TPS80036 etc. |
209 | 209 | ||
210 | config PINCTRL_PIC32 | ||
211 | bool "Microchip PIC32 pin controller driver" | ||
212 | depends on OF | ||
213 | depends on MACH_PIC32 | ||
214 | select PINMUX | ||
215 | select GENERIC_PINCONF | ||
216 | select GPIOLIB_IRQCHIP | ||
217 | select OF_GPIO | ||
218 | help | ||
219 | This is the pin controller and gpio driver for Microchip PIC32 | ||
220 | microcontrollers. This option is selected automatically when specific | ||
221 | machine and arch are selected to build. | ||
222 | |||
223 | config PINCTRL_PIC32MZDA | ||
224 | def_bool y if PIC32MZDA | ||
225 | select PINCTRL_PIC32 | ||
226 | |||
210 | config PINCTRL_ZYNQ | 227 | config PINCTRL_ZYNQ |
211 | bool "Pinctrl driver for Xilinx Zynq" | 228 | bool "Pinctrl driver for Xilinx Zynq" |
212 | depends on ARCH_ZYNQ | 229 | depends on ARCH_ZYNQ |
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile index e4e673e2a448..8adc235e1a96 100644 --- a/drivers/pinctrl/Makefile +++ b/drivers/pinctrl/Makefile | |||
@@ -18,6 +18,7 @@ obj-$(CONFIG_PINCTRL_DIGICOLOR) += pinctrl-digicolor.o | |||
18 | obj-$(CONFIG_PINCTRL_FALCON) += pinctrl-falcon.o | 18 | obj-$(CONFIG_PINCTRL_FALCON) += pinctrl-falcon.o |
19 | obj-$(CONFIG_PINCTRL_MESON) += meson/ | 19 | obj-$(CONFIG_PINCTRL_MESON) += meson/ |
20 | obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o | 20 | obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o |
21 | obj-$(CONFIG_PINCTRL_PIC32) += pinctrl-pic32.o | ||
21 | obj-$(CONFIG_PINCTRL_PISTACHIO) += pinctrl-pistachio.o | 22 | obj-$(CONFIG_PINCTRL_PISTACHIO) += pinctrl-pistachio.o |
22 | obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o | 23 | obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o |
23 | obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o | 24 | obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o |
diff --git a/drivers/pinctrl/pinctrl-pic32.c b/drivers/pinctrl/pinctrl-pic32.c new file mode 100644 index 000000000000..0b07d4bdab95 --- /dev/null +++ b/drivers/pinctrl/pinctrl-pic32.c | |||
@@ -0,0 +1,2312 @@ | |||
1 | /* | ||
2 | * PIC32 pinctrl driver | ||
3 | * | ||
4 | * Joshua Henderson, <joshua.henderson@microchip.com> | ||
5 | * Copyright (C) 2015 Microchip Technology Inc. All rights reserved. | ||
6 | * | ||
7 | * This program is free software; you can distribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License (Version 2) as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
14 | * for more details. | ||
15 | */ | ||
16 | #include <linux/clk.h> | ||
17 | #include <linux/gpio/driver.h> | ||
18 | #include <linux/interrupt.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <linux/irq.h> | ||
21 | #include <linux/of.h> | ||
22 | #include <linux/of_device.h> | ||
23 | #include <linux/pinctrl/pinconf.h> | ||
24 | #include <linux/pinctrl/pinconf-generic.h> | ||
25 | #include <linux/pinctrl/pinctrl.h> | ||
26 | #include <linux/pinctrl/pinmux.h> | ||
27 | #include <linux/platform_device.h> | ||
28 | #include <linux/slab.h> | ||
29 | #include <linux/spinlock.h> | ||
30 | |||
31 | #include <asm/mach-pic32/pic32.h> | ||
32 | |||
33 | #include "pinctrl-utils.h" | ||
34 | #include "pinctrl-pic32.h" | ||
35 | |||
36 | #define PINS_PER_BANK 16 | ||
37 | |||
38 | #define PIC32_CNCON_EDGE 11 | ||
39 | #define PIC32_CNCON_ON 15 | ||
40 | |||
41 | #define PIN_CONFIG_MICROCHIP_DIGITAL (PIN_CONFIG_END + 1) | ||
42 | #define PIN_CONFIG_MICROCHIP_ANALOG (PIN_CONFIG_END + 2) | ||
43 | |||
44 | static const struct pinconf_generic_params pic32_mpp_bindings[] = { | ||
45 | {"microchip,digital", PIN_CONFIG_MICROCHIP_DIGITAL, 0}, | ||
46 | {"microchip,analog", PIN_CONFIG_MICROCHIP_ANALOG, 0}, | ||
47 | }; | ||
48 | |||
49 | #define GPIO_BANK_START(bank) ((bank) * PINS_PER_BANK) | ||
50 | |||
51 | struct pic32_function { | ||
52 | const char *name; | ||
53 | const char * const *groups; | ||
54 | unsigned int ngroups; | ||
55 | }; | ||
56 | |||
57 | struct pic32_pin_group { | ||
58 | const char *name; | ||
59 | unsigned int pin; | ||
60 | struct pic32_desc_function *functions; | ||
61 | }; | ||
62 | |||
63 | struct pic32_desc_function { | ||
64 | const char *name; | ||
65 | u32 muxreg; | ||
66 | u32 muxval; | ||
67 | }; | ||
68 | |||
69 | struct pic32_gpio_bank { | ||
70 | void __iomem *reg_base; | ||
71 | struct gpio_chip gpio_chip; | ||
72 | struct irq_chip irq_chip; | ||
73 | struct clk *clk; | ||
74 | }; | ||
75 | |||
76 | struct pic32_pinctrl { | ||
77 | void __iomem *reg_base; | ||
78 | struct device *dev; | ||
79 | struct pinctrl_dev *pctldev; | ||
80 | const struct pinctrl_pin_desc *pins; | ||
81 | unsigned int npins; | ||
82 | const struct pic32_function *functions; | ||
83 | unsigned int nfunctions; | ||
84 | const struct pic32_pin_group *groups; | ||
85 | unsigned int ngroups; | ||
86 | struct pic32_gpio_bank *gpio_banks; | ||
87 | unsigned int nbanks; | ||
88 | struct clk *clk; | ||
89 | }; | ||
90 | |||
91 | static const struct pinctrl_pin_desc pic32_pins[] = { | ||
92 | PINCTRL_PIN(0, "A0"), | ||
93 | PINCTRL_PIN(1, "A1"), | ||
94 | PINCTRL_PIN(2, "A2"), | ||
95 | PINCTRL_PIN(3, "A3"), | ||
96 | PINCTRL_PIN(4, "A4"), | ||
97 | PINCTRL_PIN(5, "A5"), | ||
98 | PINCTRL_PIN(6, "A6"), | ||
99 | PINCTRL_PIN(7, "A7"), | ||
100 | PINCTRL_PIN(8, "A8"), | ||
101 | PINCTRL_PIN(9, "A9"), | ||
102 | PINCTRL_PIN(10, "A10"), | ||
103 | PINCTRL_PIN(11, "A11"), | ||
104 | PINCTRL_PIN(12, "A12"), | ||
105 | PINCTRL_PIN(13, "A13"), | ||
106 | PINCTRL_PIN(14, "A14"), | ||
107 | PINCTRL_PIN(15, "A15"), | ||
108 | PINCTRL_PIN(16, "B0"), | ||
109 | PINCTRL_PIN(17, "B1"), | ||
110 | PINCTRL_PIN(18, "B2"), | ||
111 | PINCTRL_PIN(19, "B3"), | ||
112 | PINCTRL_PIN(20, "B4"), | ||
113 | PINCTRL_PIN(21, "B5"), | ||
114 | PINCTRL_PIN(22, "B6"), | ||
115 | PINCTRL_PIN(23, "B7"), | ||
116 | PINCTRL_PIN(24, "B8"), | ||
117 | PINCTRL_PIN(25, "B9"), | ||
118 | PINCTRL_PIN(26, "B10"), | ||
119 | PINCTRL_PIN(27, "B11"), | ||
120 | PINCTRL_PIN(28, "B12"), | ||
121 | PINCTRL_PIN(29, "B13"), | ||
122 | PINCTRL_PIN(30, "B14"), | ||
123 | PINCTRL_PIN(31, "B15"), | ||
124 | PINCTRL_PIN(33, "C1"), | ||
125 | PINCTRL_PIN(34, "C2"), | ||
126 | PINCTRL_PIN(35, "C3"), | ||
127 | PINCTRL_PIN(36, "C4"), | ||
128 | PINCTRL_PIN(44, "C12"), | ||
129 | PINCTRL_PIN(45, "C13"), | ||
130 | PINCTRL_PIN(46, "C14"), | ||
131 | PINCTRL_PIN(47, "C15"), | ||
132 | PINCTRL_PIN(48, "D0"), | ||
133 | PINCTRL_PIN(49, "D1"), | ||
134 | PINCTRL_PIN(50, "D2"), | ||
135 | PINCTRL_PIN(51, "D3"), | ||
136 | PINCTRL_PIN(52, "D4"), | ||
137 | PINCTRL_PIN(53, "D5"), | ||
138 | PINCTRL_PIN(54, "D6"), | ||
139 | PINCTRL_PIN(55, "D7"), | ||
140 | PINCTRL_PIN(57, "D9"), | ||
141 | PINCTRL_PIN(58, "D10"), | ||
142 | PINCTRL_PIN(59, "D11"), | ||
143 | PINCTRL_PIN(60, "D12"), | ||
144 | PINCTRL_PIN(61, "D13"), | ||
145 | PINCTRL_PIN(62, "D14"), | ||
146 | PINCTRL_PIN(63, "D15"), | ||
147 | PINCTRL_PIN(64, "E0"), | ||
148 | PINCTRL_PIN(65, "E1"), | ||
149 | PINCTRL_PIN(66, "E2"), | ||
150 | PINCTRL_PIN(67, "E3"), | ||
151 | PINCTRL_PIN(68, "E4"), | ||
152 | PINCTRL_PIN(69, "E5"), | ||
153 | PINCTRL_PIN(70, "E6"), | ||
154 | PINCTRL_PIN(71, "E7"), | ||
155 | PINCTRL_PIN(72, "E8"), | ||
156 | PINCTRL_PIN(73, "E9"), | ||
157 | PINCTRL_PIN(80, "F0"), | ||
158 | PINCTRL_PIN(81, "F1"), | ||
159 | PINCTRL_PIN(82, "F2"), | ||
160 | PINCTRL_PIN(83, "F3"), | ||
161 | PINCTRL_PIN(84, "F4"), | ||
162 | PINCTRL_PIN(85, "F5"), | ||
163 | PINCTRL_PIN(88, "F8"), | ||
164 | PINCTRL_PIN(92, "F12"), | ||
165 | PINCTRL_PIN(93, "F13"), | ||
166 | PINCTRL_PIN(96, "G0"), | ||
167 | PINCTRL_PIN(97, "G1"), | ||
168 | PINCTRL_PIN(102, "G6"), | ||
169 | PINCTRL_PIN(103, "G7"), | ||
170 | PINCTRL_PIN(104, "G8"), | ||
171 | PINCTRL_PIN(105, "G9"), | ||
172 | PINCTRL_PIN(108, "G12"), | ||
173 | PINCTRL_PIN(109, "G13"), | ||
174 | PINCTRL_PIN(110, "G14"), | ||
175 | PINCTRL_PIN(111, "G15"), | ||
176 | PINCTRL_PIN(112, "H0"), | ||
177 | PINCTRL_PIN(113, "H1"), | ||
178 | PINCTRL_PIN(114, "H2"), | ||
179 | PINCTRL_PIN(115, "H3"), | ||
180 | PINCTRL_PIN(116, "H4"), | ||
181 | PINCTRL_PIN(117, "H5"), | ||
182 | PINCTRL_PIN(118, "H6"), | ||
183 | PINCTRL_PIN(119, "H7"), | ||
184 | PINCTRL_PIN(120, "H8"), | ||
185 | PINCTRL_PIN(121, "H9"), | ||
186 | PINCTRL_PIN(122, "H10"), | ||
187 | PINCTRL_PIN(123, "H11"), | ||
188 | PINCTRL_PIN(124, "H12"), | ||
189 | PINCTRL_PIN(125, "H13"), | ||
190 | PINCTRL_PIN(126, "H14"), | ||
191 | PINCTRL_PIN(127, "H15"), | ||
192 | PINCTRL_PIN(128, "J0"), | ||
193 | PINCTRL_PIN(129, "J1"), | ||
194 | PINCTRL_PIN(130, "J2"), | ||
195 | PINCTRL_PIN(131, "J3"), | ||
196 | PINCTRL_PIN(132, "J4"), | ||
197 | PINCTRL_PIN(133, "J5"), | ||
198 | PINCTRL_PIN(134, "J6"), | ||
199 | PINCTRL_PIN(135, "J7"), | ||
200 | PINCTRL_PIN(136, "J8"), | ||
201 | PINCTRL_PIN(137, "J9"), | ||
202 | PINCTRL_PIN(138, "J10"), | ||
203 | PINCTRL_PIN(139, "J11"), | ||
204 | PINCTRL_PIN(140, "J12"), | ||
205 | PINCTRL_PIN(141, "J13"), | ||
206 | PINCTRL_PIN(142, "J14"), | ||
207 | PINCTRL_PIN(143, "J15"), | ||
208 | PINCTRL_PIN(144, "K0"), | ||
209 | PINCTRL_PIN(145, "K1"), | ||
210 | PINCTRL_PIN(146, "K2"), | ||
211 | PINCTRL_PIN(147, "K3"), | ||
212 | PINCTRL_PIN(148, "K4"), | ||
213 | PINCTRL_PIN(149, "K5"), | ||
214 | PINCTRL_PIN(150, "K6"), | ||
215 | PINCTRL_PIN(151, "K7"), | ||
216 | }; | ||
217 | |||
218 | static const char * const pic32_input0_group[] = { | ||
219 | "D2", "G8", "F4", "F1", "B9", "B10", "C14", "B5", | ||
220 | "C1", "D14", "G1", "A14", "D6", | ||
221 | }; | ||
222 | |||
223 | static const char * const pic32_input1_group[] = { | ||
224 | "D3", "G7", "F5", "D11", "F0", "B1", "E5", "C13", | ||
225 | "B3", "C4", "G0", "A15", "D7", | ||
226 | }; | ||
227 | |||
228 | static const char * const pic32_input2_group[] = { | ||
229 | "D9", "G6", "B8", "B15", "D4", "B0", "E3", "B7", | ||
230 | "F12", "D12", "F8", "C3", "E9", | ||
231 | }; | ||
232 | |||
233 | static const char * const pic32_input3_group[] = { | ||
234 | "G9", "B14", "D0", "B6", "D5", "B2", "F3", "F13", | ||
235 | "F2", "C2", "E8", | ||
236 | }; | ||
237 | |||
238 | static const char * const pic32_output0_group[] = { | ||
239 | "D2", "G8", "F4", "D10", "F1", "B9", "B10", "C14", | ||
240 | "B5", "C1", "D14", "G1", "A14", "D6", | ||
241 | }; | ||
242 | |||
243 | static const char * const pic32_output0_1_group[] = { | ||
244 | "D2", "G8", "F4", "D10", "F1", "B9", "B10", "C14", | ||
245 | "B5", "C1", "D14", "G1", "A14", "D6", | ||
246 | "D3", "G7", "F5", "D11", "F0", "B1", "E5", "C13", | ||
247 | "B3", "C4", "D15", "G0", "A15", "D7", | ||
248 | }; | ||
249 | |||
250 | static const char *const pic32_output1_group[] = { | ||
251 | "D3", "G7", "F5", "D11", "F0", "B1", "E5", "C13", | ||
252 | "B3", "C4", "D15", "G0", "A15", "D7", | ||
253 | }; | ||
254 | |||
255 | static const char *const pic32_output1_3_group[] = { | ||
256 | "D3", "G7", "F5", "D11", "F0", "B1", "E5", "C13", | ||
257 | "B3", "C4", "D15", "G0", "A15", "D7", | ||
258 | "G9", "B14", "D0", "B6", "D5", "B2", "F3", "F13", | ||
259 | "C2", "E8", "F2", | ||
260 | }; | ||
261 | |||
262 | static const char * const pic32_output2_group[] = { | ||
263 | "D9", "G6", "B8", "B15", "D4", "B0", "E3", "B7", | ||
264 | "F12", "D12", "F8", "C3", "E9", | ||
265 | }; | ||
266 | |||
267 | static const char * const pic32_output2_3_group[] = { | ||
268 | "D9", "G6", "B8", "B15", "D4", "B0", "E3", "B7", | ||
269 | "F12", "D12", "F8", "C3", "E9", | ||
270 | "G9", "B14", "D0", "B6", "D5", "B2", "F3", "F13", | ||
271 | "C2", "E8", "F2", | ||
272 | }; | ||
273 | |||
274 | static const char * const pic32_output3_group[] = { | ||
275 | "G9", "B14", "D0", "B6", "D5", "B2", "F3", "F13", | ||
276 | "C2", "E8", "F2", | ||
277 | }; | ||
278 | |||
279 | #define FUNCTION(_name, _gr) \ | ||
280 | { \ | ||
281 | .name = #_name, \ | ||
282 | .groups = pic32_##_gr##_group, \ | ||
283 | .ngroups = ARRAY_SIZE(pic32_##_gr##_group), \ | ||
284 | } | ||
285 | |||
286 | static const struct pic32_function pic32_functions[] = { | ||
287 | FUNCTION(INT3, input0), | ||
288 | FUNCTION(T2CK, input0), | ||
289 | FUNCTION(T6CK, input0), | ||
290 | FUNCTION(IC3, input0), | ||
291 | FUNCTION(IC7, input0), | ||
292 | FUNCTION(U1RX, input0), | ||
293 | FUNCTION(U2CTS, input0), | ||
294 | FUNCTION(U5RX, input0), | ||
295 | FUNCTION(U6CTS, input0), | ||
296 | FUNCTION(SDI1, input0), | ||
297 | FUNCTION(SDI3, input0), | ||
298 | FUNCTION(SDI5, input0), | ||
299 | FUNCTION(SS6IN, input0), | ||
300 | FUNCTION(REFCLKI1, input0), | ||
301 | FUNCTION(INT4, input1), | ||
302 | FUNCTION(T5CK, input1), | ||
303 | FUNCTION(T7CK, input1), | ||
304 | FUNCTION(IC4, input1), | ||
305 | FUNCTION(IC8, input1), | ||
306 | FUNCTION(U3RX, input1), | ||
307 | FUNCTION(U4CTS, input1), | ||
308 | FUNCTION(SDI2, input1), | ||
309 | FUNCTION(SDI4, input1), | ||
310 | FUNCTION(C1RX, input1), | ||
311 | FUNCTION(REFCLKI4, input1), | ||
312 | FUNCTION(INT2, input2), | ||
313 | FUNCTION(T3CK, input2), | ||
314 | FUNCTION(T8CK, input2), | ||
315 | FUNCTION(IC2, input2), | ||
316 | FUNCTION(IC5, input2), | ||
317 | FUNCTION(IC9, input2), | ||
318 | FUNCTION(U1CTS, input2), | ||
319 | FUNCTION(U2RX, input2), | ||
320 | FUNCTION(U5CTS, input2), | ||
321 | FUNCTION(SS1IN, input2), | ||
322 | FUNCTION(SS3IN, input2), | ||
323 | FUNCTION(SS4IN, input2), | ||
324 | FUNCTION(SS5IN, input2), | ||
325 | FUNCTION(C2RX, input2), | ||
326 | FUNCTION(INT1, input3), | ||
327 | FUNCTION(T4CK, input3), | ||
328 | FUNCTION(T9CK, input3), | ||
329 | FUNCTION(IC1, input3), | ||
330 | FUNCTION(IC6, input3), | ||
331 | FUNCTION(U3CTS, input3), | ||
332 | FUNCTION(U4RX, input3), | ||
333 | FUNCTION(U6RX, input3), | ||
334 | FUNCTION(SS2IN, input3), | ||
335 | FUNCTION(SDI6, input3), | ||
336 | FUNCTION(OCFA, input3), | ||
337 | FUNCTION(REFCLKI3, input3), | ||
338 | FUNCTION(U3TX, output0), | ||
339 | FUNCTION(U4RTS, output0), | ||
340 | FUNCTION(SDO1, output0_1), | ||
341 | FUNCTION(SDO2, output0_1), | ||
342 | FUNCTION(SDO3, output0_1), | ||
343 | FUNCTION(SDO5, output0_1), | ||
344 | FUNCTION(SS6OUT, output0), | ||
345 | FUNCTION(OC3, output0), | ||
346 | FUNCTION(OC6, output0), | ||
347 | FUNCTION(REFCLKO4, output0), | ||
348 | FUNCTION(C2OUT, output0), | ||
349 | FUNCTION(C1TX, output0), | ||
350 | FUNCTION(U1TX, output1), | ||
351 | FUNCTION(U2RTS, output1), | ||
352 | FUNCTION(U5TX, output1), | ||
353 | FUNCTION(U6RTS, output1), | ||
354 | FUNCTION(SDO4, output1_3), | ||
355 | FUNCTION(OC4, output1), | ||
356 | FUNCTION(OC7, output1), | ||
357 | FUNCTION(REFCLKO1, output1), | ||
358 | FUNCTION(U3RTS, output2), | ||
359 | FUNCTION(U4TX, output2), | ||
360 | FUNCTION(U6TX, output2_3), | ||
361 | FUNCTION(SS1OUT, output2), | ||
362 | FUNCTION(SS3OUT, output2), | ||
363 | FUNCTION(SS4OUT, output2), | ||
364 | FUNCTION(SS5OUT, output2), | ||
365 | FUNCTION(SDO6, output2_3), | ||
366 | FUNCTION(OC5, output2), | ||
367 | FUNCTION(OC8, output2), | ||
368 | FUNCTION(C1OUT, output2), | ||
369 | FUNCTION(REFCLKO3, output2), | ||
370 | FUNCTION(U1RTS, output3), | ||
371 | FUNCTION(U2TX, output3), | ||
372 | FUNCTION(U5RTS, output3), | ||
373 | FUNCTION(SS2OUT, output3), | ||
374 | FUNCTION(OC2, output3), | ||
375 | FUNCTION(OC1, output3), | ||
376 | FUNCTION(OC9, output3), | ||
377 | FUNCTION(C2TX, output3), | ||
378 | }; | ||
379 | |||
380 | #define PIC32_PINCTRL_GROUP(_pin, _name, ...) \ | ||
381 | { \ | ||
382 | .name = #_name, \ | ||
383 | .pin = _pin, \ | ||
384 | .functions = (struct pic32_desc_function[]){ \ | ||
385 | __VA_ARGS__, { } }, \ | ||
386 | } | ||
387 | |||
388 | #define PIC32_PINCTRL_FUNCTION(_name, _muxreg, _muxval) \ | ||
389 | { \ | ||
390 | .name = #_name, \ | ||
391 | .muxreg = _muxreg, \ | ||
392 | .muxval = _muxval, \ | ||
393 | } | ||
394 | |||
395 | static const struct pic32_pin_group pic32_groups[] = { | ||
396 | PIC32_PINCTRL_GROUP(14, A14, | ||
397 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 13), | ||
398 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 13), | ||
399 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 13), | ||
400 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 13), | ||
401 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 13), | ||
402 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 13), | ||
403 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 13), | ||
404 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 13), | ||
405 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 13), | ||
406 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 13), | ||
407 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 13), | ||
408 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 13), | ||
409 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 13), | ||
410 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 13), | ||
411 | PIC32_PINCTRL_FUNCTION(U3TX, RPA14R, 1), | ||
412 | PIC32_PINCTRL_FUNCTION(U4RTS, RPA14R, 2), | ||
413 | PIC32_PINCTRL_FUNCTION(SDO1, RPA14R, 5), | ||
414 | PIC32_PINCTRL_FUNCTION(SDO2, RPA14R, 6), | ||
415 | PIC32_PINCTRL_FUNCTION(SDO3, RPA14R, 7), | ||
416 | PIC32_PINCTRL_FUNCTION(SDO5, RPA14R, 9), | ||
417 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPA14R, 10), | ||
418 | PIC32_PINCTRL_FUNCTION(OC3, RPA14R, 11), | ||
419 | PIC32_PINCTRL_FUNCTION(OC6, RPA14R, 12), | ||
420 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPA14R, 13), | ||
421 | PIC32_PINCTRL_FUNCTION(C2OUT, RPA14R, 14), | ||
422 | PIC32_PINCTRL_FUNCTION(C1TX, RPA14R, 15)), | ||
423 | PIC32_PINCTRL_GROUP(15, A15, | ||
424 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 13), | ||
425 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 13), | ||
426 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 13), | ||
427 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 13), | ||
428 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 13), | ||
429 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 13), | ||
430 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 13), | ||
431 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 13), | ||
432 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 13), | ||
433 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 13), | ||
434 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 13), | ||
435 | PIC32_PINCTRL_FUNCTION(U1TX, RPA15R, 1), | ||
436 | PIC32_PINCTRL_FUNCTION(U2RTS, RPA15R, 2), | ||
437 | PIC32_PINCTRL_FUNCTION(U5TX, RPA15R, 3), | ||
438 | PIC32_PINCTRL_FUNCTION(U6RTS, RPA15R, 4), | ||
439 | PIC32_PINCTRL_FUNCTION(SDO1, RPA15R, 5), | ||
440 | PIC32_PINCTRL_FUNCTION(SDO2, RPA15R, 6), | ||
441 | PIC32_PINCTRL_FUNCTION(SDO3, RPA15R, 7), | ||
442 | PIC32_PINCTRL_FUNCTION(SDO4, RPA15R, 8), | ||
443 | PIC32_PINCTRL_FUNCTION(SDO5, RPA15R, 9), | ||
444 | PIC32_PINCTRL_FUNCTION(OC4, RPA15R, 11), | ||
445 | PIC32_PINCTRL_FUNCTION(OC7, RPA15R, 12), | ||
446 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPA15R, 15)), | ||
447 | PIC32_PINCTRL_GROUP(16, B0, | ||
448 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 5), | ||
449 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 5), | ||
450 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 5), | ||
451 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 5), | ||
452 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 5), | ||
453 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 5), | ||
454 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 5), | ||
455 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 5), | ||
456 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 5), | ||
457 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 5), | ||
458 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 5), | ||
459 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 5), | ||
460 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 5), | ||
461 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 5), | ||
462 | PIC32_PINCTRL_FUNCTION(U3RTS, RPB0R, 1), | ||
463 | PIC32_PINCTRL_FUNCTION(U4TX, RPB0R, 2), | ||
464 | PIC32_PINCTRL_FUNCTION(U6TX, RPB0R, 4), | ||
465 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPB0R, 5), | ||
466 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPB0R, 7), | ||
467 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPB0R, 8), | ||
468 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPB0R, 9), | ||
469 | PIC32_PINCTRL_FUNCTION(SDO6, RPB0R, 10), | ||
470 | PIC32_PINCTRL_FUNCTION(OC5, RPB0R, 11), | ||
471 | PIC32_PINCTRL_FUNCTION(OC8, RPB0R, 12), | ||
472 | PIC32_PINCTRL_FUNCTION(C1OUT, RPB0R, 14), | ||
473 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPB0R, 15)), | ||
474 | PIC32_PINCTRL_GROUP(17, B1, | ||
475 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 5), | ||
476 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 5), | ||
477 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 5), | ||
478 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 5), | ||
479 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 5), | ||
480 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 5), | ||
481 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 5), | ||
482 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 5), | ||
483 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 5), | ||
484 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 5), | ||
485 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 5), | ||
486 | PIC32_PINCTRL_FUNCTION(U1TX, RPB1R, 1), | ||
487 | PIC32_PINCTRL_FUNCTION(U2RTS, RPB1R, 2), | ||
488 | PIC32_PINCTRL_FUNCTION(U5TX, RPB1R, 3), | ||
489 | PIC32_PINCTRL_FUNCTION(U6RTS, RPB1R, 4), | ||
490 | PIC32_PINCTRL_FUNCTION(SDO1, RPB1R, 5), | ||
491 | PIC32_PINCTRL_FUNCTION(SDO2, RPB1R, 6), | ||
492 | PIC32_PINCTRL_FUNCTION(SDO3, RPB1R, 7), | ||
493 | PIC32_PINCTRL_FUNCTION(SDO4, RPB1R, 8), | ||
494 | PIC32_PINCTRL_FUNCTION(SDO5, RPB1R, 9), | ||
495 | PIC32_PINCTRL_FUNCTION(OC4, RPB1R, 11), | ||
496 | PIC32_PINCTRL_FUNCTION(OC7, RPB1R, 12), | ||
497 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPB1R, 15)), | ||
498 | PIC32_PINCTRL_GROUP(18, B2, | ||
499 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 7), | ||
500 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 7), | ||
501 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 7), | ||
502 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 7), | ||
503 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 7), | ||
504 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 7), | ||
505 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 7), | ||
506 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 7), | ||
507 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 7), | ||
508 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 7), | ||
509 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 7), | ||
510 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 7), | ||
511 | PIC32_PINCTRL_FUNCTION(U1RTS, RPB2R, 1), | ||
512 | PIC32_PINCTRL_FUNCTION(U2TX, RPB2R, 2), | ||
513 | PIC32_PINCTRL_FUNCTION(U5RTS, RPB2R, 3), | ||
514 | PIC32_PINCTRL_FUNCTION(U6TX, RPB2R, 4), | ||
515 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPB2R, 6), | ||
516 | PIC32_PINCTRL_FUNCTION(SDO4, RPB2R, 8), | ||
517 | PIC32_PINCTRL_FUNCTION(SDO6, RPB2R, 10), | ||
518 | PIC32_PINCTRL_FUNCTION(OC2, RPB2R, 11), | ||
519 | PIC32_PINCTRL_FUNCTION(OC1, RPB2R, 12), | ||
520 | PIC32_PINCTRL_FUNCTION(OC9, RPB2R, 13), | ||
521 | PIC32_PINCTRL_FUNCTION(C2TX, RPB2R, 15)), | ||
522 | PIC32_PINCTRL_GROUP(19, B3, | ||
523 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 8), | ||
524 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 8), | ||
525 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 8), | ||
526 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 8), | ||
527 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 8), | ||
528 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 8), | ||
529 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 8), | ||
530 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 8), | ||
531 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 8), | ||
532 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 8), | ||
533 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 8), | ||
534 | PIC32_PINCTRL_FUNCTION(U1TX, RPB3R, 1), | ||
535 | PIC32_PINCTRL_FUNCTION(U2RTS, RPB3R, 2), | ||
536 | PIC32_PINCTRL_FUNCTION(U5TX, RPB3R, 3), | ||
537 | PIC32_PINCTRL_FUNCTION(U6RTS, RPB3R, 4), | ||
538 | PIC32_PINCTRL_FUNCTION(SDO1, RPB3R, 5), | ||
539 | PIC32_PINCTRL_FUNCTION(SDO2, RPB3R, 6), | ||
540 | PIC32_PINCTRL_FUNCTION(SDO3, RPB3R, 7), | ||
541 | PIC32_PINCTRL_FUNCTION(SDO4, RPB3R, 8), | ||
542 | PIC32_PINCTRL_FUNCTION(SDO5, RPB3R, 9), | ||
543 | PIC32_PINCTRL_FUNCTION(OC4, RPB3R, 11), | ||
544 | PIC32_PINCTRL_FUNCTION(OC7, RPB3R, 12), | ||
545 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPB3R, 15)), | ||
546 | PIC32_PINCTRL_GROUP(21, B5, | ||
547 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 8), | ||
548 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 8), | ||
549 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 8), | ||
550 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 8), | ||
551 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 8), | ||
552 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 8), | ||
553 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 8), | ||
554 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 8), | ||
555 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 8), | ||
556 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 8), | ||
557 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 8), | ||
558 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 8), | ||
559 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 8), | ||
560 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 8), | ||
561 | PIC32_PINCTRL_FUNCTION(U3TX, RPB5R, 1), | ||
562 | PIC32_PINCTRL_FUNCTION(U4RTS, RPB5R, 2), | ||
563 | PIC32_PINCTRL_FUNCTION(SDO1, RPB5R, 5), | ||
564 | PIC32_PINCTRL_FUNCTION(SDO2, RPB5R, 6), | ||
565 | PIC32_PINCTRL_FUNCTION(SDO3, RPB5R, 7), | ||
566 | PIC32_PINCTRL_FUNCTION(SDO5, RPB5R, 9), | ||
567 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPB5R, 10), | ||
568 | PIC32_PINCTRL_FUNCTION(OC3, RPB5R, 11), | ||
569 | PIC32_PINCTRL_FUNCTION(OC6, RPB5R, 12), | ||
570 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPB5R, 13), | ||
571 | PIC32_PINCTRL_FUNCTION(C2OUT, RPB5R, 14), | ||
572 | PIC32_PINCTRL_FUNCTION(C1TX, RPB5R, 15)), | ||
573 | PIC32_PINCTRL_GROUP(22, B6, | ||
574 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 4), | ||
575 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 4), | ||
576 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 4), | ||
577 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 4), | ||
578 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 4), | ||
579 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 4), | ||
580 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 4), | ||
581 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 4), | ||
582 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 4), | ||
583 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 4), | ||
584 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 4), | ||
585 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 4), | ||
586 | PIC32_PINCTRL_FUNCTION(U1RTS, RPB6R, 1), | ||
587 | PIC32_PINCTRL_FUNCTION(U2TX, RPB6R, 2), | ||
588 | PIC32_PINCTRL_FUNCTION(U5RTS, RPB6R, 3), | ||
589 | PIC32_PINCTRL_FUNCTION(U6TX, RPB6R, 4), | ||
590 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPB6R, 6), | ||
591 | PIC32_PINCTRL_FUNCTION(SDO4, RPB6R, 8), | ||
592 | PIC32_PINCTRL_FUNCTION(SDO6, RPB6R, 10), | ||
593 | PIC32_PINCTRL_FUNCTION(OC2, RPB6R, 11), | ||
594 | PIC32_PINCTRL_FUNCTION(OC1, RPB6R, 12), | ||
595 | PIC32_PINCTRL_FUNCTION(OC9, RPB6R, 13), | ||
596 | PIC32_PINCTRL_FUNCTION(C2TX, RPB6R, 15)), | ||
597 | PIC32_PINCTRL_GROUP(23, B7, | ||
598 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 7), | ||
599 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 7), | ||
600 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 7), | ||
601 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 7), | ||
602 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 7), | ||
603 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 7), | ||
604 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 7), | ||
605 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 7), | ||
606 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 7), | ||
607 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 7), | ||
608 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 7), | ||
609 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 7), | ||
610 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 7), | ||
611 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 7), | ||
612 | PIC32_PINCTRL_FUNCTION(U3RTS, RPB7R, 1), | ||
613 | PIC32_PINCTRL_FUNCTION(U4TX, RPB7R, 2), | ||
614 | PIC32_PINCTRL_FUNCTION(U6TX, RPB7R, 4), | ||
615 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPB7R, 5), | ||
616 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPB7R, 7), | ||
617 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPB7R, 8), | ||
618 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPB7R, 9), | ||
619 | PIC32_PINCTRL_FUNCTION(SDO6, RPB7R, 10), | ||
620 | PIC32_PINCTRL_FUNCTION(OC5, RPB7R, 11), | ||
621 | PIC32_PINCTRL_FUNCTION(OC8, RPB7R, 12), | ||
622 | PIC32_PINCTRL_FUNCTION(C1OUT, RPB7R, 14), | ||
623 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPB7R, 15)), | ||
624 | PIC32_PINCTRL_GROUP(24, B8, | ||
625 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 2), | ||
626 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 2), | ||
627 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 2), | ||
628 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 2), | ||
629 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 2), | ||
630 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 2), | ||
631 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 2), | ||
632 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 2), | ||
633 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 2), | ||
634 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 2), | ||
635 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 2), | ||
636 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 2), | ||
637 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 2), | ||
638 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 2), | ||
639 | PIC32_PINCTRL_FUNCTION(U3RTS, RPB8R, 1), | ||
640 | PIC32_PINCTRL_FUNCTION(U4TX, RPB8R, 2), | ||
641 | PIC32_PINCTRL_FUNCTION(U6TX, RPB8R, 4), | ||
642 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPB8R, 5), | ||
643 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPB8R, 7), | ||
644 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPB8R, 8), | ||
645 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPB8R, 9), | ||
646 | PIC32_PINCTRL_FUNCTION(SDO6, RPB8R, 10), | ||
647 | PIC32_PINCTRL_FUNCTION(OC5, RPB8R, 11), | ||
648 | PIC32_PINCTRL_FUNCTION(OC8, RPB8R, 12), | ||
649 | PIC32_PINCTRL_FUNCTION(C1OUT, RPB8R, 14), | ||
650 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPB8R, 15)), | ||
651 | PIC32_PINCTRL_GROUP(25, B9, | ||
652 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 5), | ||
653 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 5), | ||
654 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 5), | ||
655 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 5), | ||
656 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 5), | ||
657 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 5), | ||
658 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 5), | ||
659 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 5), | ||
660 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 5), | ||
661 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 5), | ||
662 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 5), | ||
663 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 5), | ||
664 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 5), | ||
665 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 5), | ||
666 | PIC32_PINCTRL_FUNCTION(U3TX, RPB9R, 1), | ||
667 | PIC32_PINCTRL_FUNCTION(U4RTS, RPB9R, 2), | ||
668 | PIC32_PINCTRL_FUNCTION(SDO1, RPB9R, 5), | ||
669 | PIC32_PINCTRL_FUNCTION(SDO2, RPB9R, 6), | ||
670 | PIC32_PINCTRL_FUNCTION(SDO3, RPB9R, 7), | ||
671 | PIC32_PINCTRL_FUNCTION(SDO5, RPB9R, 9), | ||
672 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPB9R, 10), | ||
673 | PIC32_PINCTRL_FUNCTION(OC3, RPB9R, 11), | ||
674 | PIC32_PINCTRL_FUNCTION(OC6, RPB9R, 12), | ||
675 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPB9R, 13), | ||
676 | PIC32_PINCTRL_FUNCTION(C2OUT, RPB9R, 14), | ||
677 | PIC32_PINCTRL_FUNCTION(C1TX, RPB9R, 15)), | ||
678 | PIC32_PINCTRL_GROUP(26, B10, | ||
679 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 6), | ||
680 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 6), | ||
681 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 6), | ||
682 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 6), | ||
683 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 6), | ||
684 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 6), | ||
685 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 6), | ||
686 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 6), | ||
687 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 6), | ||
688 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 6), | ||
689 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 6), | ||
690 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 6), | ||
691 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 6), | ||
692 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 6), | ||
693 | PIC32_PINCTRL_FUNCTION(U3TX, RPB10R, 1), | ||
694 | PIC32_PINCTRL_FUNCTION(U4RTS, RPB10R, 2), | ||
695 | PIC32_PINCTRL_FUNCTION(SDO1, RPB10R, 5), | ||
696 | PIC32_PINCTRL_FUNCTION(SDO2, RPB10R, 6), | ||
697 | PIC32_PINCTRL_FUNCTION(SDO3, RPB10R, 7), | ||
698 | PIC32_PINCTRL_FUNCTION(SDO5, RPB10R, 9), | ||
699 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPB10R, 10), | ||
700 | PIC32_PINCTRL_FUNCTION(OC3, RPB10R, 11), | ||
701 | PIC32_PINCTRL_FUNCTION(OC6, RPB10R, 12), | ||
702 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPB10R, 13), | ||
703 | PIC32_PINCTRL_FUNCTION(C2OUT, RPB10R, 14), | ||
704 | PIC32_PINCTRL_FUNCTION(C1TX, RPB10R, 15)), | ||
705 | PIC32_PINCTRL_GROUP(30, B14, | ||
706 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 2), | ||
707 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 2), | ||
708 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 2), | ||
709 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 2), | ||
710 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 2), | ||
711 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 2), | ||
712 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 2), | ||
713 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 2), | ||
714 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 2), | ||
715 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 2), | ||
716 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 2), | ||
717 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 2), | ||
718 | PIC32_PINCTRL_FUNCTION(U1RTS, RPB14R, 1), | ||
719 | PIC32_PINCTRL_FUNCTION(U2TX, RPB14R, 2), | ||
720 | PIC32_PINCTRL_FUNCTION(U5RTS, RPB14R, 3), | ||
721 | PIC32_PINCTRL_FUNCTION(U6TX, RPB14R, 4), | ||
722 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPB14R, 6), | ||
723 | PIC32_PINCTRL_FUNCTION(SDO4, RPB14R, 8), | ||
724 | PIC32_PINCTRL_FUNCTION(SDO6, RPB14R, 10), | ||
725 | PIC32_PINCTRL_FUNCTION(OC2, RPB14R, 11), | ||
726 | PIC32_PINCTRL_FUNCTION(OC1, RPB14R, 12), | ||
727 | PIC32_PINCTRL_FUNCTION(OC9, RPB14R, 13), | ||
728 | PIC32_PINCTRL_FUNCTION(C2TX, RPB14R, 15)), | ||
729 | PIC32_PINCTRL_GROUP(31, B15, | ||
730 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 3), | ||
731 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 3), | ||
732 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 3), | ||
733 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 3), | ||
734 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 3), | ||
735 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 3), | ||
736 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 3), | ||
737 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 3), | ||
738 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 3), | ||
739 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 3), | ||
740 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 3), | ||
741 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 3), | ||
742 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 3), | ||
743 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 3), | ||
744 | PIC32_PINCTRL_FUNCTION(U3RTS, RPB15R, 1), | ||
745 | PIC32_PINCTRL_FUNCTION(U4TX, RPB15R, 2), | ||
746 | PIC32_PINCTRL_FUNCTION(U6TX, RPB15R, 4), | ||
747 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPB15R, 5), | ||
748 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPB15R, 7), | ||
749 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPB15R, 8), | ||
750 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPB15R, 9), | ||
751 | PIC32_PINCTRL_FUNCTION(SDO6, RPB15R, 10), | ||
752 | PIC32_PINCTRL_FUNCTION(OC5, RPB15R, 11), | ||
753 | PIC32_PINCTRL_FUNCTION(OC8, RPB15R, 12), | ||
754 | PIC32_PINCTRL_FUNCTION(C1OUT, RPB15R, 14), | ||
755 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPB15R, 15)), | ||
756 | PIC32_PINCTRL_GROUP(33, C1, | ||
757 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 10), | ||
758 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 10), | ||
759 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 10), | ||
760 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 10), | ||
761 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 10), | ||
762 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 10), | ||
763 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 10), | ||
764 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 10), | ||
765 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 10), | ||
766 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 10), | ||
767 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 10), | ||
768 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 10), | ||
769 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 10), | ||
770 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 10), | ||
771 | PIC32_PINCTRL_FUNCTION(U3TX, RPC1R, 1), | ||
772 | PIC32_PINCTRL_FUNCTION(U4RTS, RPC1R, 2), | ||
773 | PIC32_PINCTRL_FUNCTION(SDO1, RPC1R, 5), | ||
774 | PIC32_PINCTRL_FUNCTION(SDO2, RPC1R, 6), | ||
775 | PIC32_PINCTRL_FUNCTION(SDO3, RPC1R, 7), | ||
776 | PIC32_PINCTRL_FUNCTION(SDO5, RPC1R, 9), | ||
777 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPC1R, 10), | ||
778 | PIC32_PINCTRL_FUNCTION(OC3, RPC1R, 11), | ||
779 | PIC32_PINCTRL_FUNCTION(OC6, RPC1R, 12), | ||
780 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPC1R, 13), | ||
781 | PIC32_PINCTRL_FUNCTION(C2OUT, RPC1R, 14), | ||
782 | PIC32_PINCTRL_FUNCTION(C1TX, RPC1R, 15)), | ||
783 | PIC32_PINCTRL_GROUP(34, C2, | ||
784 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 12), | ||
785 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 12), | ||
786 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 12), | ||
787 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 12), | ||
788 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 12), | ||
789 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 12), | ||
790 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 12), | ||
791 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 12), | ||
792 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 12), | ||
793 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 12), | ||
794 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 12), | ||
795 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 12), | ||
796 | PIC32_PINCTRL_FUNCTION(U1RTS, RPC2R, 1), | ||
797 | PIC32_PINCTRL_FUNCTION(U2TX, RPC2R, 2), | ||
798 | PIC32_PINCTRL_FUNCTION(U5RTS, RPC2R, 3), | ||
799 | PIC32_PINCTRL_FUNCTION(U6TX, RPC2R, 4), | ||
800 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPC2R, 6), | ||
801 | PIC32_PINCTRL_FUNCTION(SDO4, RPC2R, 8), | ||
802 | PIC32_PINCTRL_FUNCTION(SDO6, RPC2R, 10), | ||
803 | PIC32_PINCTRL_FUNCTION(OC2, RPC2R, 11), | ||
804 | PIC32_PINCTRL_FUNCTION(OC1, RPC2R, 12), | ||
805 | PIC32_PINCTRL_FUNCTION(OC9, RPC2R, 13), | ||
806 | PIC32_PINCTRL_FUNCTION(C2TX, RPC2R, 15)), | ||
807 | PIC32_PINCTRL_GROUP(35, C3, | ||
808 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 12), | ||
809 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 12), | ||
810 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 12), | ||
811 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 12), | ||
812 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 12), | ||
813 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 12), | ||
814 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 12), | ||
815 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 12), | ||
816 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 12), | ||
817 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 12), | ||
818 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 12), | ||
819 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 12), | ||
820 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 12), | ||
821 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 12), | ||
822 | PIC32_PINCTRL_FUNCTION(U3RTS, RPC3R, 1), | ||
823 | PIC32_PINCTRL_FUNCTION(U4TX, RPC3R, 2), | ||
824 | PIC32_PINCTRL_FUNCTION(U6TX, RPC3R, 4), | ||
825 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPC3R, 5), | ||
826 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPC3R, 7), | ||
827 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPC3R, 8), | ||
828 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPC3R, 9), | ||
829 | PIC32_PINCTRL_FUNCTION(SDO6, RPC3R, 10), | ||
830 | PIC32_PINCTRL_FUNCTION(OC5, RPC3R, 11), | ||
831 | PIC32_PINCTRL_FUNCTION(OC8, RPC3R, 12), | ||
832 | PIC32_PINCTRL_FUNCTION(C1OUT, RPC3R, 14), | ||
833 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPC3R, 15)), | ||
834 | PIC32_PINCTRL_GROUP(36, C4, | ||
835 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 10), | ||
836 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 10), | ||
837 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 10), | ||
838 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 10), | ||
839 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 10), | ||
840 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 10), | ||
841 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 10), | ||
842 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 10), | ||
843 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 10), | ||
844 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 10), | ||
845 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 10), | ||
846 | PIC32_PINCTRL_FUNCTION(U1TX, RPC4R, 1), | ||
847 | PIC32_PINCTRL_FUNCTION(U2RTS, RPC4R, 2), | ||
848 | PIC32_PINCTRL_FUNCTION(U5TX, RPC4R, 3), | ||
849 | PIC32_PINCTRL_FUNCTION(U6RTS, RPC4R, 4), | ||
850 | PIC32_PINCTRL_FUNCTION(SDO1, RPC4R, 5), | ||
851 | PIC32_PINCTRL_FUNCTION(SDO2, RPC4R, 6), | ||
852 | PIC32_PINCTRL_FUNCTION(SDO3, RPC4R, 7), | ||
853 | PIC32_PINCTRL_FUNCTION(SDO4, RPC4R, 8), | ||
854 | PIC32_PINCTRL_FUNCTION(SDO5, RPC4R, 9), | ||
855 | PIC32_PINCTRL_FUNCTION(OC4, RPC4R, 11), | ||
856 | PIC32_PINCTRL_FUNCTION(OC7, RPC4R, 12), | ||
857 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPC4R, 15)), | ||
858 | PIC32_PINCTRL_GROUP(45, C13, | ||
859 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 7), | ||
860 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 7), | ||
861 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 7), | ||
862 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 7), | ||
863 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 7), | ||
864 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 7), | ||
865 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 7), | ||
866 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 7), | ||
867 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 7), | ||
868 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 7), | ||
869 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 7), | ||
870 | PIC32_PINCTRL_FUNCTION(U1TX, RPC13R, 1), | ||
871 | PIC32_PINCTRL_FUNCTION(U2RTS, RPC13R, 2), | ||
872 | PIC32_PINCTRL_FUNCTION(U5TX, RPC13R, 3), | ||
873 | PIC32_PINCTRL_FUNCTION(U6RTS, RPC13R, 4), | ||
874 | PIC32_PINCTRL_FUNCTION(SDO1, RPC13R, 5), | ||
875 | PIC32_PINCTRL_FUNCTION(SDO2, RPC13R, 6), | ||
876 | PIC32_PINCTRL_FUNCTION(SDO3, RPC13R, 7), | ||
877 | PIC32_PINCTRL_FUNCTION(SDO4, RPC13R, 8), | ||
878 | PIC32_PINCTRL_FUNCTION(SDO5, RPC13R, 9), | ||
879 | PIC32_PINCTRL_FUNCTION(OC4, RPC13R, 11), | ||
880 | PIC32_PINCTRL_FUNCTION(OC7, RPC13R, 12), | ||
881 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPC13R, 15)), | ||
882 | PIC32_PINCTRL_GROUP(46, C14, | ||
883 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 7), | ||
884 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 7), | ||
885 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 7), | ||
886 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 7), | ||
887 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 7), | ||
888 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 7), | ||
889 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 7), | ||
890 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 7), | ||
891 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 7), | ||
892 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 7), | ||
893 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 7), | ||
894 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 7), | ||
895 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 7), | ||
896 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 7), | ||
897 | PIC32_PINCTRL_FUNCTION(U3TX, RPC14R, 1), | ||
898 | PIC32_PINCTRL_FUNCTION(U4RTS, RPC14R, 2), | ||
899 | PIC32_PINCTRL_FUNCTION(SDO1, RPC14R, 5), | ||
900 | PIC32_PINCTRL_FUNCTION(SDO2, RPC14R, 6), | ||
901 | PIC32_PINCTRL_FUNCTION(SDO3, RPC14R, 7), | ||
902 | PIC32_PINCTRL_FUNCTION(SDO5, RPC14R, 9), | ||
903 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPC14R, 10), | ||
904 | PIC32_PINCTRL_FUNCTION(OC3, RPC14R, 11), | ||
905 | PIC32_PINCTRL_FUNCTION(OC6, RPC14R, 12), | ||
906 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPC14R, 13), | ||
907 | PIC32_PINCTRL_FUNCTION(C2OUT, RPC14R, 14), | ||
908 | PIC32_PINCTRL_FUNCTION(C1TX, RPC14R, 15)), | ||
909 | PIC32_PINCTRL_GROUP(48, D0, | ||
910 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 3), | ||
911 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 3), | ||
912 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 3), | ||
913 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 3), | ||
914 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 3), | ||
915 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 3), | ||
916 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 3), | ||
917 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 3), | ||
918 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 3), | ||
919 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 3), | ||
920 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 3), | ||
921 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 3), | ||
922 | PIC32_PINCTRL_FUNCTION(U1RTS, RPD0R, 1), | ||
923 | PIC32_PINCTRL_FUNCTION(U2TX, RPD0R, 2), | ||
924 | PIC32_PINCTRL_FUNCTION(U5RTS, RPD0R, 3), | ||
925 | PIC32_PINCTRL_FUNCTION(U6TX, RPD0R, 4), | ||
926 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPD0R, 6), | ||
927 | PIC32_PINCTRL_FUNCTION(SDO4, RPD0R, 8), | ||
928 | PIC32_PINCTRL_FUNCTION(SDO6, RPD0R, 10), | ||
929 | PIC32_PINCTRL_FUNCTION(OC2, RPD0R, 11), | ||
930 | PIC32_PINCTRL_FUNCTION(OC1, RPD0R, 12), | ||
931 | PIC32_PINCTRL_FUNCTION(OC9, RPD0R, 13), | ||
932 | PIC32_PINCTRL_FUNCTION(C2TX, RPD0R, 15)), | ||
933 | PIC32_PINCTRL_GROUP(50, D2, | ||
934 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 0), | ||
935 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 0), | ||
936 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 0), | ||
937 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 0), | ||
938 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 0), | ||
939 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 0), | ||
940 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 0), | ||
941 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 0), | ||
942 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 0), | ||
943 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 0), | ||
944 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 0), | ||
945 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 0), | ||
946 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 0), | ||
947 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 0), | ||
948 | PIC32_PINCTRL_FUNCTION(U3TX, RPD2R, 1), | ||
949 | PIC32_PINCTRL_FUNCTION(U4RTS, RPD2R, 2), | ||
950 | PIC32_PINCTRL_FUNCTION(SDO1, RPD2R, 5), | ||
951 | PIC32_PINCTRL_FUNCTION(SDO2, RPD2R, 6), | ||
952 | PIC32_PINCTRL_FUNCTION(SDO3, RPD2R, 7), | ||
953 | PIC32_PINCTRL_FUNCTION(SDO5, RPD2R, 9), | ||
954 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPD2R, 10), | ||
955 | PIC32_PINCTRL_FUNCTION(OC3, RPD2R, 11), | ||
956 | PIC32_PINCTRL_FUNCTION(OC6, RPD2R, 12), | ||
957 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPD2R, 13), | ||
958 | PIC32_PINCTRL_FUNCTION(C2OUT, RPD2R, 14), | ||
959 | PIC32_PINCTRL_FUNCTION(C1TX, RPD2R, 15)), | ||
960 | PIC32_PINCTRL_GROUP(51, D3, | ||
961 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 0), | ||
962 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 0), | ||
963 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 0), | ||
964 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 0), | ||
965 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 0), | ||
966 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 0), | ||
967 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 0), | ||
968 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 0), | ||
969 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 0), | ||
970 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 0), | ||
971 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 0), | ||
972 | PIC32_PINCTRL_FUNCTION(U1TX, RPD3R, 1), | ||
973 | PIC32_PINCTRL_FUNCTION(U2RTS, RPD3R, 2), | ||
974 | PIC32_PINCTRL_FUNCTION(U5TX, RPD3R, 3), | ||
975 | PIC32_PINCTRL_FUNCTION(U6RTS, RPD3R, 4), | ||
976 | PIC32_PINCTRL_FUNCTION(SDO1, RPD3R, 5), | ||
977 | PIC32_PINCTRL_FUNCTION(SDO2, RPD3R, 6), | ||
978 | PIC32_PINCTRL_FUNCTION(SDO3, RPD3R, 7), | ||
979 | PIC32_PINCTRL_FUNCTION(SDO4, RPD3R, 8), | ||
980 | PIC32_PINCTRL_FUNCTION(SDO5, RPD3R, 9), | ||
981 | PIC32_PINCTRL_FUNCTION(OC4, RPD3R, 11), | ||
982 | PIC32_PINCTRL_FUNCTION(OC7, RPD3R, 12), | ||
983 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPD3R, 15)), | ||
984 | PIC32_PINCTRL_GROUP(52, D4, | ||
985 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 4), | ||
986 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 4), | ||
987 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 4), | ||
988 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 4), | ||
989 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 4), | ||
990 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 4), | ||
991 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 4), | ||
992 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 4), | ||
993 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 4), | ||
994 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 4), | ||
995 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 4), | ||
996 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 4), | ||
997 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 4), | ||
998 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 4), | ||
999 | PIC32_PINCTRL_FUNCTION(U3RTS, RPD4R, 1), | ||
1000 | PIC32_PINCTRL_FUNCTION(U4TX, RPD4R, 2), | ||
1001 | PIC32_PINCTRL_FUNCTION(U6TX, RPD4R, 4), | ||
1002 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPD4R, 5), | ||
1003 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPD4R, 7), | ||
1004 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPD4R, 8), | ||
1005 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPD4R, 9), | ||
1006 | PIC32_PINCTRL_FUNCTION(SDO6, RPD4R, 10), | ||
1007 | PIC32_PINCTRL_FUNCTION(OC5, RPD4R, 11), | ||
1008 | PIC32_PINCTRL_FUNCTION(OC8, RPD4R, 12), | ||
1009 | PIC32_PINCTRL_FUNCTION(C1OUT, RPD4R, 14), | ||
1010 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPD4R, 15)), | ||
1011 | PIC32_PINCTRL_GROUP(53, D5, | ||
1012 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 6), | ||
1013 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 6), | ||
1014 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 6), | ||
1015 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 6), | ||
1016 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 6), | ||
1017 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 6), | ||
1018 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 6), | ||
1019 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 6), | ||
1020 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 6), | ||
1021 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 6), | ||
1022 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 6), | ||
1023 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 6), | ||
1024 | PIC32_PINCTRL_FUNCTION(U1RTS, RPD5R, 1), | ||
1025 | PIC32_PINCTRL_FUNCTION(U2TX, RPD5R, 2), | ||
1026 | PIC32_PINCTRL_FUNCTION(U5RTS, RPD5R, 3), | ||
1027 | PIC32_PINCTRL_FUNCTION(U6TX, RPD5R, 4), | ||
1028 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPD5R, 6), | ||
1029 | PIC32_PINCTRL_FUNCTION(SDO4, RPD5R, 8), | ||
1030 | PIC32_PINCTRL_FUNCTION(SDO6, RPD5R, 10), | ||
1031 | PIC32_PINCTRL_FUNCTION(OC2, RPD5R, 11), | ||
1032 | PIC32_PINCTRL_FUNCTION(OC1, RPD5R, 12), | ||
1033 | PIC32_PINCTRL_FUNCTION(OC9, RPD5R, 13), | ||
1034 | PIC32_PINCTRL_FUNCTION(C2TX, RPD5R, 15)), | ||
1035 | PIC32_PINCTRL_GROUP(54, D6, | ||
1036 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 14), | ||
1037 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 14), | ||
1038 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 14), | ||
1039 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 14), | ||
1040 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 14), | ||
1041 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 14), | ||
1042 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 14), | ||
1043 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 14), | ||
1044 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 14), | ||
1045 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 14), | ||
1046 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 14), | ||
1047 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 14), | ||
1048 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 14), | ||
1049 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 14), | ||
1050 | PIC32_PINCTRL_FUNCTION(U3TX, RPD6R, 1), | ||
1051 | PIC32_PINCTRL_FUNCTION(U4RTS, RPD6R, 2), | ||
1052 | PIC32_PINCTRL_FUNCTION(SDO1, RPD6R, 5), | ||
1053 | PIC32_PINCTRL_FUNCTION(SDO2, RPD6R, 6), | ||
1054 | PIC32_PINCTRL_FUNCTION(SDO3, RPD6R, 7), | ||
1055 | PIC32_PINCTRL_FUNCTION(SDO5, RPD6R, 9), | ||
1056 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPD6R, 10), | ||
1057 | PIC32_PINCTRL_FUNCTION(OC3, RPD6R, 11), | ||
1058 | PIC32_PINCTRL_FUNCTION(OC6, RPD6R, 12), | ||
1059 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPD6R, 13), | ||
1060 | PIC32_PINCTRL_FUNCTION(C2OUT, RPD6R, 14), | ||
1061 | PIC32_PINCTRL_FUNCTION(C1TX, RPD6R, 15)), | ||
1062 | PIC32_PINCTRL_GROUP(55, D7, | ||
1063 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 14), | ||
1064 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 14), | ||
1065 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 14), | ||
1066 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 14), | ||
1067 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 14), | ||
1068 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 14), | ||
1069 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 14), | ||
1070 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 14), | ||
1071 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 14), | ||
1072 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 14), | ||
1073 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 14), | ||
1074 | PIC32_PINCTRL_FUNCTION(U1TX, RPD7R, 1), | ||
1075 | PIC32_PINCTRL_FUNCTION(U2RTS, RPD7R, 2), | ||
1076 | PIC32_PINCTRL_FUNCTION(U5TX, RPD7R, 3), | ||
1077 | PIC32_PINCTRL_FUNCTION(U6RTS, RPD7R, 4), | ||
1078 | PIC32_PINCTRL_FUNCTION(SDO1, RPD7R, 5), | ||
1079 | PIC32_PINCTRL_FUNCTION(SDO2, RPD7R, 6), | ||
1080 | PIC32_PINCTRL_FUNCTION(SDO3, RPD7R, 7), | ||
1081 | PIC32_PINCTRL_FUNCTION(SDO4, RPD7R, 8), | ||
1082 | PIC32_PINCTRL_FUNCTION(SDO5, RPD7R, 9), | ||
1083 | PIC32_PINCTRL_FUNCTION(OC4, RPD7R, 11), | ||
1084 | PIC32_PINCTRL_FUNCTION(OC7, RPD7R, 12), | ||
1085 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPD7R, 15)), | ||
1086 | PIC32_PINCTRL_GROUP(57, D9, | ||
1087 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 0), | ||
1088 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 0), | ||
1089 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 0), | ||
1090 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 0), | ||
1091 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 0), | ||
1092 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 0), | ||
1093 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 0), | ||
1094 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 0), | ||
1095 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 0), | ||
1096 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 0), | ||
1097 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 0), | ||
1098 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 0), | ||
1099 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 0), | ||
1100 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 0), | ||
1101 | PIC32_PINCTRL_FUNCTION(U3RTS, RPD9R, 1), | ||
1102 | PIC32_PINCTRL_FUNCTION(U4TX, RPD9R, 2), | ||
1103 | PIC32_PINCTRL_FUNCTION(U6TX, RPD9R, 4), | ||
1104 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPD9R, 5), | ||
1105 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPD9R, 7), | ||
1106 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPD9R, 8), | ||
1107 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPD9R, 9), | ||
1108 | PIC32_PINCTRL_FUNCTION(SDO6, RPD9R, 10), | ||
1109 | PIC32_PINCTRL_FUNCTION(OC5, RPD9R, 11), | ||
1110 | PIC32_PINCTRL_FUNCTION(OC8, RPD9R, 12), | ||
1111 | PIC32_PINCTRL_FUNCTION(C1OUT, RPD9R, 14), | ||
1112 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPD9R, 15)), | ||
1113 | PIC32_PINCTRL_GROUP(58, D10, | ||
1114 | PIC32_PINCTRL_FUNCTION(U3TX, RPD10R, 1), | ||
1115 | PIC32_PINCTRL_FUNCTION(U4RTS, RPD10R, 2), | ||
1116 | PIC32_PINCTRL_FUNCTION(SDO1, RPD10R, 5), | ||
1117 | PIC32_PINCTRL_FUNCTION(SDO2, RPD10R, 6), | ||
1118 | PIC32_PINCTRL_FUNCTION(SDO3, RPD10R, 7), | ||
1119 | PIC32_PINCTRL_FUNCTION(SDO5, RPD10R, 9), | ||
1120 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPD10R, 10), | ||
1121 | PIC32_PINCTRL_FUNCTION(OC3, RPD10R, 11), | ||
1122 | PIC32_PINCTRL_FUNCTION(OC6, RPD10R, 12), | ||
1123 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPD10R, 13), | ||
1124 | PIC32_PINCTRL_FUNCTION(C2OUT, RPD10R, 14), | ||
1125 | PIC32_PINCTRL_FUNCTION(C1TX, RPD10R, 15)), | ||
1126 | PIC32_PINCTRL_GROUP(59, D11, | ||
1127 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 3), | ||
1128 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 3), | ||
1129 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 3), | ||
1130 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 3), | ||
1131 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 3), | ||
1132 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 3), | ||
1133 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 3), | ||
1134 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 3), | ||
1135 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 3), | ||
1136 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 3), | ||
1137 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 3), | ||
1138 | PIC32_PINCTRL_FUNCTION(U1TX, RPD11R, 1), | ||
1139 | PIC32_PINCTRL_FUNCTION(U2RTS, RPD11R, 2), | ||
1140 | PIC32_PINCTRL_FUNCTION(U5TX, RPD11R, 3), | ||
1141 | PIC32_PINCTRL_FUNCTION(U6RTS, RPD11R, 4), | ||
1142 | PIC32_PINCTRL_FUNCTION(SDO1, RPD11R, 5), | ||
1143 | PIC32_PINCTRL_FUNCTION(SDO2, RPD11R, 6), | ||
1144 | PIC32_PINCTRL_FUNCTION(SDO3, RPD11R, 7), | ||
1145 | PIC32_PINCTRL_FUNCTION(SDO4, RPD11R, 8), | ||
1146 | PIC32_PINCTRL_FUNCTION(SDO5, RPD11R, 9), | ||
1147 | PIC32_PINCTRL_FUNCTION(OC4, RPD11R, 11), | ||
1148 | PIC32_PINCTRL_FUNCTION(OC7, RPD11R, 12), | ||
1149 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPD11R, 15)), | ||
1150 | PIC32_PINCTRL_GROUP(60, D12, | ||
1151 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 10), | ||
1152 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 10), | ||
1153 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 10), | ||
1154 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 10), | ||
1155 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 10), | ||
1156 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 10), | ||
1157 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 10), | ||
1158 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 10), | ||
1159 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 10), | ||
1160 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 10), | ||
1161 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 10), | ||
1162 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 10), | ||
1163 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 10), | ||
1164 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 10), | ||
1165 | PIC32_PINCTRL_FUNCTION(U3RTS, RPD12R, 1), | ||
1166 | PIC32_PINCTRL_FUNCTION(U4TX, RPD12R, 2), | ||
1167 | PIC32_PINCTRL_FUNCTION(U6TX, RPD12R, 4), | ||
1168 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPD12R, 5), | ||
1169 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPD12R, 7), | ||
1170 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPD12R, 8), | ||
1171 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPD12R, 9), | ||
1172 | PIC32_PINCTRL_FUNCTION(SDO6, RPD12R, 10), | ||
1173 | PIC32_PINCTRL_FUNCTION(OC5, RPD12R, 11), | ||
1174 | PIC32_PINCTRL_FUNCTION(OC8, RPD12R, 12), | ||
1175 | PIC32_PINCTRL_FUNCTION(C1OUT, RPD12R, 14), | ||
1176 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPD12R, 15)), | ||
1177 | PIC32_PINCTRL_GROUP(62, D14, | ||
1178 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 11), | ||
1179 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 11), | ||
1180 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 11), | ||
1181 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 11), | ||
1182 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 11), | ||
1183 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 11), | ||
1184 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 11), | ||
1185 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 11), | ||
1186 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 11), | ||
1187 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 11), | ||
1188 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 11), | ||
1189 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 11), | ||
1190 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 11), | ||
1191 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 11), | ||
1192 | PIC32_PINCTRL_FUNCTION(U3TX, RPD14R, 1), | ||
1193 | PIC32_PINCTRL_FUNCTION(U4RTS, RPD14R, 2), | ||
1194 | PIC32_PINCTRL_FUNCTION(SDO1, RPD14R, 5), | ||
1195 | PIC32_PINCTRL_FUNCTION(SDO2, RPD14R, 6), | ||
1196 | PIC32_PINCTRL_FUNCTION(SDO3, RPD14R, 7), | ||
1197 | PIC32_PINCTRL_FUNCTION(SDO5, RPD14R, 9), | ||
1198 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPD14R, 10), | ||
1199 | PIC32_PINCTRL_FUNCTION(OC3, RPD14R, 11), | ||
1200 | PIC32_PINCTRL_FUNCTION(OC6, RPD14R, 12), | ||
1201 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPD14R, 13), | ||
1202 | PIC32_PINCTRL_FUNCTION(C2OUT, RPD14R, 14), | ||
1203 | PIC32_PINCTRL_FUNCTION(C1TX, RPD14R, 15)), | ||
1204 | PIC32_PINCTRL_GROUP(63, D15, | ||
1205 | PIC32_PINCTRL_FUNCTION(U1TX, RPD15R, 1), | ||
1206 | PIC32_PINCTRL_FUNCTION(U2RTS, RPD15R, 2), | ||
1207 | PIC32_PINCTRL_FUNCTION(U5TX, RPD15R, 3), | ||
1208 | PIC32_PINCTRL_FUNCTION(U6RTS, RPD15R, 4), | ||
1209 | PIC32_PINCTRL_FUNCTION(SDO1, RPD15R, 5), | ||
1210 | PIC32_PINCTRL_FUNCTION(SDO2, RPD15R, 6), | ||
1211 | PIC32_PINCTRL_FUNCTION(SDO3, RPD15R, 7), | ||
1212 | PIC32_PINCTRL_FUNCTION(SDO4, RPD15R, 8), | ||
1213 | PIC32_PINCTRL_FUNCTION(SDO5, RPD15R, 9), | ||
1214 | PIC32_PINCTRL_FUNCTION(OC4, RPD15R, 11), | ||
1215 | PIC32_PINCTRL_FUNCTION(OC7, RPD15R, 12), | ||
1216 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPD15R, 15)), | ||
1217 | PIC32_PINCTRL_GROUP(67, E3, | ||
1218 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 6), | ||
1219 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 6), | ||
1220 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 6), | ||
1221 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 6), | ||
1222 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 6), | ||
1223 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 6), | ||
1224 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 6), | ||
1225 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 6), | ||
1226 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 6), | ||
1227 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 6), | ||
1228 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 6), | ||
1229 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 6), | ||
1230 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 6), | ||
1231 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 6), | ||
1232 | PIC32_PINCTRL_FUNCTION(U3RTS, RPE3R, 1), | ||
1233 | PIC32_PINCTRL_FUNCTION(U4TX, RPE3R, 2), | ||
1234 | PIC32_PINCTRL_FUNCTION(U6TX, RPE3R, 4), | ||
1235 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPE3R, 5), | ||
1236 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPE3R, 7), | ||
1237 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPE3R, 8), | ||
1238 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPE3R, 9), | ||
1239 | PIC32_PINCTRL_FUNCTION(SDO6, RPE3R, 10), | ||
1240 | PIC32_PINCTRL_FUNCTION(OC5, RPE3R, 11), | ||
1241 | PIC32_PINCTRL_FUNCTION(OC8, RPE3R, 12), | ||
1242 | PIC32_PINCTRL_FUNCTION(C1OUT, RPE3R, 14), | ||
1243 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPE3R, 15)), | ||
1244 | PIC32_PINCTRL_GROUP(69, E5, | ||
1245 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 6), | ||
1246 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 6), | ||
1247 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 6), | ||
1248 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 6), | ||
1249 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 6), | ||
1250 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 6), | ||
1251 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 6), | ||
1252 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 6), | ||
1253 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 6), | ||
1254 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 6), | ||
1255 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 6), | ||
1256 | PIC32_PINCTRL_FUNCTION(U1TX, RPE5R, 1), | ||
1257 | PIC32_PINCTRL_FUNCTION(U2RTS, RPE5R, 2), | ||
1258 | PIC32_PINCTRL_FUNCTION(U5TX, RPE5R, 3), | ||
1259 | PIC32_PINCTRL_FUNCTION(U6RTS, RPE5R, 4), | ||
1260 | PIC32_PINCTRL_FUNCTION(SDO1, RPE5R, 5), | ||
1261 | PIC32_PINCTRL_FUNCTION(SDO2, RPE5R, 6), | ||
1262 | PIC32_PINCTRL_FUNCTION(SDO3, RPE5R, 7), | ||
1263 | PIC32_PINCTRL_FUNCTION(SDO4, RPE5R, 8), | ||
1264 | PIC32_PINCTRL_FUNCTION(SDO5, RPE5R, 9), | ||
1265 | PIC32_PINCTRL_FUNCTION(OC4, RPE5R, 11), | ||
1266 | PIC32_PINCTRL_FUNCTION(OC7, RPE5R, 12), | ||
1267 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPE5R, 15)), | ||
1268 | PIC32_PINCTRL_GROUP(72, E8, | ||
1269 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 13), | ||
1270 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 13), | ||
1271 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 13), | ||
1272 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 13), | ||
1273 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 13), | ||
1274 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 13), | ||
1275 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 13), | ||
1276 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 13), | ||
1277 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 13), | ||
1278 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 13), | ||
1279 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 13), | ||
1280 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 13), | ||
1281 | PIC32_PINCTRL_FUNCTION(U1RTS, RPE8R, 1), | ||
1282 | PIC32_PINCTRL_FUNCTION(U2TX, RPE8R, 2), | ||
1283 | PIC32_PINCTRL_FUNCTION(U5RTS, RPE8R, 3), | ||
1284 | PIC32_PINCTRL_FUNCTION(U6TX, RPE8R, 4), | ||
1285 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPE8R, 6), | ||
1286 | PIC32_PINCTRL_FUNCTION(SDO4, RPE8R, 8), | ||
1287 | PIC32_PINCTRL_FUNCTION(SDO6, RPE8R, 10), | ||
1288 | PIC32_PINCTRL_FUNCTION(OC2, RPE8R, 11), | ||
1289 | PIC32_PINCTRL_FUNCTION(OC1, RPE8R, 12), | ||
1290 | PIC32_PINCTRL_FUNCTION(OC9, RPE8R, 13), | ||
1291 | PIC32_PINCTRL_FUNCTION(C2TX, RPE8R, 15)), | ||
1292 | PIC32_PINCTRL_GROUP(73, E9, | ||
1293 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 13), | ||
1294 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 13), | ||
1295 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 13), | ||
1296 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 13), | ||
1297 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 13), | ||
1298 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 13), | ||
1299 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 13), | ||
1300 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 13), | ||
1301 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 13), | ||
1302 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 13), | ||
1303 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 13), | ||
1304 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 13), | ||
1305 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 13), | ||
1306 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 13), | ||
1307 | PIC32_PINCTRL_FUNCTION(U3RTS, RPE9R, 1), | ||
1308 | PIC32_PINCTRL_FUNCTION(U4TX, RPE9R, 2), | ||
1309 | PIC32_PINCTRL_FUNCTION(U6TX, RPE9R, 4), | ||
1310 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPE9R, 5), | ||
1311 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPE9R, 7), | ||
1312 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPE9R, 8), | ||
1313 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPE9R, 9), | ||
1314 | PIC32_PINCTRL_FUNCTION(SDO6, RPE9R, 10), | ||
1315 | PIC32_PINCTRL_FUNCTION(OC5, RPE9R, 11), | ||
1316 | PIC32_PINCTRL_FUNCTION(OC8, RPE9R, 12), | ||
1317 | PIC32_PINCTRL_FUNCTION(C1OUT, RPE9R, 14), | ||
1318 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPE9R, 15)), | ||
1319 | PIC32_PINCTRL_GROUP(80, F0, | ||
1320 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 4), | ||
1321 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 4), | ||
1322 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 4), | ||
1323 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 4), | ||
1324 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 4), | ||
1325 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 4), | ||
1326 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 4), | ||
1327 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 4), | ||
1328 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 4), | ||
1329 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 4), | ||
1330 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 4), | ||
1331 | PIC32_PINCTRL_FUNCTION(U1TX, RPF0R, 1), | ||
1332 | PIC32_PINCTRL_FUNCTION(U2RTS, RPF0R, 2), | ||
1333 | PIC32_PINCTRL_FUNCTION(U5TX, RPF0R, 3), | ||
1334 | PIC32_PINCTRL_FUNCTION(U6RTS, RPF0R, 4), | ||
1335 | PIC32_PINCTRL_FUNCTION(SDO1, RPF0R, 5), | ||
1336 | PIC32_PINCTRL_FUNCTION(SDO2, RPF0R, 6), | ||
1337 | PIC32_PINCTRL_FUNCTION(SDO3, RPF0R, 7), | ||
1338 | PIC32_PINCTRL_FUNCTION(SDO4, RPF0R, 8), | ||
1339 | PIC32_PINCTRL_FUNCTION(SDO5, RPF0R, 9), | ||
1340 | PIC32_PINCTRL_FUNCTION(OC4, RPF0R, 11), | ||
1341 | PIC32_PINCTRL_FUNCTION(OC7, RPF0R, 12), | ||
1342 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPF0R, 15)), | ||
1343 | PIC32_PINCTRL_GROUP(81, F1, | ||
1344 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 4), | ||
1345 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 4), | ||
1346 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 4), | ||
1347 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 4), | ||
1348 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 4), | ||
1349 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 4), | ||
1350 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 4), | ||
1351 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 4), | ||
1352 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 4), | ||
1353 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 4), | ||
1354 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 4), | ||
1355 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 4), | ||
1356 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 4), | ||
1357 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 4), | ||
1358 | PIC32_PINCTRL_FUNCTION(U3TX, RPF1R, 1), | ||
1359 | PIC32_PINCTRL_FUNCTION(U4RTS, RPF1R, 2), | ||
1360 | PIC32_PINCTRL_FUNCTION(SDO1, RPF1R, 5), | ||
1361 | PIC32_PINCTRL_FUNCTION(SDO2, RPF1R, 6), | ||
1362 | PIC32_PINCTRL_FUNCTION(SDO3, RPF1R, 7), | ||
1363 | PIC32_PINCTRL_FUNCTION(SDO5, RPF1R, 9), | ||
1364 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPF1R, 10), | ||
1365 | PIC32_PINCTRL_FUNCTION(OC3, RPF1R, 11), | ||
1366 | PIC32_PINCTRL_FUNCTION(OC6, RPF1R, 12), | ||
1367 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPF1R, 13), | ||
1368 | PIC32_PINCTRL_FUNCTION(C2OUT, RPF1R, 14), | ||
1369 | PIC32_PINCTRL_FUNCTION(C1TX, RPF1R, 15)), | ||
1370 | PIC32_PINCTRL_GROUP(82, F2, | ||
1371 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 11), | ||
1372 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 11), | ||
1373 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 11), | ||
1374 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 11), | ||
1375 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 11), | ||
1376 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 11), | ||
1377 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 11), | ||
1378 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 11), | ||
1379 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 11), | ||
1380 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 11), | ||
1381 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 11), | ||
1382 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 11), | ||
1383 | PIC32_PINCTRL_FUNCTION(U1RTS, RPF2R, 1), | ||
1384 | PIC32_PINCTRL_FUNCTION(U2TX, RPF2R, 2), | ||
1385 | PIC32_PINCTRL_FUNCTION(U5RTS, RPF2R, 3), | ||
1386 | PIC32_PINCTRL_FUNCTION(U6TX, RPF2R, 4), | ||
1387 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPF2R, 6), | ||
1388 | PIC32_PINCTRL_FUNCTION(SDO4, RPF2R, 8), | ||
1389 | PIC32_PINCTRL_FUNCTION(SDO6, RPF2R, 10), | ||
1390 | PIC32_PINCTRL_FUNCTION(OC2, RPF2R, 11), | ||
1391 | PIC32_PINCTRL_FUNCTION(OC1, RPF2R, 12), | ||
1392 | PIC32_PINCTRL_FUNCTION(OC9, RPF2R, 13), | ||
1393 | PIC32_PINCTRL_FUNCTION(C2TX, RPF2R, 15)), | ||
1394 | PIC32_PINCTRL_GROUP(83, F3, | ||
1395 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 8), | ||
1396 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 8), | ||
1397 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 8), | ||
1398 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 8), | ||
1399 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 8), | ||
1400 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 8), | ||
1401 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 8), | ||
1402 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 8), | ||
1403 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 8), | ||
1404 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 8), | ||
1405 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 8), | ||
1406 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 8), | ||
1407 | PIC32_PINCTRL_FUNCTION(U1RTS, RPF3R, 1), | ||
1408 | PIC32_PINCTRL_FUNCTION(U2TX, RPF3R, 2), | ||
1409 | PIC32_PINCTRL_FUNCTION(U5RTS, RPF3R, 3), | ||
1410 | PIC32_PINCTRL_FUNCTION(U6TX, RPF3R, 4), | ||
1411 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPF3R, 6), | ||
1412 | PIC32_PINCTRL_FUNCTION(SDO4, RPF3R, 8), | ||
1413 | PIC32_PINCTRL_FUNCTION(SDO6, RPF3R, 10), | ||
1414 | PIC32_PINCTRL_FUNCTION(OC2, RPF3R, 11), | ||
1415 | PIC32_PINCTRL_FUNCTION(OC1, RPF3R, 12), | ||
1416 | PIC32_PINCTRL_FUNCTION(OC9, RPF3R, 13), | ||
1417 | PIC32_PINCTRL_FUNCTION(C2TX, RPF3R, 15)), | ||
1418 | PIC32_PINCTRL_GROUP(84, F4, | ||
1419 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 2), | ||
1420 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 2), | ||
1421 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 2), | ||
1422 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 2), | ||
1423 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 2), | ||
1424 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 2), | ||
1425 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 2), | ||
1426 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 2), | ||
1427 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 2), | ||
1428 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 2), | ||
1429 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 2), | ||
1430 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 2), | ||
1431 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 2), | ||
1432 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 2), | ||
1433 | PIC32_PINCTRL_FUNCTION(U3TX, RPF4R, 1), | ||
1434 | PIC32_PINCTRL_FUNCTION(U4RTS, RPF4R, 2), | ||
1435 | PIC32_PINCTRL_FUNCTION(SDO1, RPF4R, 5), | ||
1436 | PIC32_PINCTRL_FUNCTION(SDO2, RPF4R, 6), | ||
1437 | PIC32_PINCTRL_FUNCTION(SDO3, RPF4R, 7), | ||
1438 | PIC32_PINCTRL_FUNCTION(SDO5, RPF4R, 9), | ||
1439 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPF4R, 10), | ||
1440 | PIC32_PINCTRL_FUNCTION(OC3, RPF4R, 11), | ||
1441 | PIC32_PINCTRL_FUNCTION(OC6, RPF4R, 12), | ||
1442 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPF4R, 13), | ||
1443 | PIC32_PINCTRL_FUNCTION(C2OUT, RPF4R, 14), | ||
1444 | PIC32_PINCTRL_FUNCTION(C1TX, RPF4R, 15)), | ||
1445 | PIC32_PINCTRL_GROUP(85, F5, | ||
1446 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 2), | ||
1447 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 2), | ||
1448 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 2), | ||
1449 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 2), | ||
1450 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 2), | ||
1451 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 2), | ||
1452 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 2), | ||
1453 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 2), | ||
1454 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 2), | ||
1455 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 2), | ||
1456 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 2), | ||
1457 | PIC32_PINCTRL_FUNCTION(U1TX, RPF5R, 1), | ||
1458 | PIC32_PINCTRL_FUNCTION(U2RTS, RPF5R, 2), | ||
1459 | PIC32_PINCTRL_FUNCTION(U5TX, RPF5R, 3), | ||
1460 | PIC32_PINCTRL_FUNCTION(U6RTS, RPF5R, 4), | ||
1461 | PIC32_PINCTRL_FUNCTION(SDO1, RPF5R, 5), | ||
1462 | PIC32_PINCTRL_FUNCTION(SDO2, RPF5R, 6), | ||
1463 | PIC32_PINCTRL_FUNCTION(SDO3, RPF5R, 7), | ||
1464 | PIC32_PINCTRL_FUNCTION(SDO4, RPF5R, 8), | ||
1465 | PIC32_PINCTRL_FUNCTION(SDO5, RPF5R, 9), | ||
1466 | PIC32_PINCTRL_FUNCTION(OC4, RPF5R, 11), | ||
1467 | PIC32_PINCTRL_FUNCTION(OC7, RPF5R, 12), | ||
1468 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPF5R, 15)), | ||
1469 | PIC32_PINCTRL_GROUP(88, F8, | ||
1470 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 11), | ||
1471 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 11), | ||
1472 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 11), | ||
1473 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 11), | ||
1474 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 11), | ||
1475 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 11), | ||
1476 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 11), | ||
1477 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 11), | ||
1478 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 11), | ||
1479 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 11), | ||
1480 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 11), | ||
1481 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 11), | ||
1482 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 11), | ||
1483 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 11), | ||
1484 | PIC32_PINCTRL_FUNCTION(U3RTS, RPF8R, 1), | ||
1485 | PIC32_PINCTRL_FUNCTION(U4TX, RPF8R, 2), | ||
1486 | PIC32_PINCTRL_FUNCTION(U6TX, RPF8R, 4), | ||
1487 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPF8R, 5), | ||
1488 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPF8R, 7), | ||
1489 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPF8R, 8), | ||
1490 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPF8R, 9), | ||
1491 | PIC32_PINCTRL_FUNCTION(SDO6, RPF8R, 10), | ||
1492 | PIC32_PINCTRL_FUNCTION(OC5, RPF8R, 11), | ||
1493 | PIC32_PINCTRL_FUNCTION(OC8, RPF8R, 12), | ||
1494 | PIC32_PINCTRL_FUNCTION(C1OUT, RPF8R, 14), | ||
1495 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPF8R, 15)), | ||
1496 | PIC32_PINCTRL_GROUP(92, F12, | ||
1497 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 9), | ||
1498 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 9), | ||
1499 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 9), | ||
1500 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 9), | ||
1501 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 9), | ||
1502 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 9), | ||
1503 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 9), | ||
1504 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 9), | ||
1505 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 9), | ||
1506 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 9), | ||
1507 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 9), | ||
1508 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 9), | ||
1509 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 9), | ||
1510 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 9), | ||
1511 | PIC32_PINCTRL_FUNCTION(U3RTS, RPF12R, 1), | ||
1512 | PIC32_PINCTRL_FUNCTION(U4TX, RPF12R, 2), | ||
1513 | PIC32_PINCTRL_FUNCTION(U6TX, RPF12R, 4), | ||
1514 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPF12R, 5), | ||
1515 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPF12R, 7), | ||
1516 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPF12R, 8), | ||
1517 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPF12R, 9), | ||
1518 | PIC32_PINCTRL_FUNCTION(SDO6, RPF12R, 10), | ||
1519 | PIC32_PINCTRL_FUNCTION(OC5, RPF12R, 11), | ||
1520 | PIC32_PINCTRL_FUNCTION(OC8, RPF12R, 12), | ||
1521 | PIC32_PINCTRL_FUNCTION(C1OUT, RPF12R, 14), | ||
1522 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPF12R, 15)), | ||
1523 | PIC32_PINCTRL_GROUP(93, F13, | ||
1524 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 9), | ||
1525 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 9), | ||
1526 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 9), | ||
1527 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 9), | ||
1528 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 9), | ||
1529 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 9), | ||
1530 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 9), | ||
1531 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 9), | ||
1532 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 9), | ||
1533 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 9), | ||
1534 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 9), | ||
1535 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 9), | ||
1536 | PIC32_PINCTRL_FUNCTION(U1RTS, RPF13R, 1), | ||
1537 | PIC32_PINCTRL_FUNCTION(U2TX, RPF13R, 2), | ||
1538 | PIC32_PINCTRL_FUNCTION(U5RTS, RPF13R, 3), | ||
1539 | PIC32_PINCTRL_FUNCTION(U6TX, RPF13R, 4), | ||
1540 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPF13R, 6), | ||
1541 | PIC32_PINCTRL_FUNCTION(SDO4, RPF13R, 8), | ||
1542 | PIC32_PINCTRL_FUNCTION(SDO6, RPF13R, 10), | ||
1543 | PIC32_PINCTRL_FUNCTION(OC2, RPF13R, 11), | ||
1544 | PIC32_PINCTRL_FUNCTION(OC1, RPF13R, 12), | ||
1545 | PIC32_PINCTRL_FUNCTION(OC9, RPF13R, 13), | ||
1546 | PIC32_PINCTRL_FUNCTION(C2TX, RPF13R, 15)), | ||
1547 | PIC32_PINCTRL_GROUP(96, G0, | ||
1548 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 12), | ||
1549 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 12), | ||
1550 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 12), | ||
1551 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 12), | ||
1552 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 12), | ||
1553 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 12), | ||
1554 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 12), | ||
1555 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 12), | ||
1556 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 12), | ||
1557 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 12), | ||
1558 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 12), | ||
1559 | PIC32_PINCTRL_FUNCTION(U1TX, RPG0R, 1), | ||
1560 | PIC32_PINCTRL_FUNCTION(U2RTS, RPG0R, 2), | ||
1561 | PIC32_PINCTRL_FUNCTION(U5TX, RPG0R, 3), | ||
1562 | PIC32_PINCTRL_FUNCTION(U6RTS, RPG0R, 4), | ||
1563 | PIC32_PINCTRL_FUNCTION(SDO1, RPG0R, 5), | ||
1564 | PIC32_PINCTRL_FUNCTION(SDO2, RPG0R, 6), | ||
1565 | PIC32_PINCTRL_FUNCTION(SDO3, RPG0R, 7), | ||
1566 | PIC32_PINCTRL_FUNCTION(SDO4, RPG0R, 8), | ||
1567 | PIC32_PINCTRL_FUNCTION(SDO5, RPG0R, 9), | ||
1568 | PIC32_PINCTRL_FUNCTION(OC4, RPG0R, 11), | ||
1569 | PIC32_PINCTRL_FUNCTION(OC7, RPG0R, 12), | ||
1570 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPG0R, 15)), | ||
1571 | PIC32_PINCTRL_GROUP(97, G1, | ||
1572 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 12), | ||
1573 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 12), | ||
1574 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 12), | ||
1575 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 12), | ||
1576 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 12), | ||
1577 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 12), | ||
1578 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 12), | ||
1579 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 12), | ||
1580 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 12), | ||
1581 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 12), | ||
1582 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 12), | ||
1583 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 12), | ||
1584 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 12), | ||
1585 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 12), | ||
1586 | PIC32_PINCTRL_FUNCTION(U3TX, RPG1R, 1), | ||
1587 | PIC32_PINCTRL_FUNCTION(U4RTS, RPG1R, 2), | ||
1588 | PIC32_PINCTRL_FUNCTION(SDO1, RPG1R, 5), | ||
1589 | PIC32_PINCTRL_FUNCTION(SDO2, RPG1R, 6), | ||
1590 | PIC32_PINCTRL_FUNCTION(SDO3, RPG1R, 7), | ||
1591 | PIC32_PINCTRL_FUNCTION(SDO5, RPG1R, 9), | ||
1592 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPG1R, 10), | ||
1593 | PIC32_PINCTRL_FUNCTION(OC3, RPG1R, 11), | ||
1594 | PIC32_PINCTRL_FUNCTION(OC6, RPG1R, 12), | ||
1595 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPG1R, 13), | ||
1596 | PIC32_PINCTRL_FUNCTION(C2OUT, RPG1R, 14), | ||
1597 | PIC32_PINCTRL_FUNCTION(C1TX, RPG1R, 15)), | ||
1598 | PIC32_PINCTRL_GROUP(102, G6, | ||
1599 | PIC32_PINCTRL_FUNCTION(INT2, INT2R, 1), | ||
1600 | PIC32_PINCTRL_FUNCTION(T3CK, T3CKR, 1), | ||
1601 | PIC32_PINCTRL_FUNCTION(T8CK, T8CKR, 1), | ||
1602 | PIC32_PINCTRL_FUNCTION(IC2, IC2R, 1), | ||
1603 | PIC32_PINCTRL_FUNCTION(IC5, IC5R, 1), | ||
1604 | PIC32_PINCTRL_FUNCTION(IC9, IC9R, 1), | ||
1605 | PIC32_PINCTRL_FUNCTION(U1CTS, U1CTSR, 1), | ||
1606 | PIC32_PINCTRL_FUNCTION(U2RX, U2RXR, 1), | ||
1607 | PIC32_PINCTRL_FUNCTION(U5CTS, U5CTSR, 1), | ||
1608 | PIC32_PINCTRL_FUNCTION(SS1IN, SS1INR, 1), | ||
1609 | PIC32_PINCTRL_FUNCTION(SS3IN, SS3INR, 1), | ||
1610 | PIC32_PINCTRL_FUNCTION(SS4IN, SS4INR, 1), | ||
1611 | PIC32_PINCTRL_FUNCTION(SS5IN, SS5INR, 1), | ||
1612 | PIC32_PINCTRL_FUNCTION(C2RX, C2RXR, 1), | ||
1613 | PIC32_PINCTRL_FUNCTION(U3RTS, RPG6R, 1), | ||
1614 | PIC32_PINCTRL_FUNCTION(U4TX, RPG6R, 2), | ||
1615 | PIC32_PINCTRL_FUNCTION(U6TX, RPG6R, 4), | ||
1616 | PIC32_PINCTRL_FUNCTION(SS1OUT, RPG6R, 5), | ||
1617 | PIC32_PINCTRL_FUNCTION(SS3OUT, RPG6R, 7), | ||
1618 | PIC32_PINCTRL_FUNCTION(SS4OUT, RPG6R, 8), | ||
1619 | PIC32_PINCTRL_FUNCTION(SS5OUT, RPG6R, 9), | ||
1620 | PIC32_PINCTRL_FUNCTION(SDO6, RPG6R, 10), | ||
1621 | PIC32_PINCTRL_FUNCTION(OC5, RPG6R, 11), | ||
1622 | PIC32_PINCTRL_FUNCTION(OC8, RPG6R, 12), | ||
1623 | PIC32_PINCTRL_FUNCTION(C1OUT, RPG6R, 14), | ||
1624 | PIC32_PINCTRL_FUNCTION(REFCLKO3, RPG6R, 15)), | ||
1625 | PIC32_PINCTRL_GROUP(103, G7, | ||
1626 | PIC32_PINCTRL_FUNCTION(INT4, INT4R, 1), | ||
1627 | PIC32_PINCTRL_FUNCTION(T5CK, T5CKR, 1), | ||
1628 | PIC32_PINCTRL_FUNCTION(T7CK, T7CKR, 1), | ||
1629 | PIC32_PINCTRL_FUNCTION(IC4, IC4R, 1), | ||
1630 | PIC32_PINCTRL_FUNCTION(IC8, IC8R, 1), | ||
1631 | PIC32_PINCTRL_FUNCTION(U3RX, U3RXR, 1), | ||
1632 | PIC32_PINCTRL_FUNCTION(U4CTS, U4CTSR, 1), | ||
1633 | PIC32_PINCTRL_FUNCTION(SDI2, SDI2R, 1), | ||
1634 | PIC32_PINCTRL_FUNCTION(SDI4, SDI4R, 1), | ||
1635 | PIC32_PINCTRL_FUNCTION(C1RX, C1RXR, 1), | ||
1636 | PIC32_PINCTRL_FUNCTION(REFCLKI4, REFCLKI4R, 1), | ||
1637 | PIC32_PINCTRL_FUNCTION(U1TX, RPG7R, 1), | ||
1638 | PIC32_PINCTRL_FUNCTION(U2RTS, RPG7R, 2), | ||
1639 | PIC32_PINCTRL_FUNCTION(U5TX, RPG7R, 3), | ||
1640 | PIC32_PINCTRL_FUNCTION(U6RTS, RPG7R, 4), | ||
1641 | PIC32_PINCTRL_FUNCTION(SDO1, RPG7R, 5), | ||
1642 | PIC32_PINCTRL_FUNCTION(SDO2, RPG7R, 6), | ||
1643 | PIC32_PINCTRL_FUNCTION(SDO3, RPG7R, 7), | ||
1644 | PIC32_PINCTRL_FUNCTION(SDO4, RPG7R, 8), | ||
1645 | PIC32_PINCTRL_FUNCTION(SDO5, RPG7R, 9), | ||
1646 | PIC32_PINCTRL_FUNCTION(OC4, RPG7R, 11), | ||
1647 | PIC32_PINCTRL_FUNCTION(OC7, RPG7R, 12), | ||
1648 | PIC32_PINCTRL_FUNCTION(REFCLKO1, RPG7R, 15)), | ||
1649 | PIC32_PINCTRL_GROUP(104, G8, | ||
1650 | PIC32_PINCTRL_FUNCTION(INT3, INT3R, 1), | ||
1651 | PIC32_PINCTRL_FUNCTION(T2CK, T2CKR, 1), | ||
1652 | PIC32_PINCTRL_FUNCTION(T6CK, T6CKR, 1), | ||
1653 | PIC32_PINCTRL_FUNCTION(IC3, IC3R, 1), | ||
1654 | PIC32_PINCTRL_FUNCTION(IC7, IC7R, 1), | ||
1655 | PIC32_PINCTRL_FUNCTION(U1RX, U1RXR, 1), | ||
1656 | PIC32_PINCTRL_FUNCTION(U2CTS, U2CTSR, 1), | ||
1657 | PIC32_PINCTRL_FUNCTION(U5RX, U5RXR, 1), | ||
1658 | PIC32_PINCTRL_FUNCTION(U6CTS, U6CTSR, 1), | ||
1659 | PIC32_PINCTRL_FUNCTION(SDI1, SDI1R, 1), | ||
1660 | PIC32_PINCTRL_FUNCTION(SDI3, SDI3R, 1), | ||
1661 | PIC32_PINCTRL_FUNCTION(SDI5, SDI5R, 1), | ||
1662 | PIC32_PINCTRL_FUNCTION(SS6IN, SS6INR, 1), | ||
1663 | PIC32_PINCTRL_FUNCTION(REFCLKI1, REFCLKI1R, 1), | ||
1664 | PIC32_PINCTRL_FUNCTION(U3TX, RPG8R, 1), | ||
1665 | PIC32_PINCTRL_FUNCTION(U4RTS, RPG8R, 2), | ||
1666 | PIC32_PINCTRL_FUNCTION(SDO1, RPG8R, 5), | ||
1667 | PIC32_PINCTRL_FUNCTION(SDO2, RPG8R, 6), | ||
1668 | PIC32_PINCTRL_FUNCTION(SDO3, RPG8R, 7), | ||
1669 | PIC32_PINCTRL_FUNCTION(SDO5, RPG8R, 9), | ||
1670 | PIC32_PINCTRL_FUNCTION(SS6OUT, RPG8R, 10), | ||
1671 | PIC32_PINCTRL_FUNCTION(OC3, RPG8R, 11), | ||
1672 | PIC32_PINCTRL_FUNCTION(OC6, RPG8R, 12), | ||
1673 | PIC32_PINCTRL_FUNCTION(REFCLKO4, RPG8R, 13), | ||
1674 | PIC32_PINCTRL_FUNCTION(C2OUT, RPG8R, 14), | ||
1675 | PIC32_PINCTRL_FUNCTION(C1TX, RPG8R, 15)), | ||
1676 | PIC32_PINCTRL_GROUP(105, G9, | ||
1677 | PIC32_PINCTRL_FUNCTION(INT1, INT1R, 1), | ||
1678 | PIC32_PINCTRL_FUNCTION(T4CK, T4CKR, 1), | ||
1679 | PIC32_PINCTRL_FUNCTION(T9CK, T9CKR, 1), | ||
1680 | PIC32_PINCTRL_FUNCTION(IC1, IC1R, 1), | ||
1681 | PIC32_PINCTRL_FUNCTION(IC6, IC6R, 1), | ||
1682 | PIC32_PINCTRL_FUNCTION(U3CTS, U3CTSR, 1), | ||
1683 | PIC32_PINCTRL_FUNCTION(U4RX, U4RXR, 1), | ||
1684 | PIC32_PINCTRL_FUNCTION(U6RX, U6RXR, 1), | ||
1685 | PIC32_PINCTRL_FUNCTION(SS2IN, SS2INR, 1), | ||
1686 | PIC32_PINCTRL_FUNCTION(SDI6, SDI6R, 1), | ||
1687 | PIC32_PINCTRL_FUNCTION(OCFA, OCFAR, 1), | ||
1688 | PIC32_PINCTRL_FUNCTION(REFCLKI3, REFCLKI3R, 1), | ||
1689 | PIC32_PINCTRL_FUNCTION(U1RTS, RPG9R, 1), | ||
1690 | PIC32_PINCTRL_FUNCTION(U2TX, RPG9R, 2), | ||
1691 | PIC32_PINCTRL_FUNCTION(U5RTS, RPG9R, 3), | ||
1692 | PIC32_PINCTRL_FUNCTION(U6TX, RPG9R, 4), | ||
1693 | PIC32_PINCTRL_FUNCTION(SS2OUT, RPG9R, 6), | ||
1694 | PIC32_PINCTRL_FUNCTION(SDO4, RPG9R, 8), | ||
1695 | PIC32_PINCTRL_FUNCTION(SDO6, RPG9R, 10), | ||
1696 | PIC32_PINCTRL_FUNCTION(OC2, RPG9R, 11), | ||
1697 | PIC32_PINCTRL_FUNCTION(OC1, RPG9R, 12), | ||
1698 | PIC32_PINCTRL_FUNCTION(OC9, RPG9R, 13), | ||
1699 | PIC32_PINCTRL_FUNCTION(C2TX, RPG9R, 15)), | ||
1700 | }; | ||
1701 | |||
1702 | static inline struct pic32_gpio_bank *irqd_to_bank(struct irq_data *d) | ||
1703 | { | ||
1704 | return gpiochip_get_data(irq_data_get_irq_chip_data(d)); | ||
1705 | } | ||
1706 | |||
1707 | static inline struct pic32_gpio_bank *pctl_to_bank(struct pic32_pinctrl *pctl, | ||
1708 | unsigned pin) | ||
1709 | { | ||
1710 | return &pctl->gpio_banks[pin / PINS_PER_BANK]; | ||
1711 | } | ||
1712 | |||
1713 | static int pic32_pinctrl_get_groups_count(struct pinctrl_dev *pctldev) | ||
1714 | { | ||
1715 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1716 | |||
1717 | return pctl->ngroups; | ||
1718 | } | ||
1719 | |||
1720 | static const char *pic32_pinctrl_get_group_name(struct pinctrl_dev *pctldev, | ||
1721 | unsigned group) | ||
1722 | { | ||
1723 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1724 | |||
1725 | return pctl->groups[group].name; | ||
1726 | } | ||
1727 | |||
1728 | static int pic32_pinctrl_get_group_pins(struct pinctrl_dev *pctldev, | ||
1729 | unsigned group, | ||
1730 | const unsigned **pins, | ||
1731 | unsigned *num_pins) | ||
1732 | { | ||
1733 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1734 | |||
1735 | *pins = &pctl->groups[group].pin; | ||
1736 | *num_pins = 1; | ||
1737 | |||
1738 | return 0; | ||
1739 | } | ||
1740 | |||
1741 | static const struct pinctrl_ops pic32_pinctrl_ops = { | ||
1742 | .get_groups_count = pic32_pinctrl_get_groups_count, | ||
1743 | .get_group_name = pic32_pinctrl_get_group_name, | ||
1744 | .get_group_pins = pic32_pinctrl_get_group_pins, | ||
1745 | .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, | ||
1746 | .dt_free_map = pinctrl_utils_dt_free_map, | ||
1747 | }; | ||
1748 | |||
1749 | static int pic32_pinmux_get_functions_count(struct pinctrl_dev *pctldev) | ||
1750 | { | ||
1751 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1752 | |||
1753 | return pctl->nfunctions; | ||
1754 | } | ||
1755 | |||
1756 | static const char * | ||
1757 | pic32_pinmux_get_function_name(struct pinctrl_dev *pctldev, unsigned func) | ||
1758 | { | ||
1759 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1760 | |||
1761 | return pctl->functions[func].name; | ||
1762 | } | ||
1763 | |||
1764 | static int pic32_pinmux_get_function_groups(struct pinctrl_dev *pctldev, | ||
1765 | unsigned func, | ||
1766 | const char * const **groups, | ||
1767 | unsigned * const num_groups) | ||
1768 | { | ||
1769 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1770 | |||
1771 | *groups = pctl->functions[func].groups; | ||
1772 | *num_groups = pctl->functions[func].ngroups; | ||
1773 | |||
1774 | return 0; | ||
1775 | } | ||
1776 | |||
1777 | static int pic32_pinmux_enable(struct pinctrl_dev *pctldev, | ||
1778 | unsigned func, unsigned group) | ||
1779 | { | ||
1780 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1781 | const struct pic32_pin_group *pg = &pctl->groups[group]; | ||
1782 | const struct pic32_function *pf = &pctl->functions[func]; | ||
1783 | const char *fname = pf->name; | ||
1784 | struct pic32_desc_function *functions = pg->functions; | ||
1785 | |||
1786 | while (functions->name) { | ||
1787 | if (!strcmp(functions->name, fname)) { | ||
1788 | dev_dbg(pctl->dev, | ||
1789 | "setting function %s reg 0x%x = %d\n", | ||
1790 | fname, functions->muxreg, functions->muxval); | ||
1791 | |||
1792 | writel(functions->muxval, pctl->reg_base + functions->muxreg); | ||
1793 | |||
1794 | return 0; | ||
1795 | } | ||
1796 | |||
1797 | functions++; | ||
1798 | } | ||
1799 | |||
1800 | dev_err(pctl->dev, "cannot mux pin %u to function %u\n", group, func); | ||
1801 | |||
1802 | return -EINVAL; | ||
1803 | } | ||
1804 | |||
1805 | static int pic32_gpio_request_enable(struct pinctrl_dev *pctldev, | ||
1806 | struct pinctrl_gpio_range *range, | ||
1807 | unsigned offset) | ||
1808 | { | ||
1809 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1810 | struct pic32_gpio_bank *bank = gpiochip_get_data(range->gc); | ||
1811 | u32 mask = BIT(offset - bank->gpio_chip.base); | ||
1812 | |||
1813 | dev_dbg(pctl->dev, "requesting gpio %d in bank %d with mask 0x%x\n", | ||
1814 | offset, bank->gpio_chip.base, mask); | ||
1815 | |||
1816 | writel(mask, bank->reg_base + PIC32_CLR(ANSEL_REG)); | ||
1817 | |||
1818 | return 0; | ||
1819 | } | ||
1820 | |||
1821 | static int pic32_gpio_direction_input(struct gpio_chip *chip, | ||
1822 | unsigned offset) | ||
1823 | { | ||
1824 | struct pic32_gpio_bank *bank = gpiochip_get_data(chip); | ||
1825 | u32 mask = BIT(offset); | ||
1826 | |||
1827 | writel(mask, bank->reg_base + PIC32_SET(TRIS_REG)); | ||
1828 | |||
1829 | return 0; | ||
1830 | } | ||
1831 | |||
1832 | static int pic32_gpio_get(struct gpio_chip *chip, unsigned offset) | ||
1833 | { | ||
1834 | struct pic32_gpio_bank *bank = gpiochip_get_data(chip); | ||
1835 | |||
1836 | return !!(readl(bank->reg_base + PORT_REG) & BIT(offset)); | ||
1837 | } | ||
1838 | |||
1839 | static void pic32_gpio_set(struct gpio_chip *chip, unsigned offset, | ||
1840 | int value) | ||
1841 | { | ||
1842 | struct pic32_gpio_bank *bank = gpiochip_get_data(chip); | ||
1843 | u32 mask = BIT(offset); | ||
1844 | |||
1845 | if (value) | ||
1846 | writel(mask, bank->reg_base + PIC32_SET(PORT_REG)); | ||
1847 | else | ||
1848 | writel(mask, bank->reg_base + PIC32_CLR(PORT_REG)); | ||
1849 | } | ||
1850 | |||
1851 | static int pic32_gpio_direction_output(struct gpio_chip *chip, | ||
1852 | unsigned offset, int value) | ||
1853 | { | ||
1854 | struct pic32_gpio_bank *bank = gpiochip_get_data(chip); | ||
1855 | u32 mask = BIT(offset); | ||
1856 | |||
1857 | pic32_gpio_set(chip, offset, value); | ||
1858 | writel(mask, bank->reg_base + PIC32_CLR(TRIS_REG)); | ||
1859 | |||
1860 | return 0; | ||
1861 | } | ||
1862 | |||
1863 | static int pic32_gpio_set_direction(struct pinctrl_dev *pctldev, | ||
1864 | struct pinctrl_gpio_range *range, | ||
1865 | unsigned offset, bool input) | ||
1866 | { | ||
1867 | struct gpio_chip *chip = range->gc; | ||
1868 | |||
1869 | if (input) | ||
1870 | pic32_gpio_direction_input(chip, offset); | ||
1871 | else | ||
1872 | pic32_gpio_direction_output(chip, offset, 0); | ||
1873 | |||
1874 | return 0; | ||
1875 | } | ||
1876 | |||
1877 | static const struct pinmux_ops pic32_pinmux_ops = { | ||
1878 | .get_functions_count = pic32_pinmux_get_functions_count, | ||
1879 | .get_function_name = pic32_pinmux_get_function_name, | ||
1880 | .get_function_groups = pic32_pinmux_get_function_groups, | ||
1881 | .set_mux = pic32_pinmux_enable, | ||
1882 | .gpio_request_enable = pic32_gpio_request_enable, | ||
1883 | .gpio_set_direction = pic32_gpio_set_direction, | ||
1884 | }; | ||
1885 | |||
1886 | static int pic32_pinconf_get(struct pinctrl_dev *pctldev, unsigned pin, | ||
1887 | unsigned long *config) | ||
1888 | { | ||
1889 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1890 | struct pic32_gpio_bank *bank = pctl_to_bank(pctl, pin); | ||
1891 | unsigned param = pinconf_to_config_param(*config); | ||
1892 | u32 mask = BIT(pin - bank->gpio_chip.base); | ||
1893 | u32 arg; | ||
1894 | |||
1895 | switch (param) { | ||
1896 | case PIN_CONFIG_BIAS_PULL_UP: | ||
1897 | arg = !!(readl(bank->reg_base + CNPU_REG) & mask); | ||
1898 | break; | ||
1899 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
1900 | arg = !!(readl(bank->reg_base + CNPD_REG) & mask); | ||
1901 | break; | ||
1902 | case PIN_CONFIG_MICROCHIP_DIGITAL: | ||
1903 | arg = !(readl(bank->reg_base + ANSEL_REG) & mask); | ||
1904 | break; | ||
1905 | case PIN_CONFIG_MICROCHIP_ANALOG: | ||
1906 | arg = !!(readl(bank->reg_base + ANSEL_REG) & mask); | ||
1907 | break; | ||
1908 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
1909 | arg = !!(readl(bank->reg_base + ODCU_REG) & mask); | ||
1910 | break; | ||
1911 | case PIN_CONFIG_INPUT_ENABLE: | ||
1912 | arg = !!(readl(bank->reg_base + TRIS_REG) & mask); | ||
1913 | break; | ||
1914 | case PIN_CONFIG_OUTPUT: | ||
1915 | arg = !(readl(bank->reg_base + TRIS_REG) & mask); | ||
1916 | break; | ||
1917 | default: | ||
1918 | dev_err(pctl->dev, "Property %u not supported\n", param); | ||
1919 | return -ENOTSUPP; | ||
1920 | } | ||
1921 | |||
1922 | *config = pinconf_to_config_packed(param, arg); | ||
1923 | |||
1924 | return 0; | ||
1925 | } | ||
1926 | |||
1927 | static int pic32_pinconf_set(struct pinctrl_dev *pctldev, unsigned pin, | ||
1928 | unsigned long *configs, unsigned num_configs) | ||
1929 | { | ||
1930 | struct pic32_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
1931 | struct pic32_gpio_bank *bank = pctl_to_bank(pctl, pin); | ||
1932 | unsigned param; | ||
1933 | u32 arg; | ||
1934 | unsigned int i; | ||
1935 | u32 offset = pin - bank->gpio_chip.base; | ||
1936 | u32 mask = BIT(offset); | ||
1937 | |||
1938 | dev_dbg(pctl->dev, "setting pin %d bank %d mask 0x%x\n", | ||
1939 | pin, bank->gpio_chip.base, mask); | ||
1940 | |||
1941 | for (i = 0; i < num_configs; i++) { | ||
1942 | param = pinconf_to_config_param(configs[i]); | ||
1943 | arg = pinconf_to_config_argument(configs[i]); | ||
1944 | |||
1945 | switch (param) { | ||
1946 | case PIN_CONFIG_BIAS_PULL_UP: | ||
1947 | dev_dbg(pctl->dev, " pullup\n"); | ||
1948 | writel(mask, bank->reg_base +PIC32_SET(CNPU_REG)); | ||
1949 | break; | ||
1950 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
1951 | dev_dbg(pctl->dev, " pulldown\n"); | ||
1952 | writel(mask, bank->reg_base + PIC32_SET(CNPD_REG)); | ||
1953 | break; | ||
1954 | case PIN_CONFIG_MICROCHIP_DIGITAL: | ||
1955 | dev_dbg(pctl->dev, " digital\n"); | ||
1956 | writel(mask, bank->reg_base + PIC32_CLR(ANSEL_REG)); | ||
1957 | break; | ||
1958 | case PIN_CONFIG_MICROCHIP_ANALOG: | ||
1959 | dev_dbg(pctl->dev, " analog\n"); | ||
1960 | writel(mask, bank->reg_base + PIC32_SET(ANSEL_REG)); | ||
1961 | break; | ||
1962 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
1963 | dev_dbg(pctl->dev, " opendrain\n"); | ||
1964 | writel(mask, bank->reg_base + PIC32_SET(ODCU_REG)); | ||
1965 | break; | ||
1966 | case PIN_CONFIG_INPUT_ENABLE: | ||
1967 | pic32_gpio_direction_input(&bank->gpio_chip, offset); | ||
1968 | break; | ||
1969 | case PIN_CONFIG_OUTPUT: | ||
1970 | pic32_gpio_direction_output(&bank->gpio_chip, | ||
1971 | offset, arg); | ||
1972 | break; | ||
1973 | default: | ||
1974 | dev_err(pctl->dev, "Property %u not supported\n", | ||
1975 | param); | ||
1976 | return -ENOTSUPP; | ||
1977 | } | ||
1978 | } | ||
1979 | |||
1980 | return 0; | ||
1981 | } | ||
1982 | |||
1983 | static const struct pinconf_ops pic32_pinconf_ops = { | ||
1984 | .pin_config_get = pic32_pinconf_get, | ||
1985 | .pin_config_set = pic32_pinconf_set, | ||
1986 | .is_generic = true, | ||
1987 | }; | ||
1988 | |||
1989 | static struct pinctrl_desc pic32_pinctrl_desc = { | ||
1990 | .name = "pic32-pinctrl", | ||
1991 | .pctlops = &pic32_pinctrl_ops, | ||
1992 | .pmxops = &pic32_pinmux_ops, | ||
1993 | .confops = &pic32_pinconf_ops, | ||
1994 | .owner = THIS_MODULE, | ||
1995 | }; | ||
1996 | |||
1997 | static int pic32_gpio_get_direction(struct gpio_chip *chip, unsigned offset) | ||
1998 | { | ||
1999 | struct pic32_gpio_bank *bank = gpiochip_get_data(chip); | ||
2000 | |||
2001 | return !!(readl(bank->reg_base + TRIS_REG) & BIT(offset)); | ||
2002 | } | ||
2003 | |||
2004 | static void pic32_gpio_irq_ack(struct irq_data *data) | ||
2005 | { | ||
2006 | struct pic32_gpio_bank *bank = irqd_to_bank(data); | ||
2007 | |||
2008 | writel(0, bank->reg_base + CNF_REG); | ||
2009 | } | ||
2010 | |||
2011 | static void pic32_gpio_irq_mask(struct irq_data *data) | ||
2012 | { | ||
2013 | struct pic32_gpio_bank *bank = irqd_to_bank(data); | ||
2014 | |||
2015 | writel(BIT(PIC32_CNCON_ON), bank->reg_base + PIC32_CLR(CNCON_REG)); | ||
2016 | } | ||
2017 | |||
2018 | static void pic32_gpio_irq_unmask(struct irq_data *data) | ||
2019 | { | ||
2020 | struct pic32_gpio_bank *bank = irqd_to_bank(data); | ||
2021 | |||
2022 | writel(BIT(PIC32_CNCON_ON), bank->reg_base + PIC32_SET(CNCON_REG)); | ||
2023 | } | ||
2024 | |||
2025 | static unsigned int pic32_gpio_irq_startup(struct irq_data *data) | ||
2026 | { | ||
2027 | struct gpio_chip *chip = irq_data_get_irq_chip_data(data); | ||
2028 | |||
2029 | pic32_gpio_direction_input(chip, data->hwirq); | ||
2030 | pic32_gpio_irq_unmask(data); | ||
2031 | |||
2032 | return 0; | ||
2033 | } | ||
2034 | |||
2035 | static int pic32_gpio_irq_set_type(struct irq_data *data, unsigned int type) | ||
2036 | { | ||
2037 | struct pic32_gpio_bank *bank = irqd_to_bank(data); | ||
2038 | u32 mask = BIT(data->hwirq); | ||
2039 | |||
2040 | switch (type & IRQ_TYPE_SENSE_MASK) { | ||
2041 | case IRQ_TYPE_EDGE_RISING: | ||
2042 | /* enable RISE */ | ||
2043 | writel(mask, bank->reg_base + PIC32_SET(CNEN_REG)); | ||
2044 | /* disable FALL */ | ||
2045 | writel(mask, bank->reg_base + PIC32_CLR(CNNE_REG)); | ||
2046 | /* enable EDGE */ | ||
2047 | writel(BIT(PIC32_CNCON_EDGE), bank->reg_base + PIC32_SET(CNCON_REG)); | ||
2048 | break; | ||
2049 | case IRQ_TYPE_EDGE_FALLING: | ||
2050 | /* disable RISE */ | ||
2051 | writel(mask, bank->reg_base + PIC32_CLR(CNEN_REG)); | ||
2052 | /* enable FALL */ | ||
2053 | writel(mask, bank->reg_base + PIC32_SET(CNNE_REG)); | ||
2054 | /* enable EDGE */ | ||
2055 | writel(BIT(PIC32_CNCON_EDGE), bank->reg_base + PIC32_SET(CNCON_REG)); | ||
2056 | break; | ||
2057 | case IRQ_TYPE_EDGE_BOTH: | ||
2058 | /* enable RISE */ | ||
2059 | writel(mask, bank->reg_base + PIC32_SET(CNEN_REG)); | ||
2060 | /* enable FALL */ | ||
2061 | writel(mask, bank->reg_base + PIC32_SET(CNNE_REG)); | ||
2062 | /* enable EDGE */ | ||
2063 | writel(BIT(PIC32_CNCON_EDGE), bank->reg_base + PIC32_SET(CNCON_REG)); | ||
2064 | break; | ||
2065 | default: | ||
2066 | return -EINVAL; | ||
2067 | } | ||
2068 | |||
2069 | irq_set_handler_locked(data, handle_edge_irq); | ||
2070 | |||
2071 | return 0; | ||
2072 | } | ||
2073 | |||
2074 | static u32 pic32_gpio_get_pending(struct gpio_chip *gc, unsigned long status) | ||
2075 | { | ||
2076 | struct pic32_gpio_bank *bank = gpiochip_get_data(gc); | ||
2077 | u32 pending = 0; | ||
2078 | u32 cnen_rise, cnne_fall; | ||
2079 | u32 pin; | ||
2080 | |||
2081 | cnen_rise = readl(bank->reg_base + CNEN_REG); | ||
2082 | cnne_fall = readl(bank->reg_base + CNNE_REG); | ||
2083 | |||
2084 | for_each_set_bit(pin, &status, BITS_PER_LONG) { | ||
2085 | u32 mask = BIT(pin); | ||
2086 | |||
2087 | if ((mask & cnen_rise) || (mask && cnne_fall)) | ||
2088 | pending |= mask; | ||
2089 | } | ||
2090 | |||
2091 | return pending; | ||
2092 | } | ||
2093 | |||
2094 | static void pic32_gpio_irq_handler(struct irq_desc *desc) | ||
2095 | { | ||
2096 | struct gpio_chip *gc = irq_desc_get_handler_data(desc); | ||
2097 | struct pic32_gpio_bank *bank = gpiochip_get_data(gc); | ||
2098 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
2099 | unsigned long pending; | ||
2100 | unsigned int pin; | ||
2101 | u32 stat; | ||
2102 | |||
2103 | chained_irq_enter(chip, desc); | ||
2104 | |||
2105 | stat = readl(bank->reg_base + CNF_REG); | ||
2106 | pending = pic32_gpio_get_pending(gc, stat); | ||
2107 | |||
2108 | for_each_set_bit(pin, &pending, BITS_PER_LONG) | ||
2109 | generic_handle_irq(irq_linear_revmap(gc->irqdomain, pin)); | ||
2110 | |||
2111 | chained_irq_exit(chip, desc); | ||
2112 | } | ||
2113 | |||
2114 | #define GPIO_BANK(_bank, _npins) \ | ||
2115 | { \ | ||
2116 | .gpio_chip = { \ | ||
2117 | .label = "GPIO" #_bank, \ | ||
2118 | .request = gpiochip_generic_request, \ | ||
2119 | .free = gpiochip_generic_free, \ | ||
2120 | .get_direction = pic32_gpio_get_direction, \ | ||
2121 | .direction_input = pic32_gpio_direction_input, \ | ||
2122 | .direction_output = pic32_gpio_direction_output, \ | ||
2123 | .get = pic32_gpio_get, \ | ||
2124 | .set = pic32_gpio_set, \ | ||
2125 | .ngpio = _npins, \ | ||
2126 | .base = GPIO_BANK_START(_bank), \ | ||
2127 | .owner = THIS_MODULE, \ | ||
2128 | .can_sleep = 0, \ | ||
2129 | }, \ | ||
2130 | .irq_chip = { \ | ||
2131 | .name = "GPIO" #_bank, \ | ||
2132 | .irq_startup = pic32_gpio_irq_startup, \ | ||
2133 | .irq_ack = pic32_gpio_irq_ack, \ | ||
2134 | .irq_mask = pic32_gpio_irq_mask, \ | ||
2135 | .irq_unmask = pic32_gpio_irq_unmask, \ | ||
2136 | .irq_set_type = pic32_gpio_irq_set_type, \ | ||
2137 | }, \ | ||
2138 | } | ||
2139 | |||
2140 | static struct pic32_gpio_bank pic32_gpio_banks[] = { | ||
2141 | GPIO_BANK(0, PINS_PER_BANK), | ||
2142 | GPIO_BANK(1, PINS_PER_BANK), | ||
2143 | GPIO_BANK(2, PINS_PER_BANK), | ||
2144 | GPIO_BANK(3, PINS_PER_BANK), | ||
2145 | GPIO_BANK(4, PINS_PER_BANK), | ||
2146 | GPIO_BANK(5, PINS_PER_BANK), | ||
2147 | GPIO_BANK(6, PINS_PER_BANK), | ||
2148 | GPIO_BANK(7, PINS_PER_BANK), | ||
2149 | GPIO_BANK(8, PINS_PER_BANK), | ||
2150 | GPIO_BANK(9, PINS_PER_BANK), | ||
2151 | }; | ||
2152 | |||
2153 | static int pic32_pinctrl_probe(struct platform_device *pdev) | ||
2154 | { | ||
2155 | struct pic32_pinctrl *pctl; | ||
2156 | struct resource *res; | ||
2157 | int ret; | ||
2158 | |||
2159 | pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL); | ||
2160 | if (!pctl) | ||
2161 | return -ENOMEM; | ||
2162 | pctl->dev = &pdev->dev; | ||
2163 | dev_set_drvdata(&pdev->dev, pctl); | ||
2164 | |||
2165 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
2166 | pctl->reg_base = devm_ioremap_resource(&pdev->dev, res); | ||
2167 | if (IS_ERR(pctl->reg_base)) | ||
2168 | return PTR_ERR(pctl->reg_base); | ||
2169 | |||
2170 | pctl->clk = devm_clk_get(&pdev->dev, NULL); | ||
2171 | if (IS_ERR(pctl->clk)) { | ||
2172 | ret = PTR_ERR(pctl->clk); | ||
2173 | dev_err(&pdev->dev, "clk get failed\n"); | ||
2174 | return ret; | ||
2175 | } | ||
2176 | |||
2177 | ret = clk_prepare_enable(pctl->clk); | ||
2178 | if (ret) { | ||
2179 | dev_err(&pdev->dev, "clk enable failed\n"); | ||
2180 | return ret; | ||
2181 | } | ||
2182 | |||
2183 | pctl->pins = pic32_pins; | ||
2184 | pctl->npins = ARRAY_SIZE(pic32_pins); | ||
2185 | pctl->functions = pic32_functions; | ||
2186 | pctl->nfunctions = ARRAY_SIZE(pic32_functions); | ||
2187 | pctl->groups = pic32_groups; | ||
2188 | pctl->ngroups = ARRAY_SIZE(pic32_groups); | ||
2189 | pctl->gpio_banks = pic32_gpio_banks; | ||
2190 | pctl->nbanks = ARRAY_SIZE(pic32_gpio_banks); | ||
2191 | |||
2192 | pic32_pinctrl_desc.pins = pctl->pins; | ||
2193 | pic32_pinctrl_desc.npins = pctl->npins; | ||
2194 | pic32_pinctrl_desc.custom_params = pic32_mpp_bindings; | ||
2195 | pic32_pinctrl_desc.num_custom_params = ARRAY_SIZE(pic32_mpp_bindings); | ||
2196 | |||
2197 | pctl->pctldev = pinctrl_register(&pic32_pinctrl_desc, &pdev->dev, pctl); | ||
2198 | if (IS_ERR(pctl->pctldev)) { | ||
2199 | dev_err(&pdev->dev, "Failed to register pinctrl device\n"); | ||
2200 | return PTR_ERR(pctl->pctldev); | ||
2201 | } | ||
2202 | |||
2203 | return 0; | ||
2204 | } | ||
2205 | |||
2206 | static int pic32_gpio_probe(struct platform_device *pdev) | ||
2207 | { | ||
2208 | struct device_node *np = pdev->dev.of_node; | ||
2209 | struct pic32_gpio_bank *bank; | ||
2210 | u32 id; | ||
2211 | int irq, ret; | ||
2212 | struct resource *res; | ||
2213 | |||
2214 | if (of_property_read_u32(np, "microchip,gpio-bank", &id)) { | ||
2215 | dev_err(&pdev->dev, "microchip,gpio-bank property not found\n"); | ||
2216 | return -EINVAL; | ||
2217 | } | ||
2218 | |||
2219 | if (id >= ARRAY_SIZE(pic32_gpio_banks)) { | ||
2220 | dev_err(&pdev->dev, "invalid microchip,gpio-bank property\n"); | ||
2221 | return -EINVAL; | ||
2222 | } | ||
2223 | |||
2224 | bank = &pic32_gpio_banks[id]; | ||
2225 | |||
2226 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
2227 | bank->reg_base = devm_ioremap_resource(&pdev->dev, res); | ||
2228 | if (IS_ERR(bank->reg_base)) | ||
2229 | return PTR_ERR(bank->reg_base); | ||
2230 | |||
2231 | irq = platform_get_irq(pdev, 0); | ||
2232 | if (irq < 0) { | ||
2233 | dev_err(&pdev->dev, "irq get failed\n"); | ||
2234 | return irq; | ||
2235 | } | ||
2236 | |||
2237 | bank->clk = devm_clk_get(&pdev->dev, NULL); | ||
2238 | if (IS_ERR(bank->clk)) { | ||
2239 | ret = PTR_ERR(bank->clk); | ||
2240 | dev_err(&pdev->dev, "clk get failed\n"); | ||
2241 | return ret; | ||
2242 | } | ||
2243 | |||
2244 | ret = clk_prepare_enable(bank->clk); | ||
2245 | if (ret) { | ||
2246 | dev_err(&pdev->dev, "clk enable failed\n"); | ||
2247 | return ret; | ||
2248 | } | ||
2249 | |||
2250 | bank->gpio_chip.parent = &pdev->dev; | ||
2251 | bank->gpio_chip.of_node = np; | ||
2252 | ret = gpiochip_add_data(&bank->gpio_chip, bank); | ||
2253 | if (ret < 0) { | ||
2254 | dev_err(&pdev->dev, "Failed to add GPIO chip %u: %d\n", | ||
2255 | id, ret); | ||
2256 | return ret; | ||
2257 | } | ||
2258 | |||
2259 | ret = gpiochip_irqchip_add(&bank->gpio_chip, &bank->irq_chip, | ||
2260 | 0, handle_level_irq, IRQ_TYPE_NONE); | ||
2261 | if (ret < 0) { | ||
2262 | dev_err(&pdev->dev, "Failed to add IRQ chip %u: %d\n", | ||
2263 | id, ret); | ||
2264 | gpiochip_remove(&bank->gpio_chip); | ||
2265 | return ret; | ||
2266 | } | ||
2267 | |||
2268 | gpiochip_set_chained_irqchip(&bank->gpio_chip, &bank->irq_chip, | ||
2269 | irq, pic32_gpio_irq_handler); | ||
2270 | |||
2271 | return 0; | ||
2272 | } | ||
2273 | |||
2274 | static const struct of_device_id pic32_pinctrl_of_match[] = { | ||
2275 | { .compatible = "microchip,pic32mzda-pinctrl", }, | ||
2276 | { }, | ||
2277 | }; | ||
2278 | |||
2279 | static struct platform_driver pic32_pinctrl_driver = { | ||
2280 | .driver = { | ||
2281 | .name = "pic32-pinctrl", | ||
2282 | .of_match_table = pic32_pinctrl_of_match, | ||
2283 | .suppress_bind_attrs = true, | ||
2284 | }, | ||
2285 | .probe = pic32_pinctrl_probe, | ||
2286 | }; | ||
2287 | |||
2288 | static const struct of_device_id pic32_gpio_of_match[] = { | ||
2289 | { .compatible = "microchip,pic32mzda-gpio", }, | ||
2290 | { }, | ||
2291 | }; | ||
2292 | |||
2293 | static struct platform_driver pic32_gpio_driver = { | ||
2294 | .driver = { | ||
2295 | .name = "pic32-gpio", | ||
2296 | .of_match_table = pic32_gpio_of_match, | ||
2297 | .suppress_bind_attrs = true, | ||
2298 | }, | ||
2299 | .probe = pic32_gpio_probe, | ||
2300 | }; | ||
2301 | |||
2302 | static int __init pic32_gpio_register(void) | ||
2303 | { | ||
2304 | return platform_driver_register(&pic32_gpio_driver); | ||
2305 | } | ||
2306 | arch_initcall(pic32_gpio_register); | ||
2307 | |||
2308 | static int __init pic32_pinctrl_register(void) | ||
2309 | { | ||
2310 | return platform_driver_register(&pic32_pinctrl_driver); | ||
2311 | } | ||
2312 | arch_initcall(pic32_pinctrl_register); | ||
diff --git a/drivers/pinctrl/pinctrl-pic32.h b/drivers/pinctrl/pinctrl-pic32.h new file mode 100644 index 000000000000..12826267dc96 --- /dev/null +++ b/drivers/pinctrl/pinctrl-pic32.h | |||
@@ -0,0 +1,141 @@ | |||
1 | /* | ||
2 | * PIC32 pinctrl driver | ||
3 | * | ||
4 | * Joshua Henderson, <joshua.henderson@microchip.com> | ||
5 | * Copyright (C) 2015 Microchip Technology Inc. All rights reserved. | ||
6 | * | ||
7 | * This program is free software; you can distribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License (Version 2) as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
14 | * for more details. | ||
15 | */ | ||
16 | #ifndef PINCTRL_PINCTRL_PIC32_H | ||
17 | #define PINCTRL_PINCTRL_PIC32_H | ||
18 | |||
19 | /* PORT Registers */ | ||
20 | #define ANSEL_REG 0x00 | ||
21 | #define TRIS_REG 0x10 | ||
22 | #define PORT_REG 0x20 | ||
23 | #define LAT_REG 0x30 | ||
24 | #define ODCU_REG 0x40 | ||
25 | #define CNPU_REG 0x50 | ||
26 | #define CNPD_REG 0x60 | ||
27 | #define CNCON_REG 0x70 | ||
28 | #define CNEN_REG 0x80 | ||
29 | #define CNSTAT_REG 0x90 | ||
30 | #define CNNE_REG 0xA0 | ||
31 | #define CNF_REG 0xB0 | ||
32 | |||
33 | /* Input PPS Registers */ | ||
34 | #define INT1R 0x04 | ||
35 | #define INT2R 0x08 | ||
36 | #define INT3R 0x0C | ||
37 | #define INT4R 0x10 | ||
38 | #define T2CKR 0x18 | ||
39 | #define T3CKR 0x1C | ||
40 | #define T4CKR 0x20 | ||
41 | #define T5CKR 0x24 | ||
42 | #define T6CKR 0x28 | ||
43 | #define T7CKR 0x2C | ||
44 | #define T8CKR 0x30 | ||
45 | #define T9CKR 0x34 | ||
46 | #define IC1R 0x38 | ||
47 | #define IC2R 0x3C | ||
48 | #define IC3R 0x40 | ||
49 | #define IC4R 0x44 | ||
50 | #define IC5R 0x48 | ||
51 | #define IC6R 0x4C | ||
52 | #define IC7R 0x50 | ||
53 | #define IC8R 0x54 | ||
54 | #define IC9R 0x58 | ||
55 | #define OCFAR 0x60 | ||
56 | #define U1RXR 0x68 | ||
57 | #define U1CTSR 0x6C | ||
58 | #define U2RXR 0x70 | ||
59 | #define U2CTSR 0x74 | ||
60 | #define U3RXR 0x78 | ||
61 | #define U3CTSR 0x7C | ||
62 | #define U4RXR 0x80 | ||
63 | #define U4CTSR 0x84 | ||
64 | #define U5RXR 0x88 | ||
65 | #define U5CTSR 0x8C | ||
66 | #define U6RXR 0x90 | ||
67 | #define U6CTSR 0x94 | ||
68 | #define SDI1R 0x9C | ||
69 | #define SS1INR 0xA0 | ||
70 | #define SDI2R 0xA8 | ||
71 | #define SS2INR 0xAC | ||
72 | #define SDI3R 0xB4 | ||
73 | #define SS3INR 0xB8 | ||
74 | #define SDI4R 0xC0 | ||
75 | #define SS4INR 0xC4 | ||
76 | #define SDI5R 0xCC | ||
77 | #define SS5INR 0xD0 | ||
78 | #define SDI6R 0xD8 | ||
79 | #define SS6INR 0xDC | ||
80 | #define C1RXR 0xE0 | ||
81 | #define C2RXR 0xE4 | ||
82 | #define REFCLKI1R 0xE8 | ||
83 | #define REFCLKI3R 0xF0 | ||
84 | #define REFCLKI4R 0xF4 | ||
85 | |||
86 | /* Output PPS Registers */ | ||
87 | #define RPA14R 0x138 | ||
88 | #define RPA15R 0x13C | ||
89 | #define RPB0R 0x140 | ||
90 | #define RPB1R 0x144 | ||
91 | #define RPB2R 0x148 | ||
92 | #define RPB3R 0x14C | ||
93 | #define RPB5R 0x154 | ||
94 | #define RPB6R 0x158 | ||
95 | #define RPB7R 0x15C | ||
96 | #define RPB8R 0x160 | ||
97 | #define RPB9R 0x164 | ||
98 | #define RPB10R 0x168 | ||
99 | #define RPB14R 0x178 | ||
100 | #define RPB15R 0x17C | ||
101 | #define RPC1R 0x184 | ||
102 | #define RPC2R 0x188 | ||
103 | #define RPC3R 0x18C | ||
104 | #define RPC4R 0x190 | ||
105 | #define RPC13R 0x1B4 | ||
106 | #define RPC14R 0x1B8 | ||
107 | #define RPD0R 0x1C0 | ||
108 | #define RPD1R 0x1C4 | ||
109 | #define RPD2R 0x1C8 | ||
110 | #define RPD3R 0x1CC | ||
111 | #define RPD4R 0x1D0 | ||
112 | #define RPD5R 0x1D4 | ||
113 | #define RPD6R 0x1D8 | ||
114 | #define RPD7R 0x1DC | ||
115 | #define RPD9R 0x1E4 | ||
116 | #define RPD10R 0x1E8 | ||
117 | #define RPD11R 0x1EC | ||
118 | #define RPD12R 0x1F0 | ||
119 | #define RPD14R 0x1F8 | ||
120 | #define RPD15R 0x1FC | ||
121 | #define RPE3R 0x20C | ||
122 | #define RPE5R 0x214 | ||
123 | #define RPE8R 0x220 | ||
124 | #define RPE9R 0x224 | ||
125 | #define RPF0R 0x240 | ||
126 | #define RPF1R 0x244 | ||
127 | #define RPF2R 0x248 | ||
128 | #define RPF3R 0x24C | ||
129 | #define RPF4R 0x250 | ||
130 | #define RPF5R 0x254 | ||
131 | #define RPF8R 0x260 | ||
132 | #define RPF12R 0x270 | ||
133 | #define RPF13R 0x274 | ||
134 | #define RPG0R 0x280 | ||
135 | #define RPG1R 0x284 | ||
136 | #define RPG6R 0x298 | ||
137 | #define RPG7R 0x29C | ||
138 | #define RPG8R 0x2A0 | ||
139 | #define RPG9R 0x2A4 | ||
140 | |||
141 | #endif /* PINCTRL_PINCTRL_PIC32_H */ | ||