Skip to content

Commit 5d36df1

Browse files
committed
hal: microchip: pic32c: add PIC32CZ CA pin definitions
Added dt-binding header files for the following device families. - PIC32CZ_CA80 - PIC32CZ_CA90 - PIC32CZ_CA91 Signed-off-by: Mohamed Azhar <[email protected]>
1 parent 89754d8 commit 5d36df1

32 files changed

+46314
-0
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
/*
2+
* Copyright (c) 2025 Microchip Technology Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#ifndef INCLUDE_DT_BINDINGS_PIC32CZ_CA_COMMON_MCHP_PINCTRL_PINMUX_PIC32C_H_
8+
#define INCLUDE_DT_BINDINGS_PIC32CZ_CA_COMMON_MCHP_PINCTRL_PINMUX_PIC32C_H_
9+
10+
/** PORT */
11+
#define MCHP_PINMUX_PORT_a 0U
12+
#define MCHP_PINMUX_PORT_b 1U
13+
#define MCHP_PINMUX_PORT_c 2U
14+
#define MCHP_PINMUX_PORT_d 3U
15+
#define MCHP_PINMUX_PORT_e 4U
16+
#define MCHP_PINMUX_PORT_f 5U
17+
#define MCHP_PINMUX_PORT_g 6U
18+
19+
/** GPIO */
20+
#define MCHP_PINMUX_PERIPH_gpio 0U
21+
22+
/** Peripherals */
23+
#define MCHP_PINMUX_PERIPH_a 0U
24+
#define MCHP_PINMUX_PERIPH_b 1U
25+
#define MCHP_PINMUX_PERIPH_d 3U
26+
#define MCHP_PINMUX_PERIPH_f 5U
27+
#define MCHP_PINMUX_PERIPH_g 6U
28+
#define MCHP_PINMUX_PERIPH_h 7U
29+
#define MCHP_PINMUX_PERIPH_i 8U
30+
#define MCHP_PINMUX_PERIPH_j 9U
31+
#define MCHP_PINMUX_PERIPH_k 10U
32+
#define MCHP_PINMUX_PERIPH_l 11U
33+
#define MCHP_PINMUX_PERIPH_n 13U
34+
#define MCHP_PINMUX_PERIPH_p 15U
35+
36+
/** Extra */
37+
#define MCHP_PINMUX_PERIPH_x 0U
38+
39+
/** System */
40+
#define MCHP_PINMUX_PERIPH_s 0U
41+
42+
/** LPM */
43+
#define MCHP_PINMUX_PERIPH_lpm 0U
44+
45+
/** Wake-up pin sources */
46+
#define MCHP_PINMUX_PERIPH_wkup0 0U
47+
#define MCHP_PINMUX_PERIPH_wkup1 1U
48+
#define MCHP_PINMUX_PERIPH_wkup2 2U
49+
#define MCHP_PINMUX_PERIPH_wkup3 3U
50+
#define MCHP_PINMUX_PERIPH_wkup4 4U
51+
#define MCHP_PINMUX_PERIPH_wkup5 5U
52+
#define MCHP_PINMUX_PERIPH_wkup6 6U
53+
#define MCHP_PINMUX_PERIPH_wkup7 7U
54+
#define MCHP_PINMUX_PERIPH_wkup8 8U
55+
#define MCHP_PINMUX_PERIPH_wkup9 9U
56+
#define MCHP_PINMUX_PERIPH_wkup10 10U
57+
#define MCHP_PINMUX_PERIPH_wkup11 11U
58+
#define MCHP_PINMUX_PERIPH_wkup12 12U
59+
#define MCHP_PINMUX_PERIPH_wkup13 13U
60+
#define MCHP_PINMUX_PERIPH_wkup14 14U
61+
#define MCHP_PINMUX_PERIPH_wkup15 15U
62+
63+
/** Selects pin to be used as GPIO */
64+
#define MCHP_PINMUX_FUNC_gpio 0U
65+
/** Selects pin to be used as by some peripheral */
66+
#define MCHP_PINMUX_FUNC_periph 1U
67+
/** Selects pin to be used as extra function */
68+
#define MCHP_PINMUX_FUNC_extra 2U
69+
/** Selects pin to be used as system function */
70+
#define MCHP_PINMUX_FUNC_system 3U
71+
/** Selects and configure pin to be used in Low Power Mode */
72+
#define MCHP_PINMUX_FUNC_lpm 4U
73+
/** Selects and configure wake-up pin sources Low Power Mode */
74+
#define MCHP_PINMUX_FUNC_wakeup 5U
75+
76+
/** Pinmux bit field position. */
77+
#define MCHP_PINCTRL_PINMUX_POS (16U)
78+
/** Pinmux bit field mask. */
79+
#define MCHP_PINCTRL_PINMUX_MASK (0xFFFF)
80+
81+
/** Port field mask. */
82+
#define MCHP_PINMUX_PORT_MSK (0xFU)
83+
/** Port field position. */
84+
#define MCHP_PINMUX_PORT_POS (0U)
85+
/** Pin field mask. */
86+
#define MCHP_PINMUX_PIN_MSK (0x1FU)
87+
/** Pin field position. */
88+
#define MCHP_PINMUX_PIN_POS (MCHP_PINMUX_PORT_POS + 4U)
89+
/** Function field mask. */
90+
#define MCHP_PINMUX_FUNC_MSK (0x7U)
91+
/** Function field position. */
92+
#define MCHP_PINMUX_FUNC_POS (MCHP_PINMUX_PIN_POS + 5U)
93+
/** Peripheral field mask. */
94+
#define MCHP_PINMUX_PERIPH_MSK (0xFU)
95+
/** Peripheral field position. */
96+
#define MCHP_PINMUX_PERIPH_POS (MCHP_PINMUX_FUNC_POS + 3U)
97+
98+
/*
99+
* MCHP pinmux bit field.
100+
*
101+
* Fields:
102+
*
103+
* - 0..3: port
104+
* - 4..8: pin_num
105+
* - 9..11: func
106+
* - 12..15: pin_mux
107+
*
108+
* port Port ('A'..'K')
109+
* pin Pin (0..31)
110+
* func Function (GPIO, Peripheral, System, Extra, LPM - 0..4)
111+
* pin_mux Peripheral based on the Function selected (0..15)
112+
*/
113+
#define MCHP_PINMUX(port, pin_num, pin_mux, func) \
114+
((((MCHP_PINMUX_PORT_##port) & MCHP_PINMUX_PORT_MSK) \
115+
<< MCHP_PINMUX_PORT_POS) | \
116+
(((pin_num) & MCHP_PINMUX_PIN_MSK) << MCHP_PINMUX_PIN_POS) | \
117+
(((MCHP_PINMUX_FUNC_##func) & MCHP_PINMUX_FUNC_MSK) \
118+
<< MCHP_PINMUX_FUNC_POS) | \
119+
(((MCHP_PINMUX_PERIPH_##pin_mux) & MCHP_PINMUX_PERIPH_MSK) \
120+
<< MCHP_PINMUX_PERIPH_POS))
121+
122+
/*
123+
* Obtain Pinmux value from pinctrl_soc_pin_t configuration.
124+
*
125+
* pincfg pinctrl_soc_pin_t bit field value.
126+
*/
127+
#define MCHP_PINMUX_PIN_GET(pincfg) \
128+
((pincfg >> MCHP_PINMUX_PIN_POS) & MCHP_PINMUX_PIN_MSK)
129+
#define MCHP_PINMUX_PORT_GET(pincfg) \
130+
((pincfg >> MCHP_PINMUX_PORT_POS) & MCHP_PINMUX_PORT_MSK)
131+
#define MCHP_PINMUX_FUNC_GET(pincfg) \
132+
((pincfg >> MCHP_PINMUX_FUNC_POS) & MCHP_PINMUX_FUNC_MSK)
133+
#define MCHP_PINMUX_PERIPH_GET(pincfg) \
134+
((pincfg >> MCHP_PINMUX_PERIPH_POS) & MCHP_PINMUX_PERIPH_MSK)
135+
136+
#endif /* INCLUDE_DT_BINDINGS_PIC32CZ_CA_COMMON_MCHP_PINCTRL_PINMUX_PIC32C_H_ */

0 commit comments

Comments
 (0)