162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Joshua Henderson <joshua.henderson@microchip.com> 462306a36Sopenharmony_ci * Copyright (C) 2015 Microchip Technology Inc. All rights reserved. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci#ifndef _PIC32MZDA_EARLY_PIN_H 762306a36Sopenharmony_ci#define _PIC32MZDA_EARLY_PIN_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* 1062306a36Sopenharmony_ci * This is a complete, yet overly simplistic and unoptimized, PIC32MZDA PPS 1162306a36Sopenharmony_ci * configuration only useful before we have full pinctrl initialized. 1262306a36Sopenharmony_ci */ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* Input PPS Functions */ 1562306a36Sopenharmony_cienum { 1662306a36Sopenharmony_ci IN_FUNC_INT3, 1762306a36Sopenharmony_ci IN_FUNC_T2CK, 1862306a36Sopenharmony_ci IN_FUNC_T6CK, 1962306a36Sopenharmony_ci IN_FUNC_IC3, 2062306a36Sopenharmony_ci IN_FUNC_IC7, 2162306a36Sopenharmony_ci IN_FUNC_U1RX, 2262306a36Sopenharmony_ci IN_FUNC_U2CTS, 2362306a36Sopenharmony_ci IN_FUNC_U5RX, 2462306a36Sopenharmony_ci IN_FUNC_U6CTS, 2562306a36Sopenharmony_ci IN_FUNC_SDI1, 2662306a36Sopenharmony_ci IN_FUNC_SDI3, 2762306a36Sopenharmony_ci IN_FUNC_SDI5, 2862306a36Sopenharmony_ci IN_FUNC_SS6, 2962306a36Sopenharmony_ci IN_FUNC_REFCLKI1, 3062306a36Sopenharmony_ci IN_FUNC_INT4, 3162306a36Sopenharmony_ci IN_FUNC_T5CK, 3262306a36Sopenharmony_ci IN_FUNC_T7CK, 3362306a36Sopenharmony_ci IN_FUNC_IC4, 3462306a36Sopenharmony_ci IN_FUNC_IC8, 3562306a36Sopenharmony_ci IN_FUNC_U3RX, 3662306a36Sopenharmony_ci IN_FUNC_U4CTS, 3762306a36Sopenharmony_ci IN_FUNC_SDI2, 3862306a36Sopenharmony_ci IN_FUNC_SDI4, 3962306a36Sopenharmony_ci IN_FUNC_C1RX, 4062306a36Sopenharmony_ci IN_FUNC_REFCLKI4, 4162306a36Sopenharmony_ci IN_FUNC_INT2, 4262306a36Sopenharmony_ci IN_FUNC_T3CK, 4362306a36Sopenharmony_ci IN_FUNC_T8CK, 4462306a36Sopenharmony_ci IN_FUNC_IC2, 4562306a36Sopenharmony_ci IN_FUNC_IC5, 4662306a36Sopenharmony_ci IN_FUNC_IC9, 4762306a36Sopenharmony_ci IN_FUNC_U1CTS, 4862306a36Sopenharmony_ci IN_FUNC_U2RX, 4962306a36Sopenharmony_ci IN_FUNC_U5CTS, 5062306a36Sopenharmony_ci IN_FUNC_SS1, 5162306a36Sopenharmony_ci IN_FUNC_SS3, 5262306a36Sopenharmony_ci IN_FUNC_SS4, 5362306a36Sopenharmony_ci IN_FUNC_SS5, 5462306a36Sopenharmony_ci IN_FUNC_C2RX, 5562306a36Sopenharmony_ci IN_FUNC_INT1, 5662306a36Sopenharmony_ci IN_FUNC_T4CK, 5762306a36Sopenharmony_ci IN_FUNC_T9CK, 5862306a36Sopenharmony_ci IN_FUNC_IC1, 5962306a36Sopenharmony_ci IN_FUNC_IC6, 6062306a36Sopenharmony_ci IN_FUNC_U3CTS, 6162306a36Sopenharmony_ci IN_FUNC_U4RX, 6262306a36Sopenharmony_ci IN_FUNC_U6RX, 6362306a36Sopenharmony_ci IN_FUNC_SS2, 6462306a36Sopenharmony_ci IN_FUNC_SDI6, 6562306a36Sopenharmony_ci IN_FUNC_OCFA, 6662306a36Sopenharmony_ci IN_FUNC_REFCLKI3, 6762306a36Sopenharmony_ci}; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci/* Input PPS Pins */ 7062306a36Sopenharmony_ci#define IN_RPD2 0x00 7162306a36Sopenharmony_ci#define IN_RPG8 0x01 7262306a36Sopenharmony_ci#define IN_RPF4 0x02 7362306a36Sopenharmony_ci#define IN_RPD10 0x03 7462306a36Sopenharmony_ci#define IN_RPF1 0x04 7562306a36Sopenharmony_ci#define IN_RPB9 0x05 7662306a36Sopenharmony_ci#define IN_RPB10 0x06 7762306a36Sopenharmony_ci#define IN_RPC14 0x07 7862306a36Sopenharmony_ci#define IN_RPB5 0x08 7962306a36Sopenharmony_ci#define IN_RPC1 0x0A 8062306a36Sopenharmony_ci#define IN_RPD14 0x0B 8162306a36Sopenharmony_ci#define IN_RPG1 0x0C 8262306a36Sopenharmony_ci#define IN_RPA14 0x0D 8362306a36Sopenharmony_ci#define IN_RPD6 0x0E 8462306a36Sopenharmony_ci#define IN_RPD3 0x00 8562306a36Sopenharmony_ci#define IN_RPG7 0x01 8662306a36Sopenharmony_ci#define IN_RPF5 0x02 8762306a36Sopenharmony_ci#define IN_RPD11 0x03 8862306a36Sopenharmony_ci#define IN_RPF0 0x04 8962306a36Sopenharmony_ci#define IN_RPB1 0x05 9062306a36Sopenharmony_ci#define IN_RPE5 0x06 9162306a36Sopenharmony_ci#define IN_RPC13 0x07 9262306a36Sopenharmony_ci#define IN_RPB3 0x08 9362306a36Sopenharmony_ci#define IN_RPC4 0x0A 9462306a36Sopenharmony_ci#define IN_RPD15 0x0B 9562306a36Sopenharmony_ci#define IN_RPG0 0x0C 9662306a36Sopenharmony_ci#define IN_RPA15 0x0D 9762306a36Sopenharmony_ci#define IN_RPD7 0x0E 9862306a36Sopenharmony_ci#define IN_RPD9 0x00 9962306a36Sopenharmony_ci#define IN_RPG6 0x01 10062306a36Sopenharmony_ci#define IN_RPB8 0x02 10162306a36Sopenharmony_ci#define IN_RPB15 0x03 10262306a36Sopenharmony_ci#define IN_RPD4 0x04 10362306a36Sopenharmony_ci#define IN_RPB0 0x05 10462306a36Sopenharmony_ci#define IN_RPE3 0x06 10562306a36Sopenharmony_ci#define IN_RPB7 0x07 10662306a36Sopenharmony_ci#define IN_RPF12 0x09 10762306a36Sopenharmony_ci#define IN_RPD12 0x0A 10862306a36Sopenharmony_ci#define IN_RPF8 0x0B 10962306a36Sopenharmony_ci#define IN_RPC3 0x0C 11062306a36Sopenharmony_ci#define IN_RPE9 0x0D 11162306a36Sopenharmony_ci#define IN_RPD1 0x00 11262306a36Sopenharmony_ci#define IN_RPG9 0x01 11362306a36Sopenharmony_ci#define IN_RPB14 0x02 11462306a36Sopenharmony_ci#define IN_RPD0 0x03 11562306a36Sopenharmony_ci#define IN_RPB6 0x05 11662306a36Sopenharmony_ci#define IN_RPD5 0x06 11762306a36Sopenharmony_ci#define IN_RPB2 0x07 11862306a36Sopenharmony_ci#define IN_RPF3 0x08 11962306a36Sopenharmony_ci#define IN_RPF13 0x09 12062306a36Sopenharmony_ci#define IN_RPF2 0x0B 12162306a36Sopenharmony_ci#define IN_RPC2 0x0C 12262306a36Sopenharmony_ci#define IN_RPE8 0x0D 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci/* Output PPS Pins */ 12562306a36Sopenharmony_cienum { 12662306a36Sopenharmony_ci OUT_RPD2, 12762306a36Sopenharmony_ci OUT_RPG8, 12862306a36Sopenharmony_ci OUT_RPF4, 12962306a36Sopenharmony_ci OUT_RPD10, 13062306a36Sopenharmony_ci OUT_RPF1, 13162306a36Sopenharmony_ci OUT_RPB9, 13262306a36Sopenharmony_ci OUT_RPB10, 13362306a36Sopenharmony_ci OUT_RPC14, 13462306a36Sopenharmony_ci OUT_RPB5, 13562306a36Sopenharmony_ci OUT_RPC1, 13662306a36Sopenharmony_ci OUT_RPD14, 13762306a36Sopenharmony_ci OUT_RPG1, 13862306a36Sopenharmony_ci OUT_RPA14, 13962306a36Sopenharmony_ci OUT_RPD6, 14062306a36Sopenharmony_ci OUT_RPD3, 14162306a36Sopenharmony_ci OUT_RPG7, 14262306a36Sopenharmony_ci OUT_RPF5, 14362306a36Sopenharmony_ci OUT_RPD11, 14462306a36Sopenharmony_ci OUT_RPF0, 14562306a36Sopenharmony_ci OUT_RPB1, 14662306a36Sopenharmony_ci OUT_RPE5, 14762306a36Sopenharmony_ci OUT_RPC13, 14862306a36Sopenharmony_ci OUT_RPB3, 14962306a36Sopenharmony_ci OUT_RPC4, 15062306a36Sopenharmony_ci OUT_RPD15, 15162306a36Sopenharmony_ci OUT_RPG0, 15262306a36Sopenharmony_ci OUT_RPA15, 15362306a36Sopenharmony_ci OUT_RPD7, 15462306a36Sopenharmony_ci OUT_RPD9, 15562306a36Sopenharmony_ci OUT_RPG6, 15662306a36Sopenharmony_ci OUT_RPB8, 15762306a36Sopenharmony_ci OUT_RPB15, 15862306a36Sopenharmony_ci OUT_RPD4, 15962306a36Sopenharmony_ci OUT_RPB0, 16062306a36Sopenharmony_ci OUT_RPE3, 16162306a36Sopenharmony_ci OUT_RPB7, 16262306a36Sopenharmony_ci OUT_RPF12, 16362306a36Sopenharmony_ci OUT_RPD12, 16462306a36Sopenharmony_ci OUT_RPF8, 16562306a36Sopenharmony_ci OUT_RPC3, 16662306a36Sopenharmony_ci OUT_RPE9, 16762306a36Sopenharmony_ci OUT_RPD1, 16862306a36Sopenharmony_ci OUT_RPG9, 16962306a36Sopenharmony_ci OUT_RPB14, 17062306a36Sopenharmony_ci OUT_RPD0, 17162306a36Sopenharmony_ci OUT_RPB6, 17262306a36Sopenharmony_ci OUT_RPD5, 17362306a36Sopenharmony_ci OUT_RPB2, 17462306a36Sopenharmony_ci OUT_RPF3, 17562306a36Sopenharmony_ci OUT_RPF13, 17662306a36Sopenharmony_ci OUT_RPC2, 17762306a36Sopenharmony_ci OUT_RPE8, 17862306a36Sopenharmony_ci OUT_RPF2, 17962306a36Sopenharmony_ci}; 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci/* Output PPS Functions */ 18262306a36Sopenharmony_ci#define OUT_FUNC_U3TX 0x01 18362306a36Sopenharmony_ci#define OUT_FUNC_U4RTS 0x02 18462306a36Sopenharmony_ci#define OUT_FUNC_SDO1 0x05 18562306a36Sopenharmony_ci#define OUT_FUNC_SDO2 0x06 18662306a36Sopenharmony_ci#define OUT_FUNC_SDO3 0x07 18762306a36Sopenharmony_ci#define OUT_FUNC_SDO5 0x09 18862306a36Sopenharmony_ci#define OUT_FUNC_SS6 0x0A 18962306a36Sopenharmony_ci#define OUT_FUNC_OC3 0x0B 19062306a36Sopenharmony_ci#define OUT_FUNC_OC6 0x0C 19162306a36Sopenharmony_ci#define OUT_FUNC_REFCLKO4 0x0D 19262306a36Sopenharmony_ci#define OUT_FUNC_C2OUT 0x0E 19362306a36Sopenharmony_ci#define OUT_FUNC_C1TX 0x0F 19462306a36Sopenharmony_ci#define OUT_FUNC_U1TX 0x01 19562306a36Sopenharmony_ci#define OUT_FUNC_U2RTS 0x02 19662306a36Sopenharmony_ci#define OUT_FUNC_U5TX 0x03 19762306a36Sopenharmony_ci#define OUT_FUNC_U6RTS 0x04 19862306a36Sopenharmony_ci#define OUT_FUNC_SDO1 0x05 19962306a36Sopenharmony_ci#define OUT_FUNC_SDO2 0x06 20062306a36Sopenharmony_ci#define OUT_FUNC_SDO3 0x07 20162306a36Sopenharmony_ci#define OUT_FUNC_SDO4 0x08 20262306a36Sopenharmony_ci#define OUT_FUNC_SDO5 0x09 20362306a36Sopenharmony_ci#define OUT_FUNC_OC4 0x0B 20462306a36Sopenharmony_ci#define OUT_FUNC_OC7 0x0C 20562306a36Sopenharmony_ci#define OUT_FUNC_REFCLKO1 0x0F 20662306a36Sopenharmony_ci#define OUT_FUNC_U3RTS 0x01 20762306a36Sopenharmony_ci#define OUT_FUNC_U4TX 0x02 20862306a36Sopenharmony_ci#define OUT_FUNC_U6TX 0x04 20962306a36Sopenharmony_ci#define OUT_FUNC_SS1 0x05 21062306a36Sopenharmony_ci#define OUT_FUNC_SS3 0x07 21162306a36Sopenharmony_ci#define OUT_FUNC_SS4 0x08 21262306a36Sopenharmony_ci#define OUT_FUNC_SS5 0x09 21362306a36Sopenharmony_ci#define OUT_FUNC_SDO6 0x0A 21462306a36Sopenharmony_ci#define OUT_FUNC_OC5 0x0B 21562306a36Sopenharmony_ci#define OUT_FUNC_OC8 0x0C 21662306a36Sopenharmony_ci#define OUT_FUNC_C1OUT 0x0E 21762306a36Sopenharmony_ci#define OUT_FUNC_REFCLKO3 0x0F 21862306a36Sopenharmony_ci#define OUT_FUNC_U1RTS 0x01 21962306a36Sopenharmony_ci#define OUT_FUNC_U2TX 0x02 22062306a36Sopenharmony_ci#define OUT_FUNC_U5RTS 0x03 22162306a36Sopenharmony_ci#define OUT_FUNC_U6TX 0x04 22262306a36Sopenharmony_ci#define OUT_FUNC_SS2 0x06 22362306a36Sopenharmony_ci#define OUT_FUNC_SDO4 0x08 22462306a36Sopenharmony_ci#define OUT_FUNC_SDO6 0x0A 22562306a36Sopenharmony_ci#define OUT_FUNC_OC2 0x0B 22662306a36Sopenharmony_ci#define OUT_FUNC_OC1 0x0C 22762306a36Sopenharmony_ci#define OUT_FUNC_OC9 0x0D 22862306a36Sopenharmony_ci#define OUT_FUNC_C2TX 0x0F 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_civoid pic32_pps_input(int function, int pin); 23162306a36Sopenharmony_civoid pic32_pps_output(int function, int pin); 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci#endif 234