GNU Linux-libre 6.7.9-gnu
[releases.git] / arch / mips / pic32 / pic32mzda / early_pin.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Joshua Henderson <joshua.henderson@microchip.com>
4  * Copyright (C) 2015 Microchip Technology Inc.  All rights reserved.
5  */
6 #ifndef _PIC32MZDA_EARLY_PIN_H
7 #define _PIC32MZDA_EARLY_PIN_H
8
9 /*
10  * This is a complete, yet overly simplistic and unoptimized, PIC32MZDA PPS
11  * configuration only useful before we have full pinctrl initialized.
12  */
13
14 /* Input PPS Functions */
15 enum {
16         IN_FUNC_INT3,
17         IN_FUNC_T2CK,
18         IN_FUNC_T6CK,
19         IN_FUNC_IC3,
20         IN_FUNC_IC7,
21         IN_FUNC_U1RX,
22         IN_FUNC_U2CTS,
23         IN_FUNC_U5RX,
24         IN_FUNC_U6CTS,
25         IN_FUNC_SDI1,
26         IN_FUNC_SDI3,
27         IN_FUNC_SDI5,
28         IN_FUNC_SS6,
29         IN_FUNC_REFCLKI1,
30         IN_FUNC_INT4,
31         IN_FUNC_T5CK,
32         IN_FUNC_T7CK,
33         IN_FUNC_IC4,
34         IN_FUNC_IC8,
35         IN_FUNC_U3RX,
36         IN_FUNC_U4CTS,
37         IN_FUNC_SDI2,
38         IN_FUNC_SDI4,
39         IN_FUNC_C1RX,
40         IN_FUNC_REFCLKI4,
41         IN_FUNC_INT2,
42         IN_FUNC_T3CK,
43         IN_FUNC_T8CK,
44         IN_FUNC_IC2,
45         IN_FUNC_IC5,
46         IN_FUNC_IC9,
47         IN_FUNC_U1CTS,
48         IN_FUNC_U2RX,
49         IN_FUNC_U5CTS,
50         IN_FUNC_SS1,
51         IN_FUNC_SS3,
52         IN_FUNC_SS4,
53         IN_FUNC_SS5,
54         IN_FUNC_C2RX,
55         IN_FUNC_INT1,
56         IN_FUNC_T4CK,
57         IN_FUNC_T9CK,
58         IN_FUNC_IC1,
59         IN_FUNC_IC6,
60         IN_FUNC_U3CTS,
61         IN_FUNC_U4RX,
62         IN_FUNC_U6RX,
63         IN_FUNC_SS2,
64         IN_FUNC_SDI6,
65         IN_FUNC_OCFA,
66         IN_FUNC_REFCLKI3,
67 };
68
69 /* Input PPS Pins */
70 #define IN_RPD2 0x00
71 #define IN_RPG8 0x01
72 #define IN_RPF4 0x02
73 #define IN_RPD10 0x03
74 #define IN_RPF1 0x04
75 #define IN_RPB9 0x05
76 #define IN_RPB10 0x06
77 #define IN_RPC14 0x07
78 #define IN_RPB5 0x08
79 #define IN_RPC1 0x0A
80 #define IN_RPD14 0x0B
81 #define IN_RPG1 0x0C
82 #define IN_RPA14 0x0D
83 #define IN_RPD6 0x0E
84 #define IN_RPD3 0x00
85 #define IN_RPG7 0x01
86 #define IN_RPF5 0x02
87 #define IN_RPD11 0x03
88 #define IN_RPF0 0x04
89 #define IN_RPB1 0x05
90 #define IN_RPE5 0x06
91 #define IN_RPC13 0x07
92 #define IN_RPB3 0x08
93 #define IN_RPC4 0x0A
94 #define IN_RPD15 0x0B
95 #define IN_RPG0 0x0C
96 #define IN_RPA15 0x0D
97 #define IN_RPD7 0x0E
98 #define IN_RPD9 0x00
99 #define IN_RPG6 0x01
100 #define IN_RPB8 0x02
101 #define IN_RPB15 0x03
102 #define IN_RPD4 0x04
103 #define IN_RPB0 0x05
104 #define IN_RPE3 0x06
105 #define IN_RPB7 0x07
106 #define IN_RPF12 0x09
107 #define IN_RPD12 0x0A
108 #define IN_RPF8 0x0B
109 #define IN_RPC3 0x0C
110 #define IN_RPE9 0x0D
111 #define IN_RPD1 0x00
112 #define IN_RPG9 0x01
113 #define IN_RPB14 0x02
114 #define IN_RPD0 0x03
115 #define IN_RPB6 0x05
116 #define IN_RPD5 0x06
117 #define IN_RPB2 0x07
118 #define IN_RPF3 0x08
119 #define IN_RPF13 0x09
120 #define IN_RPF2 0x0B
121 #define IN_RPC2 0x0C
122 #define IN_RPE8 0x0D
123
124 /* Output PPS Pins */
125 enum {
126         OUT_RPD2,
127         OUT_RPG8,
128         OUT_RPF4,
129         OUT_RPD10,
130         OUT_RPF1,
131         OUT_RPB9,
132         OUT_RPB10,
133         OUT_RPC14,
134         OUT_RPB5,
135         OUT_RPC1,
136         OUT_RPD14,
137         OUT_RPG1,
138         OUT_RPA14,
139         OUT_RPD6,
140         OUT_RPD3,
141         OUT_RPG7,
142         OUT_RPF5,
143         OUT_RPD11,
144         OUT_RPF0,
145         OUT_RPB1,
146         OUT_RPE5,
147         OUT_RPC13,
148         OUT_RPB3,
149         OUT_RPC4,
150         OUT_RPD15,
151         OUT_RPG0,
152         OUT_RPA15,
153         OUT_RPD7,
154         OUT_RPD9,
155         OUT_RPG6,
156         OUT_RPB8,
157         OUT_RPB15,
158         OUT_RPD4,
159         OUT_RPB0,
160         OUT_RPE3,
161         OUT_RPB7,
162         OUT_RPF12,
163         OUT_RPD12,
164         OUT_RPF8,
165         OUT_RPC3,
166         OUT_RPE9,
167         OUT_RPD1,
168         OUT_RPG9,
169         OUT_RPB14,
170         OUT_RPD0,
171         OUT_RPB6,
172         OUT_RPD5,
173         OUT_RPB2,
174         OUT_RPF3,
175         OUT_RPF13,
176         OUT_RPC2,
177         OUT_RPE8,
178         OUT_RPF2,
179 };
180
181 /* Output PPS Functions */
182 #define OUT_FUNC_U3TX 0x01
183 #define OUT_FUNC_U4RTS 0x02
184 #define OUT_FUNC_SDO1 0x05
185 #define OUT_FUNC_SDO2 0x06
186 #define OUT_FUNC_SDO3 0x07
187 #define OUT_FUNC_SDO5 0x09
188 #define OUT_FUNC_SS6 0x0A
189 #define OUT_FUNC_OC3 0x0B
190 #define OUT_FUNC_OC6 0x0C
191 #define OUT_FUNC_REFCLKO4 0x0D
192 #define OUT_FUNC_C2OUT 0x0E
193 #define OUT_FUNC_C1TX 0x0F
194 #define OUT_FUNC_U1TX 0x01
195 #define OUT_FUNC_U2RTS 0x02
196 #define OUT_FUNC_U5TX 0x03
197 #define OUT_FUNC_U6RTS 0x04
198 #define OUT_FUNC_SDO1 0x05
199 #define OUT_FUNC_SDO2 0x06
200 #define OUT_FUNC_SDO3 0x07
201 #define OUT_FUNC_SDO4 0x08
202 #define OUT_FUNC_SDO5 0x09
203 #define OUT_FUNC_OC4 0x0B
204 #define OUT_FUNC_OC7 0x0C
205 #define OUT_FUNC_REFCLKO1 0x0F
206 #define OUT_FUNC_U3RTS 0x01
207 #define OUT_FUNC_U4TX 0x02
208 #define OUT_FUNC_U6TX 0x04
209 #define OUT_FUNC_SS1 0x05
210 #define OUT_FUNC_SS3 0x07
211 #define OUT_FUNC_SS4 0x08
212 #define OUT_FUNC_SS5 0x09
213 #define OUT_FUNC_SDO6 0x0A
214 #define OUT_FUNC_OC5 0x0B
215 #define OUT_FUNC_OC8 0x0C
216 #define OUT_FUNC_C1OUT 0x0E
217 #define OUT_FUNC_REFCLKO3 0x0F
218 #define OUT_FUNC_U1RTS 0x01
219 #define OUT_FUNC_U2TX 0x02
220 #define OUT_FUNC_U5RTS 0x03
221 #define OUT_FUNC_U6TX 0x04
222 #define OUT_FUNC_SS2 0x06
223 #define OUT_FUNC_SDO4 0x08
224 #define OUT_FUNC_SDO6 0x0A
225 #define OUT_FUNC_OC2 0x0B
226 #define OUT_FUNC_OC1 0x0C
227 #define OUT_FUNC_OC9 0x0D
228 #define OUT_FUNC_C2TX 0x0F
229
230 void pic32_pps_input(int function, int pin);
231 void pic32_pps_output(int function, int pin);
232
233 #endif