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