Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
imx_ccm_rev3.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright 2026 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_IMX_CCM_REV3_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_IMX_CCM_REV3_H_
9
44
46#define IMX_CCM_ID_BITS 16U
48#define IMX_CCM_ID_MASK 0xFFFFU
49
51#define IMX_CCM_GATE_SHIFT 0U
53#define IMX_CCM_ROOT_SHIFT 16U
54
56#define IMX_CCM_GATE_NONE IMX_CCM_ID_MASK
58#define IMX_CCM_ROOT_NONE IMX_CCM_ID_MASK
59
66#define IMX_CCM_CLK(gate, root) \
67 ((((root) & IMX_CCM_ID_MASK) << IMX_CCM_ROOT_SHIFT) | \
68 (((gate) & IMX_CCM_ID_MASK) << IMX_CCM_GATE_SHIFT))
69
71#define IMX_CCM_CLK_GATE(spec) (((spec) >> IMX_CCM_GATE_SHIFT) & IMX_CCM_ID_MASK)
73#define IMX_CCM_CLK_ROOT(spec) (((spec) >> IMX_CCM_ROOT_SHIFT) & IMX_CCM_ID_MASK)
74
104
106#define IMX_CCM_ROOT_CFG_ROOT_SHIFT 0U
108#define IMX_CCM_ROOT_CFG_MUX_SHIFT 8U
110#define IMX_CCM_ROOT_CFG_DIV_SHIFT 12U
112#define IMX_CCM_ROOT_CFG_SND_DIV_SHIFT 20U
114#define IMX_CCM_ROOT_CFG_TAG_SHIFT 28U
115
117#define IMX_CCM_ROOT_CFG_ROOT_MASK 0xFFU
118#define IMX_CCM_ROOT_CFG_MUX_MASK 0xFU
119#define IMX_CCM_ROOT_CFG_DIV_MASK 0xFFU
120#define IMX_CCM_ROOT_CFG_SND_DIV_MASK 0xFFU
121#define IMX_CCM_ROOT_CFG_TAG_MASK 0xFU
122
124#define IMX_CCM_ROOT_CFG_TAG 0xAU
125
134#define IMX_CCM_ROOT_CFG(root, mux, div, snd_div) \
135 (((IMX_CCM_ROOT_CFG_TAG) << IMX_CCM_ROOT_CFG_TAG_SHIFT) | \
136 (((snd_div) & IMX_CCM_ROOT_CFG_SND_DIV_MASK) << IMX_CCM_ROOT_CFG_SND_DIV_SHIFT) | \
137 (((div) & IMX_CCM_ROOT_CFG_DIV_MASK) << IMX_CCM_ROOT_CFG_DIV_SHIFT) | \
138 (((mux) & IMX_CCM_ROOT_CFG_MUX_MASK) << IMX_CCM_ROOT_CFG_MUX_SHIFT) | \
139 (((root) & IMX_CCM_ROOT_CFG_ROOT_MASK) << IMX_CCM_ROOT_CFG_ROOT_SHIFT))
140
142#define IMX_CCM_ROOT_CFG_IS(cell) \
143 ((((cell) >> IMX_CCM_ROOT_CFG_TAG_SHIFT) & IMX_CCM_ROOT_CFG_TAG_MASK) == \
144 IMX_CCM_ROOT_CFG_TAG)
145
147#define IMX_CCM_ROOT_CFG_ROOT(cell) \
148 (((cell) >> IMX_CCM_ROOT_CFG_ROOT_SHIFT) & IMX_CCM_ROOT_CFG_ROOT_MASK)
149
150#define IMX_CCM_ROOT_CFG_MUX(cell) \
151 (((cell) >> IMX_CCM_ROOT_CFG_MUX_SHIFT) & IMX_CCM_ROOT_CFG_MUX_MASK)
152
153#define IMX_CCM_ROOT_CFG_DIV(cell) \
154 (((cell) >> IMX_CCM_ROOT_CFG_DIV_SHIFT) & IMX_CCM_ROOT_CFG_DIV_MASK)
155
156#define IMX_CCM_ROOT_CFG_SND_DIV(cell) \
157 (((cell) >> IMX_CCM_ROOT_CFG_SND_DIV_SHIFT) & IMX_CCM_ROOT_CFG_SND_DIV_MASK)
158
160
161#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_IMX_CCM_REV3_H_ */