Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
mchp_pic32cm_pl_clock.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Microchip Technology Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
13
14#ifndef INCLUDE_ZEPHYR_DT_BINDINGS_CLOCK_MCHP_PIC32CM_PL_CLOCK_H_
15#define INCLUDE_ZEPHYR_DT_BINDINGS_CLOCK_MCHP_PIC32CM_PL_CLOCK_H_
16
17/* Clock subsystem Types */
19#define SUBSYS_TYPE_OSCHF (0)
21#define SUBSYS_TYPE_RTC (1)
23#define SUBSYS_TYPE_XOSC32K (2)
25#define SUBSYS_TYPE_OSC32K (3)
27#define SUBSYS_TYPE_GCLKGEN (4)
29#define SUBSYS_TYPE_GCLKPERIPH (5)
31#define SUBSYS_TYPE_MCLKCPU (6)
33#define SUBSYS_TYPE_MCLKPERIPH (7)
39#define SUBSYS_TYPE_MAX (7)
40
42#define MBUS_AHB (0)
44#define MBUS_APBA (1)
46#define MBUS_APBB (2)
48#define MBUS_APBC (3)
50#define MBUS_MAX (3)
51
53#define INST_XOSC32K_XOSC1K 0
55#define INST_XOSC32K_XOSC32K 1
56
58#define INST_OSC32K_OSC1K 0
60#define INST_OSC32K_OSC32K 1
61
94#define MCHP_CLOCK_DERIVE_ID(type, mclkbus, mclkmaskbit, gclkperiph, inst) \
95 (((type) << 26) | ((mclkbus) << 20) | ((mclkmaskbit) << 14) | ((gclkperiph) << 8) | inst)
96
98#define CLOCK_MCHP_OSCHF_ID MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_OSCHF, 0x3f, 0x3f, 0x3f, 0)
100#define CLOCK_MCHP_OSCHF_ID_MAX (0)
101
103#define CLOCK_MCHP_RTC_ID MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_RTC, 0x3f, 0x3f, 0x3f, 0)
105#define CLOCK_MCHP_RTC_ID_MAX (0)
106
108#define CLOCK_MCHP_XOSC32K_ID_XOSC1K \
109 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_XOSC32K, 0x3f, 0x3f, 0x3f, INST_XOSC32K_XOSC1K)
110
111#define CLOCK_MCHP_XOSC32K_ID_XOSC32K \
112 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_XOSC32K, 0x3f, 0x3f, 0x3f, INST_XOSC32K_XOSC32K)
113
114#define CLOCK_MCHP_XOSC32K_ID_MAX (1)
115
117#define CLOCK_MCHP_OSC32K_ID_OSC1K \
118 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_OSC32K, 0x3f, 0x3f, 0x3f, INST_OSC32K_OSC1K)
119
120#define CLOCK_MCHP_OSC32K_ID_OSC32K \
121 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_OSC32K, 0x3f, 0x3f, 0x3f, INST_OSC32K_OSC32K)
122
123#define CLOCK_MCHP_OSC32K_ID_MAX (1)
124
126#define CLOCK_MCHP_GCLKGEN_ID_GEN0 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKGEN, 0x3f, 0x3f, 0x3f, 0)
128#define CLOCK_MCHP_GCLKGEN_ID_GEN1 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKGEN, 0x3f, 0x3f, 0x3f, 1)
130#define CLOCK_MCHP_GCLKGEN_ID_GEN2 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKGEN, 0x3f, 0x3f, 0x3f, 2)
132#define CLOCK_MCHP_GCLKGEN_ID_GEN3 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKGEN, 0x3f, 0x3f, 0x3f, 3)
134#define CLOCK_MCHP_GCLKGEN_ID_MAX (3)
136#define GCLK_IO_MAX CLOCK_MCHP_GCLKGEN_ID_MAX
137
139#define CLOCK_MCHP_GCLKPERIPH_ID_EIC MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 0, 0)
141#define CLOCK_MCHP_GCLKPERIPH_ID_EVSYS_CHANNEL_0 \
142 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 1, 1)
143
144#define CLOCK_MCHP_GCLKPERIPH_ID_EVSYS_CHANNEL_1 \
145 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 2, 2)
146
147#define CLOCK_MCHP_GCLKPERIPH_ID_EVSYS_CHANNEL_2 \
148 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 3, 3)
149
150#define CLOCK_MCHP_GCLKPERIPH_ID_EVSYS_CHANNEL_3 \
151 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 4, 4)
152
153#define CLOCK_MCHP_GCLKPERIPH_ID_SERCOM0_SLOW \
154 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 5, 5)
155
156#define CLOCK_MCHP_GCLKPERIPH_ID_SERCOM0_CORE \
157 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 6, 6)
158
159#define CLOCK_MCHP_GCLKPERIPH_ID_SERCOM1_SLOW \
160 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 7, 7)
161
162#define CLOCK_MCHP_GCLKPERIPH_ID_SERCOM1_CORE \
163 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 8, 8)
164
165#define CLOCK_MCHP_GCLKPERIPH_ID_TC0_TC1 \
166 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 9, 9)
167
168#define CLOCK_MCHP_GCLKPERIPH_ID_TC2 \
169 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 10, 10)
170
171#define CLOCK_MCHP_GCLKPERIPH_ID_TCC0 \
172 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 11, 11)
173
174#define CLOCK_MCHP_GCLKPERIPH_ID_CCL \
175 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_GCLKPERIPH, 0x3f, 0x3f, 12, 12)
176
177#define CLOCK_MCHP_GCLKPERIPH_ID_MAX (12)
178
180#define GCLK_PH_MAX CLOCK_MCHP_GCLKPERIPH_ID_MAX
181
183#define CLOCK_MCHP_MCLKCPU_ID MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKCPU, 0x3f, 0x3f, 0x3f, 0)
185#define CLOCK_MCHP_MCLKCPU_MAX (0)
186
187/* MCLKPERIPH_TYPE ids */
189#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_APBA \
190 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 0, 0x3f, 0)
191
192#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_APBB \
193 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 1, 0x3f, 1)
194
195#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_APBC \
196 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 2, 0x3f, 2)
197
198#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_DSU \
199 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 3, 0x3f, 3)
200
201#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_HMATRIXHS \
202 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 4, 0x3f, 4)
203
204#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_NVMCTRL \
205 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 5, 0x3f, 5)
206
207#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_HSRAM \
208 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 6, 0x3f, 6)
209
210#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_DMAC \
211 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 7, 0x3f, 7)
212
213#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_PAC \
214 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 8, 0x3f, 8)
215
216#define CLOCK_MCHP_MCLKPERIPH_ID_AHB_BROM \
217 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_AHB, 9, 0x3f, 9)
218
220#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_PAC \
221 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 0, 0x3f, 10)
222
223#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_PM \
224 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 1, 0x3f, 11)
225
226#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_MCLK \
227 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 2, 0x3f, 12)
228
229#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_RSTC \
230 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 3, 0x3f, 13)
231
232#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_OSCCTRL \
233 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 4, 0x3f, 14)
234
235#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_OSC32KCTRL \
236 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 5, 0x3f, 15)
237
238#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_SUPC \
239 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 6, 0x3f, 16)
240
241#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_GCLK \
242 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 7, 0x3f, 17)
243
244#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_WDT \
245 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 8, 0x3f, 18)
246
247#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_RTC \
248 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 9, 0x3f, 19)
249
250#define CLOCK_MCHP_MCLKPERIPH_ID_APBA_EIC \
251 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBA, 10, 0x3f, 20)
252
254#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_PORT \
255 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 0, 0x3f, 21)
256
257#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_DSU \
258 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 1, 0x3f, 22)
259
260#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_NVMCTRL \
261 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 2, 0x3f, 23)
262
263#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_DMAC \
264 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 3, 0x3f, 24)
265
266#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_MTB \
267 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 4, 0x3f, 25)
268
269#define CLOCK_MCHP_MCLKPERIPH_ID_APBB_HMATRIXHS \
270 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBB, 5, 0x3f, 26)
271
273#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_EVSYS \
274 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 0, 0x3f, 27)
275
276#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_SERCOM0 \
277 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 1, 0x3f, 28)
278
279#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_SERCOM1 \
280 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 2, 0x3f, 29)
281
282#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_TC0 \
283 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 3, 0x3f, 30)
284
285#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_TC1 \
286 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 4, 0x3f, 31)
287
288#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_TC2 \
289 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 5, 0x3f, 32)
290
291#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_TCC0 \
292 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 6, 0x3f, 33)
293
294#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_ADC0 \
295 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 7, 0x3f, 34)
296
297#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_AC \
298 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 8, 0x3f, 35)
299
300#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_CCL \
301 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 9, 0x3f, 36)
302
303#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_PTC \
304 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 10, 0x3f, 37)
305
306#define CLOCK_MCHP_MCLKPERIPH_ID_APBC_SYSCTRL \
307 MCHP_CLOCK_DERIVE_ID(SUBSYS_TYPE_MCLKPERIPH, MBUS_APBC, 11, 0x3f, 38)
308
309#define CLOCK_MCHP_MCLKPERIPH_ID_MAX (38)
310
311#endif /* INCLUDE_ZEPHYR_DT_BINDINGS_CLOCK_MCHP_PIC32CM_PL_CLOCK_H_ */