diff --git a/dts/bindings/misc/nordic,nrf-tbm.yaml b/dts/bindings/misc/nordic,nrf-tbm.yaml new file mode 100644 index 00000000000..46708250c25 --- /dev/null +++ b/dts/bindings/misc/nordic,nrf-tbm.yaml @@ -0,0 +1,15 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +description: Nordic TBM (Trace Buffer Monitor) + +compatible: "nordic,nrf-tbm" + +include: base.yaml + +properties: + reg: + required: true + + interrupts: + required: true diff --git a/dts/common/nordic/nrf54h20.dtsi b/dts/common/nordic/nrf54h20.dtsi index 391a853aeea..bc84794452d 100644 --- a/dts/common/nordic/nrf54h20.dtsi +++ b/dts/common/nordic/nrf54h20.dtsi @@ -439,6 +439,19 @@ }; }; + tdd_peripherals: peripheral@bf000000 { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0xbf000000 0x1000000>; + + tbm: tbm@3000 { + compatible = "nordic,nrf-tbm"; + reg = <0x3000 0x408>; + status = "disabled"; + interrupts = <127 NRF_DEFAULT_IRQ_PRIORITY>; + }; + }; + global_peripherals: peripheral@5f000000 { #address-cells = <1>; #size-cells = <1>; diff --git a/modules/hal_nordic/nrfx/CMakeLists.txt b/modules/hal_nordic/nrfx/CMakeLists.txt index 2cfaf75d481..2e8e0cc1eb5 100644 --- a/modules/hal_nordic/nrfx/CMakeLists.txt +++ b/modules/hal_nordic/nrfx/CMakeLists.txt @@ -133,6 +133,7 @@ zephyr_library_sources_ifdef(CONFIG_NRFX_SPI ${SRC_DIR}/nrfx_spi.c) zephyr_library_sources_ifdef(CONFIG_NRFX_SPIM ${SRC_DIR}/nrfx_spim.c) zephyr_library_sources_ifdef(CONFIG_NRFX_SPIS ${SRC_DIR}/nrfx_spis.c) zephyr_library_sources_ifdef(CONFIG_NRFX_SYSTICK ${SRC_DIR}/nrfx_systick.c) +zephyr_library_sources_ifdef(CONFIG_NRFX_TBM ${SRC_DIR}/nrfx_tbm.c) zephyr_library_sources_ifdef(CONFIG_NRFX_TEMP ${SRC_DIR}/nrfx_temp.c) zephyr_library_sources_ifdef(CONFIG_NRFX_TIMER ${SRC_DIR}/nrfx_timer.c) zephyr_library_sources_ifdef(CONFIG_NRFX_TWI ${SRC_DIR}/nrfx_twi.c) diff --git a/modules/hal_nordic/nrfx/Kconfig b/modules/hal_nordic/nrfx/Kconfig index cf9f0b33f8f..3313e033c7c 100644 --- a/modules/hal_nordic/nrfx/Kconfig +++ b/modules/hal_nordic/nrfx/Kconfig @@ -534,6 +534,10 @@ config NRFX_SYSTICK bool "SYSTICK driver" depends on CPU_CORTEX_M_HAS_SYSTICK +config NRFX_TBM + bool "TBM driver" + depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_TBM)) + config NRFX_TEMP bool "TEMP driver" depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_TEMP)) diff --git a/modules/hal_nordic/nrfx/nrfx_config.h b/modules/hal_nordic/nrfx/nrfx_config.h index bfae564fcd6..99f7d7b1e94 100644 --- a/modules/hal_nordic/nrfx/nrfx_config.h +++ b/modules/hal_nordic/nrfx/nrfx_config.h @@ -527,6 +527,10 @@ #define NRFX_SYSTICK_CONFIG_LOG_ENABLED 1 #endif +#ifdef CONFIG_NRFX_TBM +#define NRFX_TBM_ENABLED 1 +#endif + #ifdef CONFIG_NRFX_TEMP #define NRFX_TEMP_ENABLED 1 #endif