summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-11-28 12:55:56 +0700
committerhathach <[email protected]>2025-11-28 13:34:00 +0700
commit7d012b014eb27de9a5f34da543c707109c653045 (patch)
treecfa2d7369405b4fe794d7c572823db8e2a3ff522 /src
parent1618c58dc4ef82f30c51c6318046d8dccb524425 (diff)
fix build with zephyr with latest nrfx v4
Diffstat (limited to 'src')
-rw-r--r--src/portable/nordic/nrf5x/dcd_nrf5x.c47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c
index 82b6db5fd..8a41c4790 100644
--- a/src/portable/nordic/nrf5x/dcd_nrf5x.c
+++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c
@@ -59,21 +59,26 @@
/* Try to detect nrfx version if not configured with CFG_TUD_NRF_NRFX_VERSION
* nrfx v1 and v2 are concurrently developed. There is no NRFX_VERSION only MDK VERSION which is as follows:
* - v3.0.0: 8.53.1 (conflict with v2.11.0), v3.1.0: 8.55.0 ...
- * - v2.11.0: 8.53.1, v2.6.0: 8.44.1, v2.5.0: 8.40.2, v2.4.0: 8.37.0, v2.3.0: 8.35.0, v2.2.0: 8.32.1, v2.1.0: 8.30.2, v2.0.0: 8.29.0
+ * - v2.11.0: 8.53.1, v2.6.0: 8.44.1, v2.5.0: 8.40.2, v2.4.0: 8.37.0, v2.3.0: 8.35.0, v2.2.0: 8.32.1, v2.1.0: 8.30.2,
+ * v2.0.0: 8.29.0
* - v1.9.0: 8.40.3, v1.8.6: 8.35.0 (conflict with v2.3.0), v1.8.5: 8.32.3, v1.8.4: 8.32.1 (conflict with v2.2.0),
* v1.8.2: 8.32.1 (conflict with v2.2.0), v1.8.1: 8.27.1
* Therefore the check for v1 would be:
* - MDK < 8.29.0 (v2.0), MDK == 8.32.3, 8.40.3
* - in case of conflict User of those version must upgrade to other 1.x version or set CFG_TUD_NRF_NRFX_VERSION
-*/
+ */
#ifndef CFG_TUD_NRF_NRFX_VERSION
- #define _MDK_VERSION (10000*MDK_MAJOR_VERSION + 100*MDK_MINOR_VERSION + MDK_MICRO_VERSION)
+ #define MDK_VERSION (10000 * MDK_MAJOR_VERSION + 100 * MDK_MINOR_VERSION + MDK_MICRO_VERSION)
- #if _MDK_VERSION < 82900 || _MDK_VERSION == 83203 || _MDK_VERSION == 84003
+ #if MDK_VERSION < 82900 || MDK_VERSION == 83203 || MDK_VERSION == 84003
// nrfx <= 1.8.1, or 1.8.5 or 1.9.0
#define CFG_TUD_NRF_NRFX_VERSION 1
- #else
+ #elif MDK_VERSION < 85301
#define CFG_TUD_NRF_NRFX_VERSION 2
+ #elif MDK_VERSION < 87300
+ #define CFG_TUD_NRF_NRFX_VERSION 3
+ #else
+ #define CFG_TUD_NRF_NRFX_VERSION 4
#endif
#endif
@@ -845,19 +850,19 @@ TU_ATTR_ALWAYS_INLINE static inline bool is_sd_enabled(void) {
#endif
static bool hfclk_running(void) {
-#ifdef SOFTDEVICE_PRESENT
- if ( is_sd_enabled() ) {
+ #ifdef SOFTDEVICE_PRESENT
+ if (is_sd_enabled()) {
uint32_t is_running = 0;
- (void) sd_clock_hfclk_is_running(&is_running);
+ (void)sd_clock_hfclk_is_running(&is_running);
return (is_running ? true : false);
}
-#endif
+ #endif
-#if CFG_TUD_NRF_NRFX_VERSION == 1
+ #if CFG_TUD_NRF_NRFX_VERSION == 1
return nrf_clock_hf_is_running(NRF_CLOCK_HFCLK_HIGH_ACCURACY);
-#else
- return nrf_clock_hf_is_running(NRF_CLOCK, NRF_CLOCK_HFCLK_HIGH_ACCURACY);
-#endif
+ #else
+ return nrf_clock_is_running(NRF_CLOCK, NRF_CLOCK_DOMAIN_HFCLK, NULL);
+ #endif
}
static void hfclk_enable(void) {
@@ -867,22 +872,24 @@ static void hfclk_enable(void) {
#else
// already running, nothing to do
- if (hfclk_running()) return;
+ if (hfclk_running()) {
+ return;
+ }
-#ifdef SOFTDEVICE_PRESENT
- if ( is_sd_enabled() ) {
+ #ifdef SOFTDEVICE_PRESENT
+ if (is_sd_enabled()) {
(void)sd_clock_hfclk_request();
return;
}
-#endif
+ #endif
-#if CFG_TUD_NRF_NRFX_VERSION == 1
+ #if CFG_TUD_NRF_NRFX_VERSION == 1
nrf_clock_event_clear(NRF_CLOCK_EVENT_HFCLKSTARTED);
nrf_clock_task_trigger(NRF_CLOCK_TASK_HFCLKSTART);
-#else
+ #else
nrf_clock_event_clear(NRF_CLOCK, NRF_CLOCK_EVENT_HFCLKSTARTED);
nrf_clock_task_trigger(NRF_CLOCK, NRF_CLOCK_TASK_HFCLKSTART);
-#endif
+ #endif
#endif
}