From 270f5d6771d3d84d902ab6bf5f0f5f62fd1d5f1c Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 21 May 2025 08:46:46 +0100 Subject: [PATCH] soc: nordic: Use proper devicetree entries for clock frequency Sets the SYS_CLOCK_HW_CYCLES_PER_SEC Kconfig from devicetree entries. Also fixes invalid configuration on nrf54h20 whereby it attempts to take the clock frequency from a peripheral that does not exist Signed-off-by: Jamie McCrae --- soc/nordic/Kconfig.defconfig | 4 ---- soc/nordic/nrf51/Kconfig.defconfig | 3 +++ soc/nordic/nrf52/Kconfig.defconfig | 3 +++ soc/nordic/nrf53/Kconfig.defconfig | 3 +++ soc/nordic/nrf54h/Kconfig.defconfig | 7 +++---- soc/nordic/nrf54l/Kconfig.defconfig | 3 +++ soc/nordic/nrf91/Kconfig.defconfig | 3 +++ soc/nordic/nrf92/Kconfig.defconfig | 3 +++ 8 files changed, 21 insertions(+), 8 deletions(-) diff --git a/soc/nordic/Kconfig.defconfig b/soc/nordic/Kconfig.defconfig index 3e819b9ad59..b1490a2f338 100644 --- a/soc/nordic/Kconfig.defconfig +++ b/soc/nordic/Kconfig.defconfig @@ -13,10 +13,6 @@ rsource "*/Kconfig.defconfig" config CLOCK_CONTROL default y if SYS_CLOCK_EXISTS && !NRF_PLATFORM_HALTIUM && !RISCV_CORE_NORDIC_VPR -config SYS_CLOCK_HW_CYCLES_PER_SEC - default 1000000 if NRF_GRTC_TIMER - default 32768 - config SYS_CLOCK_TICKS_PER_SEC default 128 if !TICKLESS_KERNEL default 31250 if NRF_GRTC_TIMER diff --git a/soc/nordic/nrf51/Kconfig.defconfig b/soc/nordic/nrf51/Kconfig.defconfig index 0168531e1d5..67f1eb86e39 100644 --- a/soc/nordic/nrf51/Kconfig.defconfig +++ b/soc/nordic/nrf51/Kconfig.defconfig @@ -13,4 +13,7 @@ config NUM_IRQS config NRF_RTC_TIMER default y if SYS_CLOCK_EXISTS +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,rtc1,clock-frequency) + endif # SOC_SERIES_NRF51X diff --git a/soc/nordic/nrf52/Kconfig.defconfig b/soc/nordic/nrf52/Kconfig.defconfig index eed012878e2..7908f14561e 100644 --- a/soc/nordic/nrf52/Kconfig.defconfig +++ b/soc/nordic/nrf52/Kconfig.defconfig @@ -11,4 +11,7 @@ rsource "Kconfig.defconfig.nrf52*" config NRF_RTC_TIMER default y if SYS_CLOCK_EXISTS +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,rtc1,clock-frequency) + endif # SOC_SERIES_NRF52X diff --git a/soc/nordic/nrf53/Kconfig.defconfig b/soc/nordic/nrf53/Kconfig.defconfig index d41e2e57f58..bd0b9cb6d27 100644 --- a/soc/nordic/nrf53/Kconfig.defconfig +++ b/soc/nordic/nrf53/Kconfig.defconfig @@ -11,4 +11,7 @@ rsource "Kconfig.defconfig.nrf53*" config NRF_RTC_TIMER default y if SYS_CLOCK_EXISTS +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,rtc1,clock-frequency) + endif # SOC_SERIES_NRF53X diff --git a/soc/nordic/nrf54h/Kconfig.defconfig b/soc/nordic/nrf54h/Kconfig.defconfig index e1bd0aa6801..486343a78ab 100644 --- a/soc/nordic/nrf54h/Kconfig.defconfig +++ b/soc/nordic/nrf54h/Kconfig.defconfig @@ -27,10 +27,6 @@ config BUILD_OUTPUT_ADJUST_LMA config BUILD_OUTPUT_HEX default y -config SYS_CLOCK_HW_CYCLES_PER_SEC - default 1000000 if NRF_GRTC_TIMER - default 32768 if NRF_RTC_TIMER - endif # RISCV config SPI_DW_HSSI @@ -45,4 +41,7 @@ config PM_DEVICE_POWER_DOMAIN config PM_DEVICE_RUNTIME default y if PM_DEVICE +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,grtc,clock-frequency) if NRF_GRTC_TIMER + endif # SOC_SERIES_NRF54HX diff --git a/soc/nordic/nrf54l/Kconfig.defconfig b/soc/nordic/nrf54l/Kconfig.defconfig index 03a93d4cda8..9e84d3bc09f 100644 --- a/soc/nordic/nrf54l/Kconfig.defconfig +++ b/soc/nordic/nrf54l/Kconfig.defconfig @@ -46,4 +46,7 @@ config BUILD_OUTPUT_ADJUST_LMA endif # RISCV +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,grtc,clock-frequency) if NRF_GRTC_TIMER + endif # SOC_SERIES_NRF54LX diff --git a/soc/nordic/nrf91/Kconfig.defconfig b/soc/nordic/nrf91/Kconfig.defconfig index e28213fc873..81fce08e5dd 100644 --- a/soc/nordic/nrf91/Kconfig.defconfig +++ b/soc/nordic/nrf91/Kconfig.defconfig @@ -11,4 +11,7 @@ rsource "Kconfig.defconfig.nrf91*" config NRF_RTC_TIMER default y if SYS_CLOCK_EXISTS +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,rtc1,clock-frequency) + endif # SOC_SERIES_NRF91X diff --git a/soc/nordic/nrf92/Kconfig.defconfig b/soc/nordic/nrf92/Kconfig.defconfig index 5d1b6385a05..fe88daacefc 100644 --- a/soc/nordic/nrf92/Kconfig.defconfig +++ b/soc/nordic/nrf92/Kconfig.defconfig @@ -38,4 +38,7 @@ config SPI_DW_HSSI config SPI_DW_ACCESS_WORD_ONLY default y if SPI_DW +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_nodelabel_int_prop,grtc,clock-frequency) if NRF_GRTC_TIMER + endif # SOC_SERIES_NRF92X