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 234