Skip to content

Commit 16e74b9

Browse files
decsnydanieldegrasse
authored andcommitted
soc: imxrt: Clean up INIT_ARM_PLL config
Don't forcefully select this config in SOC level. Make it softer default y so board can unselect it. The config should not be possible if there is no arm pll, namely on RT101x and RT102x. So add dependency clause about this. And of course, code for this was a mess, clean up a bit. Also remove the ifdeffry for selecting a default value for the two SOCs, because they already put the same default value in the SOC Devicetree DTSI, so that code had no purpose as long as a board didn't completely redefine the SOC DT. Signed-off-by: Declan Snyder <[email protected]>
1 parent d33f7fe commit 16e74b9

File tree

6 files changed

+16
-42
lines changed

6 files changed

+16
-42
lines changed

soc/nxp/imxrt/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ config DCDC_VALUE
179179
hex "DCDC value for VDD_SOC"
180180

181181
config INIT_ARM_PLL
182+
default y
183+
depends on !SOC_MIMXRT1011 && !SOC_MIMXRT1015 && \
184+
!SOC_MIMXRT1021 && !SOC_MIMXRT1024
182185
bool "Initialize ARM PLL"
183186

184187
config INIT_VIDEO_PLL

soc/nxp/imxrt/imxrt10xx/Kconfig

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ config SOC_MIMXRT1042
6565
select HAS_MCUX_SEMC
6666
select CPU_HAS_FPU_DOUBLE_PRECISION
6767
select CPU_HAS_ARM_MPU
68-
select INIT_ARM_PLL
6968
select INIT_SYS_PLL
7069

7170
config SOC_MIMXRT1052
@@ -74,7 +73,6 @@ config SOC_MIMXRT1052
7473
select HAS_MCUX_SEMC
7574
select CPU_HAS_FPU_DOUBLE_PRECISION
7675
select CPU_HAS_ARM_MPU
77-
select INIT_ARM_PLL
7876
select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
7977
select HAS_MCUX_USDHC1
8078
select HAS_MCUX_USDHC2
@@ -91,7 +89,6 @@ config SOC_MIMXRT1062
9189
select HAS_MCUX_SNVS
9290
select CPU_HAS_FPU_DOUBLE_PRECISION
9391
select CPU_HAS_ARM_MPU
94-
select INIT_ARM_PLL
9592
select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
9693
select HAS_MCUX_USDHC1
9794
select HAS_MCUX_USDHC2
@@ -110,7 +107,6 @@ config SOC_MIMXRT1064
110107
select HAS_MCUX_SRC
111108
select CPU_HAS_FPU_DOUBLE_PRECISION
112109
select CPU_HAS_ARM_MPU
113-
select INIT_ARM_PLL
114110
select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
115111
select HAS_MCUX_USDHC1
116112
select HAS_MCUX_USDHC2

soc/nxp/imxrt/imxrt10xx/soc.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,6 @@
3333
DT_PROP(DT_CHILD(CCM_NODE, podf), clock_div) <= (b), \
3434
#podf " is out of supported range (" #a ", " #b ")")
3535

36-
#ifdef CONFIG_INIT_ARM_PLL
37-
/* ARM PLL configuration for RUN mode */
38-
const clock_arm_pll_config_t armPllConfig = {
39-
.loopDivider = 100U
40-
};
41-
#endif
42-
4336
#if CONFIG_INIT_SYS_PLL
4437
/* Configure System PLL */
4538
const clock_sys_pll_config_t sysPllConfig = {
@@ -132,6 +125,10 @@ __weak void clock_init(void)
132125
#endif
133126

134127
#ifdef CONFIG_INIT_ARM_PLL
128+
/* ARM PLL configuration for RUN mode */
129+
static const clock_arm_pll_config_t armPllConfig = {
130+
.loopDivider = 100U
131+
};
135132
CLOCK_InitArmPll(&armPllConfig); /* Configure ARM PLL to 1200M */
136133
#endif
137134

soc/nxp/imxrt/imxrt118x/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ config SOC_SERIES_IMXRT118X
1414
select CPU_HAS_ARM_MPU
1515
select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
1616
select ARM_MPU
17-
select INIT_ARM_PLL
1817
select ARM_TRUSTZONE_M if SOC_MIMXRT1189_CM33
1918
select CPU_HAS_ICACHE
2019
select CPU_HAS_DCACHE

soc/nxp/imxrt/imxrt11xx/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ config SOC_SERIES_IMXRT11XX
2323
select HAS_MCUX_FLEXSPI
2424
select HAS_MCUX_FLEXCAN
2525
select CPU_HAS_ARM_MPU
26-
select INIT_ARM_PLL
2726
select INIT_VIDEO_PLL
2827
select HAS_MCUX_EDMA
2928
select CPU_HAS_ICACHE if CPU_CORTEX_M7

soc/nxp/imxrt/imxrt11xx/soc.c

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -56,31 +56,6 @@ LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL);
5656
#define BOARD_USB_PHY_TXCAL45DM (0x06U)
5757
#endif
5858

59-
#ifdef CONFIG_INIT_ARM_PLL
60-
61-
#if defined(CONFIG_SOC_MIMXRT1176)
62-
#define DEFAULT_LOOPDIV 83
63-
#define DEFAULT_POSTDIV 2
64-
#elif defined(CONFIG_SOC_MIMXRT1166)
65-
#define DEFAULT_LOOPDIV 100
66-
#define DEFAULT_POSTDIV 4
67-
#else
68-
/*
69-
* Check that the ARM PLL has a multiplier and divider set
70-
*/
71-
BUILD_ASSERT(DT_NODE_HAS_PROP(DT_NODELABEL(arm_pll), clock_mult),
72-
"ARM PLL must have clock-mult property");
73-
BUILD_ASSERT(DT_NODE_HAS_PROP(DT_NODELABEL(arm_pll), clock_div),
74-
"ARM PLL must have clock-div property");
75-
#endif
76-
77-
static const clock_arm_pll_config_t armPllConfig = {
78-
.postDivider = CONCAT(kCLOCK_PllPostDiv,
79-
DT_PROP_OR(DT_NODELABEL(arm_pll), clock_div, DEFAULT_POSTDIV)),
80-
.loopDivider = DT_PROP_OR(DT_NODELABEL(arm_pll), clock_mult, DEFAULT_LOOPDIV) * 2,
81-
};
82-
#endif
83-
8459
static const clock_sys_pll2_config_t sysPll2Config = {
8560
/* Denominator of spread spectrum */
8661
.mfd = 268435455,
@@ -250,10 +225,15 @@ __weak void clock_init(void)
250225
* changed in the following PLL/PFD configuration code.
251226
*/
252227

253-
#ifdef CONFIG_INIT_ARM_PLL
254-
/* Init Arm Pll. */
255-
CLOCK_InitArmPll(&armPllConfig);
256-
#endif
228+
229+
static const clock_arm_pll_config_t armPllConfig = {
230+
.postDivider = CONCAT(kCLOCK_PllPostDiv, DT_PROP(DT_NODELABEL(arm_pll), clock_div)),
231+
.loopDivider = DT_PROP(DT_NODELABEL(arm_pll), clock_mult) * 2,
232+
};
233+
234+
if (IS_ENABLED(CONFIG_INIT_ARM_PLL)) {
235+
CLOCK_InitArmPll(&armPllConfig);
236+
}
257237

258238
if (IS_ENABLED(CONFIG_ETH_NXP_ENET)) {
259239
/* For default clocking, we will only use pll1 for div2 output for enet */

0 commit comments

Comments
 (0)