Zephyr Project API
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
nxp-freqme.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2026 NXP
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_MONITOR_NXP_FREQME_H_
8
#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_MONITOR_NXP_FREQME_H_
9
25
27
#define NXP_FREQME_PMUX_SHIFT 20
28
38
#define NXP_FREQME_SOURCE_UNCHANGED 0U
39
40
/*
41
* MCX families with separate FREQMEAS_REF (0x180) / FREQMEAS_TAR (0x184) mux
42
* registers. MCXA, MCXC, MCXN, MCXL and MCXW all share this register layout;
43
* only the per-source selector numbers differ, so each family has its own
44
* cookie set below.
45
*/
46
48
#define NXP_FREQME_REF_REG 0x180
50
#define NXP_FREQME_TAR_REG 0x184
51
53
#define NXP_FREQME_REF(sel) ((sel) + (NXP_FREQME_REF_REG << NXP_FREQME_PMUX_SHIFT))
55
#define NXP_FREQME_TAR(sel) ((sel) + (NXP_FREQME_TAR_REG << NXP_FREQME_PMUX_SHIFT))
56
57
/*
58
* MCXA selectors.
59
* Devices: MCXA153, MCXA156, MCXA174, MCXA266, MCXA344, MCXA346, MCXA577 and
60
* MCXC162 (identical selector numbering).
61
*/
62
#define NXP_FREQME_REF_CLK_IN NXP_FREQME_REF(1)
63
#define NXP_FREQME_REF_FRO_12M NXP_FREQME_REF(2)
64
#define NXP_FREQME_REF_FRO_HF_DIV NXP_FREQME_REF(3)
65
#define NXP_FREQME_REF_CLK_16K1 NXP_FREQME_REF(5)
66
#define NXP_FREQME_REF_SLOW_CLK NXP_FREQME_REF(6)
67
#define NXP_FREQME_REF_CLK_IN0 NXP_FREQME_REF(7)
68
#define NXP_FREQME_REF_CLK_IN1 NXP_FREQME_REF(8)
69
70
#define NXP_FREQME_TAR_CLK_IN NXP_FREQME_TAR(1)
71
#define NXP_FREQME_TAR_FRO_12M NXP_FREQME_TAR(2)
72
#define NXP_FREQME_TAR_FRO_HF_DIV NXP_FREQME_TAR(3)
73
#define NXP_FREQME_TAR_CLK_16K1 NXP_FREQME_TAR(5)
74
#define NXP_FREQME_TAR_SLOW_CLK NXP_FREQME_TAR(6)
75
#define NXP_FREQME_TAR_CLK_IN0 NXP_FREQME_TAR(7)
76
#define NXP_FREQME_TAR_CLK_IN1 NXP_FREQME_TAR(8)
77
78
/*
79
* MCXN selectors.
80
* Devices: MCXN236, MCXN947.
81
*/
82
#define NXP_FREQME_MCXN_REF_CLK_IN NXP_FREQME_REF(0)
83
#define NXP_FREQME_MCXN_REF_FRO_12M NXP_FREQME_REF(1)
84
#define NXP_FREQME_MCXN_REF_FRO_HF NXP_FREQME_REF(2)
85
#define NXP_FREQME_MCXN_REF_OSC32K NXP_FREQME_REF(4)
86
#define NXP_FREQME_MCXN_REF_CPU_AHB_CLK NXP_FREQME_REF(5)
87
#define NXP_FREQME_MCXN_REF_CLK_IN0 NXP_FREQME_REF(6)
88
#define NXP_FREQME_MCXN_REF_CLK_IN1 NXP_FREQME_REF(7)
89
90
#define NXP_FREQME_MCXN_TAR_CLK_IN NXP_FREQME_TAR(0)
91
#define NXP_FREQME_MCXN_TAR_FRO_12M NXP_FREQME_TAR(1)
92
#define NXP_FREQME_MCXN_TAR_FRO_HF NXP_FREQME_TAR(2)
93
#define NXP_FREQME_MCXN_TAR_OSC32K NXP_FREQME_TAR(4)
94
#define NXP_FREQME_MCXN_TAR_CPU_AHB_CLK NXP_FREQME_TAR(5)
95
#define NXP_FREQME_MCXN_TAR_CLK_IN0 NXP_FREQME_TAR(6)
96
#define NXP_FREQME_MCXN_TAR_CLK_IN1 NXP_FREQME_TAR(7)
97
98
/*
99
* MCXL selectors.
100
* Devices: MCXL255.
101
*/
102
#define NXP_FREQME_MCXL_REF_FRO_12M NXP_FREQME_REF(2)
103
#define NXP_FREQME_MCXL_REF_FRO_HF_DIV NXP_FREQME_REF(3)
104
#define NXP_FREQME_MCXL_REF_XTAL32K NXP_FREQME_REF(4)
105
#define NXP_FREQME_MCXL_REF_CLK_16K0 NXP_FREQME_REF(5)
106
#define NXP_FREQME_MCXL_REF_SLOW_CLK NXP_FREQME_REF(6)
107
#define NXP_FREQME_MCXL_REF_CLK_IN0 NXP_FREQME_REF(7)
108
#define NXP_FREQME_MCXL_REF_CLK_IN1 NXP_FREQME_REF(8)
109
110
#define NXP_FREQME_MCXL_TAR_FRO_12M NXP_FREQME_TAR(2)
111
#define NXP_FREQME_MCXL_TAR_FRO_HF_DIV NXP_FREQME_TAR(3)
112
#define NXP_FREQME_MCXL_TAR_XTAL32K NXP_FREQME_TAR(4)
113
#define NXP_FREQME_MCXL_TAR_CLK_16K0 NXP_FREQME_TAR(5)
114
#define NXP_FREQME_MCXL_TAR_SLOW_CLK NXP_FREQME_TAR(6)
115
#define NXP_FREQME_MCXL_TAR_CLK_IN0 NXP_FREQME_TAR(7)
116
#define NXP_FREQME_MCXL_TAR_CLK_IN1 NXP_FREQME_TAR(8)
117
118
/*
119
* MCXW selectors.
120
* Devices: MCXW236. A completely distinct selector set.
121
*/
122
#define NXP_FREQME_MCXW_REF_EXTERN_OSC NXP_FREQME_REF(0)
123
#define NXP_FREQME_MCXW_REF_FRO_12M NXP_FREQME_REF(1)
124
#define NXP_FREQME_MCXW_REF_FRO_32M NXP_FREQME_REF(2)
125
#define NXP_FREQME_MCXW_REF_FRO_1M NXP_FREQME_REF(3)
126
#define NXP_FREQME_MCXW_REF_OSC32K NXP_FREQME_REF(4)
127
#define NXP_FREQME_MCXW_REF_MAIN_CLK NXP_FREQME_REF(5)
128
#define NXP_FREQME_MCXW_REF_SPIFI_CLK NXP_FREQME_REF(6)
129
#define NXP_FREQME_MCXW_REF_PORT0_PIN3 NXP_FREQME_REF(7)
130
#define NXP_FREQME_MCXW_REF_PORT0_PIN11 NXP_FREQME_REF(8)
131
#define NXP_FREQME_MCXW_REF_PORT0_PIN12 NXP_FREQME_REF(9)
132
#define NXP_FREQME_MCXW_REF_PORT0_PIN14 NXP_FREQME_REF(10)
133
134
#define NXP_FREQME_MCXW_TAR_EXTERN_OSC NXP_FREQME_TAR(0)
135
#define NXP_FREQME_MCXW_TAR_FRO_12M NXP_FREQME_TAR(1)
136
#define NXP_FREQME_MCXW_TAR_FRO_32M NXP_FREQME_TAR(2)
137
#define NXP_FREQME_MCXW_TAR_FRO_1M NXP_FREQME_TAR(3)
138
#define NXP_FREQME_MCXW_TAR_OSC32K NXP_FREQME_TAR(4)
139
#define NXP_FREQME_MCXW_TAR_MAIN_CLK NXP_FREQME_TAR(5)
140
#define NXP_FREQME_MCXW_TAR_SPIFI_CLK NXP_FREQME_TAR(6)
141
#define NXP_FREQME_MCXW_TAR_PORT0_PIN3 NXP_FREQME_TAR(7)
142
#define NXP_FREQME_MCXW_TAR_PORT0_PIN11 NXP_FREQME_TAR(8)
143
#define NXP_FREQME_MCXW_TAR_PORT0_PIN12 NXP_FREQME_TAR(9)
144
#define NXP_FREQME_MCXW_TAR_PORT0_PIN14 NXP_FREQME_TAR(10)
145
146
/*
147
* i.MX RT700 selectors.
148
* Devices: MIMXRT798S (and RT7xx family).
149
*
150
* RT700 places the FREQMEAS reference / target mux registers at 0x700 / 0x704
151
* (not 0x180 / 0x184 like the MCX families), so it needs its own register
152
* constants and helpers.
153
*/
154
156
#define NXP_FREQME_RT7XX_REF_REG 0x700
158
#define NXP_FREQME_RT7XX_TAR_REG 0x704
159
161
#define NXP_FREQME_RT7XX_REF(sel) ((sel) + (NXP_FREQME_RT7XX_REF_REG << NXP_FREQME_PMUX_SHIFT))
163
#define NXP_FREQME_RT7XX_TAR(sel) ((sel) + (NXP_FREQME_RT7XX_TAR_REG << NXP_FREQME_PMUX_SHIFT))
164
165
#define NXP_FREQME_RT7XX_REF_OSC_CLK NXP_FREQME_RT7XX_REF(0)
166
#define NXP_FREQME_RT7XX_REF_FRO1_DIV8 NXP_FREQME_RT7XX_REF(1)
167
#define NXP_FREQME_RT7XX_REF_FRO1 NXP_FREQME_RT7XX_REF(2)
168
#define NXP_FREQME_RT7XX_REF_LPOSC NXP_FREQME_RT7XX_REF(3)
169
#define NXP_FREQME_RT7XX_REF_OSC32K NXP_FREQME_RT7XX_REF(4)
170
#define NXP_FREQME_RT7XX_REF_FRO0 NXP_FREQME_RT7XX_REF(6)
171
#define NXP_FREQME_RT7XX_REF_FRO2 NXP_FREQME_RT7XX_REF(7)
172
#define NXP_FREQME_RT7XX_REF_GPIO_A_CLK NXP_FREQME_RT7XX_REF(8)
173
#define NXP_FREQME_RT7XX_REF_GPIO_B_CLK NXP_FREQME_RT7XX_REF(9)
174
175
#define NXP_FREQME_RT7XX_TAR_OSC_CLK NXP_FREQME_RT7XX_TAR(0)
176
#define NXP_FREQME_RT7XX_TAR_FRO1_DIV8 NXP_FREQME_RT7XX_TAR(1)
177
#define NXP_FREQME_RT7XX_TAR_FRO1 NXP_FREQME_RT7XX_TAR(2)
178
#define NXP_FREQME_RT7XX_TAR_LPOSC NXP_FREQME_RT7XX_TAR(3)
179
#define NXP_FREQME_RT7XX_TAR_OSC32K NXP_FREQME_RT7XX_TAR(4)
180
#define NXP_FREQME_RT7XX_TAR_FRO0 NXP_FREQME_RT7XX_TAR(6)
181
#define NXP_FREQME_RT7XX_TAR_FRO2 NXP_FREQME_RT7XX_TAR(7)
182
#define NXP_FREQME_RT7XX_TAR_GPIO_A_CLK NXP_FREQME_RT7XX_TAR(8)
183
#define NXP_FREQME_RT7XX_TAR_GPIO_B_CLK NXP_FREQME_RT7XX_TAR(9)
184
185
#endif
/* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_MONITOR_NXP_FREQME_H_ */
include
zephyr
dt-bindings
clock-monitor
nxp-freqme.h
Generated on
for Zephyr Project API by
1.16.1