Zephyr Project API 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
nxp_mc_cgm.h
Go to the documentation of this file.
1/*
2 * Copyright 2025 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_NXP_MC_CGM_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_NXP_MC_CGM_H_
9
10/* Define a set of macros related to NXP mc_cgm IP configuration parameter */
11#define NXP_PLL_MAXIDOCHANGE DT_PROP(DT_NODELABEL(mc_cgm), max_ido_change)
12#define NXP_PLL_STEPDURATION DT_PROP(DT_NODELABEL(mc_cgm), step_duration)
13#define NXP_PLL_CLKSRCFREQ DT_PROP(DT_NODELABEL(mc_cgm), clk_src_freq)
14#define NXP_PLL_MUX_0_DC_0_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_0_div)
15#define NXP_PLL_MUX_0_DC_1_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_1_div)
16#define NXP_PLL_MUX_0_DC_2_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_2_div)
17#define NXP_PLL_MUX_0_DC_3_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_3_div)
18#define NXP_PLL_MUX_0_DC_4_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_4_div)
19#define NXP_PLL_MUX_0_DC_5_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_5_div)
20#define NXP_PLL_MUX_0_DC_6_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_0_dc_6_div)
21#define NXP_PLL_MUX_1_DC_0_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_1_dc_0_div)
22#define NXP_PLL_MUX_2_DC_0_DIV DT_PROP(DT_NODELABEL(mc_cgm), mux_2_dc_0_div)
23
24/* Note- clock identifiers in this file must be unique,
25 * as the driver uses them in a switch case
26 */
27#define MCUX_MC_CGM_PERIPHERAL_MASK 0xFF00UL
28#define MCUX_MC_CGM_INSTANCE_MASK 0xFFUL
29#define MCUX_MC_CGM_CLK_ID(high, low) ((high << 8) | (low))
30
31/* These IDs are used within SOC macros, and thus cannot be defined
32 * using the standard MCUX_MC_CGM_CLK_ID form
33 */
34/* --------------------- System layer clock --------------------- */
35#define MCUX_CORESYS_CLK MCUX_MC_CGM_CLK_ID(0x00, 0x00)
36#define MCUX_AIPSPLAT_CLK MCUX_MC_CGM_CLK_ID(0x01, 0x00)
37#define MCUX_AIPSSLOW_CLK MCUX_MC_CGM_CLK_ID(0x02, 0x00)
38#define MCUX_HSE_CLK MCUX_MC_CGM_CLK_ID(0x03, 0x00)
39#define MCUX_DCM_CLK MCUX_MC_CGM_CLK_ID(0x04, 0x00)
40#define MCUX_LBIST_CLK MCUX_MC_CGM_CLK_ID(0x05, 0x00)
41#define MCUX_QSPI_CLK MCUX_MC_CGM_CLK_ID(0x06, 0x00)
42
43/* --------------------- MC_CGM clock --------------------- */
44#define MCUX_FIRC_CLK MCUX_MC_CGM_CLK_ID(0x10, 0x00)
45#define MCUX_SIRC_CLK MCUX_MC_CGM_CLK_ID(0x11, 0x00)
46#define MCUX_FXOSC_CLK MCUX_MC_CGM_CLK_ID(0x12, 0x00)
47#define MCUX_SXOSC_CLK MCUX_MC_CGM_CLK_ID(0x13, 0x00)
48#define MCUX_PLLPHI0_CLK MCUX_MC_CGM_CLK_ID(0x14, 0x00)
49#define MCUX_PLLPHI1_CLK MCUX_MC_CGM_CLK_ID(0x14, 0x01)
50
51/* --------------------- Peripheral clock --------------------- */
52#define MCUX_ADC0_CLK MCUX_MC_CGM_CLK_ID(0x20, 0x00)
53#define MCUX_ADC1_CLK MCUX_MC_CGM_CLK_ID(0x20, 0x01)
54#define MCUX_ADC2_CLK MCUX_MC_CGM_CLK_ID(0x20, 0x02)
55
56#define MCUX_BCTU_CLK MCUX_MC_CGM_CLK_ID(0x21, 0x00)
57
58#define MCUX_CMP0_CLK MCUX_MC_CGM_CLK_ID(0x22, 0x00)
59#define MCUX_CMP1_CLK MCUX_MC_CGM_CLK_ID(0x22, 0x01)
60#define MCUX_CMP2_CLK MCUX_MC_CGM_CLK_ID(0x22, 0x02)
61
62#define MCUX_EMIOS_CLK MCUX_MC_CGM_CLK_ID(0x23, 0x00)
63
64#define MCUX_FLEXCAN0_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x00)
65#define MCUX_FLEXCAN1_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x01)
66#define MCUX_FLEXCAN2_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x02)
67#define MCUX_FLEXCAN3_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x03)
68#define MCUX_FLEXCAN4_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x04)
69#define MCUX_FLEXCAN5_CLK MCUX_MC_CGM_CLK_ID(0x24, 0x05)
70
71#define MCUX_FLEXIO_CLK MCUX_MC_CGM_CLK_ID(0x25, 0x00)
72
73#define MCUX_LPI2C0_CLK MCUX_MC_CGM_CLK_ID(0x26, 0x00)
74#define MCUX_LPI2C1_CLK MCUX_MC_CGM_CLK_ID(0x26, 0x01)
75
76#define MCUX_LPSPI0_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x00)
77#define MCUX_LPSPI1_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x01)
78#define MCUX_LPSPI2_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x02)
79#define MCUX_LPSPI3_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x03)
80#define MCUX_LPSPI4_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x04)
81#define MCUX_LPSPI5_CLK MCUX_MC_CGM_CLK_ID(0x27, 0x05)
82
83#define MCUX_LPUART0_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x00)
84#define MCUX_LPUART1_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x01)
85#define MCUX_LPUART2_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x02)
86#define MCUX_LPUART3_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x03)
87#define MCUX_LPUART4_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x04)
88#define MCUX_LPUART5_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x05)
89#define MCUX_LPUART6_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x06)
90#define MCUX_LPUART7_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x07)
91#define MCUX_LPUART8_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x08)
92#define MCUX_LPUART9_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x09)
93#define MCUX_LPUART10_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0A)
94#define MCUX_LPUART11_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0B)
95#define MCUX_LPUART12_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0C)
96#define MCUX_LPUART13_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0D)
97#define MCUX_LPUART14_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0E)
98#define MCUX_LPUART15_CLK MCUX_MC_CGM_CLK_ID(0x28, 0x0F)
99
100#define MCUX_PIT0_CLK MCUX_MC_CGM_CLK_ID(0x29, 0x00)
101#define MCUX_PIT1_CLK MCUX_MC_CGM_CLK_ID(0x29, 0x01)
102#define MCUX_PIT2_CLK MCUX_MC_CGM_CLK_ID(0x29, 0x02)
103
104#define MCUX_SAI0_CLK MCUX_MC_CGM_CLK_ID(0x2A, 0x00)
105#define MCUX_SAI1_CLK MCUX_MC_CGM_CLK_ID(0x2A, 0x01)
106
107#define MCUX_STM0_CLK MCUX_MC_CGM_CLK_ID(0x2B, 0x00)
108#define MCUX_STM1_CLK MCUX_MC_CGM_CLK_ID(0x2B, 0x01)
109
110/* --------------------- Partition 2 clock --------------------- */
111#define MCUX_QSPISF_CLK MCUX_MC_CGM_CLK_ID(0x2C, 0x00)
112#define MCUX_EMACRX_CLK MCUX_MC_CGM_CLK_ID(0x2C, 0x01)
113#define MCUX_EMACTX_CLK MCUX_MC_CGM_CLK_ID(0x2C, 0x02)
114#define MCUX_EMACTS_CLK MCUX_MC_CGM_CLK_ID(0x2C, 0x03)
115
116#define MCUX_TEMPSENSE_CLK MCUX_MC_CGM_CLK_ID(0x2C, 0x04)
117
118#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_NXP_MC_CGM_H_ */