diff --git a/C:/ncs/v3.0.0/nrfxlib/nrf_modem/include/nrf_modem_dect_phy.h b/C:/ncs/v2.9.1/nrfxlib/nrf_modem/include/nrf_modem_dect_phy.h
index 64ce153..50e8553 100644
--- a/C:/ncs/v3.0.0/nrfxlib/nrf_modem/include/nrf_modem_dect_phy.h
+++ b/C:/ncs/v2.9.1/nrfxlib/nrf_modem/include/nrf_modem_dect_phy.h
@@ -42,21 +42,18 @@ extern "C" {
 /** @brief Minimum LBT measurement period in modem time units. */
 #define NRF_MODEM_DECT_LBT_PERIOD_MIN (2 * NRF_MODEM_DECT_SYMBOL_DURATION)
 
-/** @brief Signal to noise ratio not measured. */
-#define NRF_MODEM_DECT_PHY_SNR_NOT_MEASURED -32768
 /** @brief Symbol RSSI not measured. */
 #define NRF_MODEM_DECT_PHY_RSSI_NOT_MEASURED 0
-/** @brief RSSI-2 not measured. */
-#define NRF_MODEM_DECT_PHY_RSSI2_NOT_MEASURED -32768
 /** @brief Temperature not measured. */
 #define NRF_MODEM_DECT_PHY_TEMP_NOT_MEASURED 999
-/** @brief Voltage not measured. */
-#define NRF_MODEM_DECT_PHY_VOLTAGE_NOT_MEASURED 0
+/** @brief RSSI-2 not measured. */
+#define NRF_MODEM_DECT_PHY_RSSI2_NOT_MEASURED -32768
+/** @brief Signal to noise ratio not measured. */
+#define NRF_MODEM_DECT_PHY_SNR_NOT_MEASURED -32768
 
-/** @brief Special handle to cancel all operations in @ref nrf_modem_dect_phy_cancel */
-#define NRF_MODEM_DECT_PHY_HANDLE_CANCEL_ALL UINT32_MAX
 /** @brief Buffer status and Channel quality indicator not used. */
 #define NRF_MODEM_DECT_PHY_BS_CQI_NOT_USED 0
+
 /** @brief Unspecified link identifier. */
 #define NRF_MODEM_DECT_PHY_LINK_UNSPECIFIED ((struct nrf_modem_dect_phy_link_id){ 0 })
 
@@ -77,9 +74,9 @@ enum nrf_modem_dect_phy_err {
 	 */
 	NRF_MODEM_DECT_PHY_ERR_UNSUPPORTED_OP = 0x2,
 	/**
-	 * @brief Operation not found.
+	 * @brief Operation is not executing; it cannot be stopped.
 	 */
-	NRF_MODEM_DECT_PHY_ERR_NOT_FOUND = 0x3,
+	NRF_MODEM_DECT_PHY_ERR_NO_ONGOING_OP = 0x3,
 	/**
 	 * @brief Modem out of memory.
 	 */
@@ -138,10 +135,6 @@ enum nrf_modem_dect_phy_err {
 	 * @brief Operation not executed because combined operation failed.
 	 */
 	NRF_MODEM_DECT_PHY_ERR_COMBINED_OP_FAILED = 0x100A,
-	/**
-	 * @brief Operation is not allowed in the current radio mode.
-	 */
-	NRF_MODEM_DECT_PHY_ERR_RADIO_MODE_CONFLICT = 0x100B,
 	/**
 	 * @brief Unsupported carrier.
 	 */
@@ -166,10 +159,6 @@ enum nrf_modem_dect_phy_err {
 	 * @brief Invalid parameter.
 	 */
 	NRF_MODEM_DECT_PHY_ERR_INVALID_PARAMETER = 0x6005,
-	/**
-	 * @brief TX power limit exceeded.
-	 */
-	NRF_MODEM_DECT_PHY_ERR_TX_POWER_OVER_MAX_LIMIT = 0x6006,
 	/**
 	 * @brief Modem error.
 	 */
@@ -188,6 +177,74 @@ enum nrf_modem_dect_phy_err {
 	NRF_MODEM_DECT_PHY_ERR_PROD_LOCK = 0x7003,
 };
 
+/**
+ * @brief Modem PHY configuration.
+ *
+ * Includes radio state transition latencies and operating temperature limit.
+ */
+struct nrf_modem_dect_phy_modem_cfg {
+	/**
+	 * @brief Maximum operating temperature, in degrees Celsius.
+	 *
+	 * The minimum resolution is 1 degree Celsius.
+	 */
+	int16_t temperature_limit;
+	/**
+	 * @brief Latency of radio state transitions, in modem time units.
+	 */
+	struct {
+		/**
+		 * @brief From Idle to RSSI RF sampling start.
+		 */
+		uint32_t idle_to_rssi;
+		/**
+		 * @brief From RF sampling of RSSI to Idle.
+		 */
+		uint32_t rssi_to_idle;
+		/**
+		 * @brief From Idle to RX RF sampling start.
+		 */
+		uint32_t idle_to_rx;
+		/**
+		 * @brief From RF sampling of RX to Idle.
+		 */
+		uint32_t rx_to_idle;
+		/**
+		 * @brief From RF sampling of RX with RSSI measurement to Idle.
+		 */
+		uint32_t rx_rssi_to_idle;
+		/**
+		 * @brief From RX stop request to RF sampling stop.
+		 */
+		uint32_t rx_stop_to_rf_off;
+		/**
+		 * @brief From RX with RSSI measurement stop request to RF sampling stop.
+		 */
+		uint32_t rx_rssi_stop_to_rf_off;
+		/**
+		 * @brief From Idle to TX RF sample transmission start.
+		 */
+		uint32_t idle_to_tx;
+		/**
+		 * @brief From Idle to TX with LBT monitoring RF sampling start.
+		 */
+		uint32_t idle_to_tx_with_lbt;
+		/**
+		 * @brief From TX RF sample transmission end (with or without LBT) to Idle.
+		 */
+		uint32_t tx_to_idle;
+		/**
+		 * @brief From Idle to TX with LBT monitoring RF sampling start in TX-RX operation.
+		 */
+		uint32_t idle_to_txrx_with_lbt;
+		/**
+		 * @brief From TX RF sample transmission end
+		 *	  to RX RF sampling start in TX-RX operation.
+		 */
+		uint32_t txrx_tx_to_rx;
+	} latency;
+};
+
 /**
  * @brief Modem PHY capabilities.
  */
@@ -204,6 +261,10 @@ struct nrf_modem_dect_phy_capability {
 	 * @brief Capability variants.
 	 */
 	struct {
+		/**
+		 * @brief Power class.
+		 */
+		uint8_t power_class;
 		/**
 		 * @brief Supported reception capability of spatial stream transmissions.
 		 */
@@ -212,6 +273,10 @@ struct nrf_modem_dect_phy_capability {
 		 * @brief Reception capability of TX diversity transmission.
 		 */
 		uint8_t rx_tx_diversity;
+		/**
+		 * @brief Receiver sensitivity in dB.
+		 */
+		int8_t rx_gain;
 		/**
 		 * @brief Maximum supported modulation and coding scheme for reception.
 		 */
@@ -239,39 +304,6 @@ struct nrf_modem_dect_phy_capability {
 	} variant[];
 };
 
-/**
- * @brief Band information.
- */
-struct nrf_modem_dect_phy_band {
-	/**
-	 * @brief Band group index.
-	 *
-	 * Value 0 refers to RF frequencies operating near 2GHz and
-	 * value 1 to RF frequencies near 1 GHz.
-	 */
-	uint8_t band_group_index;
-	/**
-	 * @brief Band number.
-	 */
-	uint8_t band_number;
-	/**
-	 * @brief Receiver sensitivity capability in dB.
-	 */
-	int8_t rx_gain;
-	/**
-	 * @brief Power class.
-	 */
-	uint8_t power_class;
-	/**
-	 * @brief Minimum carrier number.
-	 */
-	uint16_t min_carrier;
-	/**
-	 * @brief Maximum carrier number.
-	 */
-	uint16_t max_carrier;
-};
-
 /**
  * @brief Reception mode.
  */
@@ -319,7 +351,7 @@ enum nrf_modem_dect_phy_rssi_interval {
 /**
  * @brief Physical header type 1.
  *
- * See 6.2 in @ref DECT-SPEC "DECT-2020 NR Part 4".
+ * See 6.2 of [2].
  */
 struct nrf_modem_dect_phy_hdr_type_1 {
 	/**
@@ -363,7 +395,7 @@ struct nrf_modem_dect_phy_hdr_type_1 {
 /**
  * @brief Feedback format types.
  *
- * See 6.2.2 in @ref DECT-SPEC "DECT-2020 NR Part 4".
+ * See 6.2.2 of [2].
  */
 union nrf_modem_dect_phy_feedback {
 	struct {
@@ -419,9 +451,10 @@ union nrf_modem_dect_phy_feedback {
 /**
  * @brief Physical header type 2.
  *
- * See 6.2 in @ref DECT-SPEC "DECT-2020 NR Part 4".
+ * See 6.2 of [2].
  */
 struct nrf_modem_dect_phy_hdr_type_2 {
+
 	/**
 	 * @brief Packet length in subslots or slots.
 	 */
@@ -535,7 +568,8 @@ enum nrf_modem_dect_phy_hdr_status {
 /**
  * @brief Radio link identifier.
  *
- * Identifies a radio link using fields that are available in Physical Layer Control Field.
+ * Radio link identifier identifies a radio link using fields that are available in Physical Layer
+ * Control Field.
  */
 struct nrf_modem_dect_phy_link_id {
 	/**
@@ -560,7 +594,7 @@ struct nrf_modem_dect_phy_link_id {
  * element value for the PCC to be accepted. PCC rejection will stop PDC reception and return
  * processing to synchronization search.
  *
- * See 6.2.1 in @ref DECT-SPEC "DECT-2020 NR Part 4".
+ *  See 6.2.1 in @ref DECT-SPEC "DECT-2020 NR Part 4".
  */
 struct nrf_modem_dect_phy_rx_filter {
 	/**
@@ -592,6 +626,155 @@ struct nrf_modem_dect_phy_rx_filter {
 	uint16_t receiver_identity;
 };
 
+/**
+ * @brief Reception parameters (PCC).
+ */
+struct nrf_modem_dect_phy_rx_pcc_status {
+	/**
+	 * @brief Synchronization Training Field start time.
+	 *
+	 * Start time of the STF of this reception in modem time.
+	 */
+	uint64_t stf_start_time;
+	/**
+	 * @brief Physical layer control field type.
+	 *
+	 * Valid values are 0 and 1 corresponding types 1 and 2, respectively.
+	 *
+	 * See 6.2.1 in @ref DECT-SPEC "DECT-2020 NR Part 4".
+	 */
+	uint8_t phy_type;
+	/**
+	 * @brief Validity of the physical header.
+	 */
+	enum nrf_modem_dect_phy_hdr_status header_status;
+	/**
+	 * @brief Received signal strength indicator (RSSI-2).
+	 *
+	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
+	 *
+	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t rssi_2;
+	/**
+	 * @brief Received signal to noise indicator (SNR).
+	 *
+	 * Values are dB values with 0.25 dB resolution (Q13.2).
+	 *
+	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t snr;
+};
+
+/**
+ * @brief Reception parameters (PDC).
+ */
+struct nrf_modem_dect_phy_rx_pdc_status {
+	/**
+	 * @brief Received signal strength indicator (RSSI-2).
+	 *
+	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
+	 *
+	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t rssi_2;
+	/**
+	 * @brief Received signal to noise indicator (SNR).
+	 *
+	 * Values are dB values with 0.25 dB resolution (Q13.2).
+	 *
+	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t snr;
+};
+
+/**
+ * @brief Reception parameters for PCC CRC failures.
+ */
+struct nrf_modem_dect_phy_rx_pcc_crc_failure {
+	/**
+	 * @brief Synchronization Training Field start time.
+	 *
+	 * Start time of the STF of this reception in modem time.
+	 */
+	uint64_t stf_start_time;
+	/**
+	 * @brief Received signal strength indicator (RSSI-2).
+	 *
+	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
+	 *
+	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t rssi_2;
+	/**
+	 * @brief Received signal to noise indicator (SNR).
+	 *
+	 * Values are dB values with 0.25 dB resolution (Q13.2).
+	 *
+	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t snr;
+};
+
+/**
+ * @brief Reception parameters for PDC CRC failures.
+ */
+struct nrf_modem_dect_phy_rx_pdc_crc_failure {
+	/**
+	 * @brief Received signal strength indicator (RSSI-2).
+	 *
+	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
+	 *
+	 * If this value is not measured, it is reported as
+	 * @ref NRF_MODEM_DECT_PHY_RSSI2_NOT_MEASURED.
+	 *
+	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t rssi_2;
+	/**
+	 * @brief Received signal to noise indicator (SNR).
+	 *
+	 * Values are dB values with 0.25 dB resolution (Q13.2).
+	 *
+	 * If this value is not measured, it is reported as
+	 * @ref NRF_MODEM_DECT_PHY_SNR_NOT_MEASURED.
+	 *
+	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 */
+	int16_t snr;
+};
+
+/**
+ * @brief RSSI measurement.
+ */
+struct nrf_modem_dect_phy_rssi_meas {
+	/**
+	 * @brief Measurement start time, in modem time units.
+	 */
+	uint64_t meas_start_time;
+	/**
+	 * @brief Handle of the operation.
+	 */
+	uint32_t handle;
+	/**
+	 * @brief The absolute channel frequency number on which the measurements were made.
+	 */
+	uint16_t carrier;
+	/**
+	 * @brief Number of measurements in @ref meas.
+	 */
+	uint16_t meas_len;
+	/**
+	 * @brief RSSI measurements, in dBm.
+	 *
+	 * If a symbol is measured, its measurement is in the interval [-140, -1].
+	 * If the measurement is saturated, the measured signal strength is reported
+	 * as a positive integer. If a symbol is not measured, its value is reported
+	 * as @ref NRF_MODEM_DECT_PHY_RSSI_NOT_MEASURED.
+	 */
+	int8_t *meas;
+};
+
 /**
  * @brief RX operation.
  */
@@ -605,7 +788,7 @@ struct nrf_modem_dect_phy_rx_params {
 	 */
 	uint64_t start_time;
 	/**
-	 * @brief Handle for the operation.
+	 * @brief Handle for the RX operation.
 	 *
 	 * An application-defined handle for the operation.
 	 */
@@ -643,7 +826,7 @@ struct nrf_modem_dect_phy_rx_params {
 	 * signal level.
 	 *
 	 * If the duration of the RX operation is long enough to receive multiple slots,
-	 * this value will only be used for the first successful reception. Subsequent receptions
+	 * `rssi_level` will only be used for the first successful reception. Subsequent receptions
 	 * during the same RX operation are initiated using a level that has been adjusted based on
 	 * the previous successful reception (slow AGC).
 	 */
@@ -677,7 +860,7 @@ struct nrf_modem_dect_phy_tx_params {
 	 */
 	uint64_t start_time;
 	/**
-	 * @brief Handle for the operation.
+	 * @brief Handle for the TX operation.
 	 *
 	 * An application-defined handle for the operation.
 	 */
@@ -725,20 +908,21 @@ struct nrf_modem_dect_phy_tx_params {
 	/**
 	 * @brief Listen before talk period in modem time units.
 	 *
-	 * This is the required duration for the channel to be assessed as "free" or "available"
-	 * before starting transmission. This duration is divided into as many as 64 separate
-	 * integration periods, with each period being a multiple of the symbol duration.
-	 * Each integration period is of equal length, up to a maximum of 7 symbols.
-	 * The maximum number of integration periods is utilized. For instance, LBT durations of
-	 * up to 64 symbols are divided into integration periods of one symbol each, and
-	 * LBT durations of 65-128 symbols are divided into two-symbol integration periods.
-	 * The LBT duration may be adjusted slightly to meet these requirements without exceeding
-	 * the specified LBT length, for example, a duration of 71 symbols would be adjusted to
-	 * 70 symbols (35 periods of 2 symbols each).
-	 *
-	 * If the channel is initially found to be "busy," the modem will cease further measurement
-	 * of the channel and will report an error instead. It is then the responsibility of the
-	 * higher layer to reschedule the transmission.
+	 * The period that the channel needs to be measured "free" or "possible" before initiating
+	 * transmission.
+	 *
+	 * The period is split into up to 64 individual integration periods, each period
+	 * being an integer multiple of a symbol duration (2880 modem time units). All integration
+	 * periods have the same length, maximum 7 symbols. The maximum number of integration
+	 * periods is used. For example, LBT periods of up to 64 symbols will be split into one
+	 * symbol long integration periods, and LBT periods of 65-128 symbols will be split into two
+	 * symbol long integration periods. If necessary the LBT period may be shortened slightly
+	 * to fit these constraints while still not exceeding the given LBT length, e.g.
+	 * a period of 71 symbols will effectively be 70 symbols long (35 periods of 2 symbols).
+	 *
+	 * In case the channel is initially detected "busy" the modem will not continue measuring
+	 * the channel. Instead the modem will report an error. Rescheduling a transmission is left
+	 * up to the higher layer.
 	 *
 	 * If set to zero, LBT is not used. Otherwise the acceptable value range is
 	 * [@ref NRF_MODEM_DECT_LBT_PERIOD_MIN, @ref NRF_MODEM_DECT_LBT_PERIOD_MAX].
@@ -798,7 +982,7 @@ struct nrf_modem_dect_phy_rssi_params {
 	 */
 	uint64_t start_time;
 	/**
-	 * @brief Handle for the operation.
+	 * @brief Handle for the RSSI operation.
 	 *
 	 * An application-defined handle for the operation.
 	 */
@@ -823,251 +1007,64 @@ struct nrf_modem_dect_phy_rssi_params {
 };
 
 /**
- * @brief Radio modes.
- *
- * Different radio modes yield different performance and power consumption.
+ * @brief Link configuration parameters.
  */
-enum nrf_modem_dect_phy_radio_mode {
+struct nrf_modem_dect_phy_link_config_params {
 	/**
-	 * @brief Low latency.
+	 * @brief Primary link.
 	 *
-	 * This mode has the lowest latency, the best RX/TX switching performance,
-	 * and the highest power consumption. This is the only mode that supports
-	 * starting operations immediately, that is, operations whose configured
-	 * start time is zero.
+	 * The modem tracks the frequency of the primary link for Automatic Frequency Control
+	 * purposes. This frequency is propagated down the tree, that is, the Radio Device uses
+	 * this frequency for all its radio operations except those directed to secondary links.
 	 */
-	NRF_MODEM_DECT_PHY_RADIO_MODE_LOW_LATENCY,
+	struct nrf_modem_dect_phy_link_id primary_link_id;
 	/**
-	 * @brief Low latency with standby.
-	 *
-	 * This mode has the same RX/TX switching performance as the low latency mode,
-	 * but higher operation start-up latency due to radio entering standby mode
-	 * when possible. Power consumption is thus lower compared to the low latency mode.
+	 * @brief Number of secondary links.
 	 */
-	NRF_MODEM_DECT_PHY_RADIO_MODE_LOW_LATENCY_WITH_STANDBY,
+	uint8_t secondary_link_count;
 	/**
-	 * @brief Listen-before-talk disabled, with standby.
+	 * @brief Secondary links.
 	 *
-	 * This mode has the lowest power consumption, due the to modem entering
-	 * standby mode when possible and not using Listen-Before-Talk, at the cost
-	 * of higher start-up latency and worse RX/TX switching performance compared
-	 * to the other radio modes.
-	 */
-	NRF_MODEM_DECT_PHY_RADIO_MODE_NON_LBT_WITH_STANDBY,
-	/**
-	 * @brief Number of radio modes available.
+	 * The modem tracks the frequency of secondary links for Automatic Frequency Control
+	 * purposes. When communicating with a secondary link the modem compensates the frequency
+	 * difference between the secondary link and the primary link.
 	 */
-	NRF_MODEM_DECT_PHY_RADIO_MODE_COUNT,
+	struct nrf_modem_dect_phy_link_id secondary_link_ids[];
 };
 
 /**
- * @brief Radio configuration operation.
+ * @brief DECT PHY callbacks.
+ *
+ * Callbacks for user operations and incoming data.
+ *
+ * @note
+ * All callbacks are executed in ISR.
  */
-struct nrf_modem_dect_phy_radio_config_params {
+struct nrf_modem_dect_phy_callbacks {
 	/**
-	 * @brief Operation start time as modem time.
+	 * @brief DECT PHY initialization callback.
 	 *
-	 * If zero, the operation will be executed immediately.
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
-	 * This kind of scheduling can only be done when the modem is idle.
-	 */
-	uint64_t start_time;
-	/**
-	 * @brief Handle for the operation.
+	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_TEMP_HIGH
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_PROD_LOCK
 	 *
-	 * An application-defined handle for the operation.
+	 * @param[in] time Modem time, in modem time units.
+	 * @param temp Temperature in degrees Celsius.
+	 * @param err Operation result.
+	 * @param[in] cfg Modem configuration.
 	 */
-	uint32_t handle;
-	/**
-	 * @brief Desired radio mode.
-	 */
-	enum nrf_modem_dect_phy_radio_mode radio_mode;
-};
+	void (*init)(const uint64_t *time, int16_t temp, enum nrf_modem_dect_phy_err err,
+		     const struct nrf_modem_dect_phy_modem_cfg *cfg);
 
-/**
- * @brief DECT PHY latency information.
- *
- * Includes radio state transition and configuration latencies.
- */
-struct nrf_modem_dect_phy_latency_info {
 	/**
-	 * @brief Radio mode specific latencies.
+	 * @brief Callback to indicate the completion of RX, TX and RSSI measurement operations.
 	 *
-	 * These latencies must be used according to the currently active radio mode
-	 * and operation type (immediate or scheduled).
-	 */
-	struct {
-		/**
-		 * @brief Scheduled operation transition delay.
-		 *
-		 * The delay between transitioning from one scheduled operation to the next.
-		 *
-		 * The start time of a scheduled operation must account for the start time
-		 * of the previous operation, plus its duration, plus the operation
-		 * transition delay in the current radio mode.
-		 */
-		uint32_t scheduled_operation_transition;
-		/**
-		 * @brief Additional delay for scheduled operations.
-		 *
-		 * Used together with the values in @ref operation to calculate the total
-		 * operation start latency for scheduled operations.
-		 */
-		uint32_t scheduled_operation_startup;
-		/**
-		 * @brief Delay in transitioning from one radio mode to another.
-		 */
-		uint32_t radio_mode_transition[NRF_MODEM_DECT_PHY_RADIO_MODE_COUNT];
-	} radio_mode[NRF_MODEM_DECT_PHY_RADIO_MODE_COUNT];
-
-	/**
-	 * @brief Duration of radio state transitions.
-	 *
-	 * Immediate operations can use these values directly.
-	 * Scheduled operations must account for this value plus the value
-	 * of @ref scheduled_operation_startup.
-	 */
-	struct {
-		struct {
-			/**
-			 * @brief Receive operation start latency (IDLE to RF ON).
-			 */
-			uint32_t idle_to_active;
-			/**
-			 * @brief RSSI operation end latency (RF OFF to IDLE).
-			 */
-			uint32_t active_to_idle_rssi;
-			/**
-			 * @brief RX operation end latency (RF OFF to IDLE).
-			 */
-			uint32_t active_to_idle_rx;
-			/**
-			 * @brief RX with RSSI operation end latency (RF OFF to IDLE).
-			 */
-			uint32_t active_to_idle_rx_rssi;
-			/**
-			 * @brief Operation stop latency (STOP_REQ to RF OFF).
-			 */
-			uint32_t stop_to_rf_off;
-		} receive;
-		struct {
-			/**
-			 * @brief Transmit operation start latency (IDLE to RF ON).
-			 */
-			uint32_t idle_to_active;
-			/**
-			 * @brief Transmit operation end latency (RF OFF to IDLE).
-			 */
-			uint32_t active_to_idle;
-		} transmit;
-	} operation;
-
-	/**
-	 * @brief Duration of DECT PHY stack operations.
-	 */
-	struct {
-		/**
-		 * @brief Duration of DECT PHY stack initialization.
-		 *
-		 * Duration of @ref nrf_modem_dect_phy_init().
-		 */
-		uint32_t initialization;
-		/**
-		 * @brief Duration of DECT PHY stack deinitialization.
-		 *
-		 * Duration of @ref nrf_modem_dect_phy_deinit().
-		 */
-		uint32_t deinitialization;
-		/**
-		 * @brief Duration of DECT PHY stack configuration.
-		 *
-		 * Duration of @ref nrf_modem_dect_phy_configure().
-		 */
-		uint32_t configuration;
-		/**
-		 * @brief Duration of DECT PHY stack activation.
-		 *
-		 * Duration of @ref nrf_modem_dect_phy_activate().
-		 */
-		uint32_t activation;
-		/**
-		 * @brief Duration of DECT PHY stack deactivation.
-		 *
-		 * Duration of @ref nrf_modem_dect_phy_deactivate().
-		 */
-		uint32_t deactivation;
-	} stack;
-};
-
-/**
- * @brief Link configuration parameters.
- */
-struct nrf_modem_dect_phy_link_config_params {
-	/**
-	 * @brief Primary link.
-	 *
-	 * The modem tracks the frequency of the primary link for Automatic Frequency Control
-	 * purposes. This frequency is propagated down the tree, that is, the Radio Device uses
-	 * this frequency for all its radio operations except those directed to secondary links.
-	 */
-	struct nrf_modem_dect_phy_link_id primary_link_id;
-	/**
-	 * @brief Number of secondary links.
-	 */
-	uint8_t secondary_link_count;
-	/**
-	 * @brief Secondary links.
-	 *
-	 * The modem tracks the frequency of secondary links for Automatic Frequency Control
-	 * purposes. When communicating with a secondary link the modem compensates the frequency
-	 * difference between the secondary link and the primary link.
-	 */
-	struct nrf_modem_dect_phy_link_id secondary_link_ids[];
-};
-
-/** Events */
-
-/**
- * @brief Initialization event.
- */
-struct nrf_modem_dect_phy_init_event {
-	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
-	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_TEMP_HIGH
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_PROD_LOCK
-	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief Temperature in degrees Celsius.
-	 */
-	int16_t temp;
-	/**
-	 * @brief Voltage in millivolts.
-	 */
-	uint16_t voltage;
-	/**
-	 * @brief Operating temperature limit, in degrees Celsius.
-	 */
-	uint16_t temperature_limit;
-};
-
-/**
- * @brief Operation complete event.
- */
-struct nrf_modem_dect_phy_op_complete_event {
-	/**
-	 * @brief Handle of the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_LBT_CHANNEL_BUSY
@@ -1092,574 +1089,163 @@ struct nrf_modem_dect_phy_op_complete_event {
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_INVALID_DURATION
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_INVALID_PARAMETER
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_TEMP_HIGH
-	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief Temperature in degrees Celsius.
-	 */
-	int16_t temp;
-	/**
-	 * @brief Voltage in millivolts.
-	 */
-	uint16_t voltage;
-};
-
-/**
- * @brief RSSI measurement event.
- */
-struct nrf_modem_dect_phy_rssi_event {
-	/**
-	 * @brief Handle of the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Measurement start time, in modem time units.
-	 */
-	uint64_t meas_start_time;
-	/**
-	 * @brief The absolute channel frequency number on which the measurements were made.
-	 */
-	uint16_t carrier;
-	/**
-	 * @brief Number of measurements in @ref meas.
-	 */
-	uint16_t meas_len;
-	/**
-	 * @brief RSSI measurements, in dBm.
 	 *
-	 * If a symbol is measured, its measurement is in the interval [-140, -1].
-	 * If the measurement is saturated, the measured signal strength is reported
-	 * as a positive integer. If a symbol is not measured, its value is reported
-	 * as @ref NRF_MODEM_DECT_PHY_RSSI_NOT_MEASURED.
+	 * @param[in] time Modem time, in modem time units.
+	 * @param temp Temperature in degrees Celsius.
+	 * @param err Operation result.
+	 * @param handle Operation handle.
 	 */
-	int8_t *meas;
-};
+	void (*op_complete)(const uint64_t *time, int16_t temperature,
+			    enum nrf_modem_dect_phy_err err, uint32_t handle);
 
-struct nrf_modem_dect_phy_cancel_event {
-	/**
-	 * @brief Handle of the operation.
-	 */
-	uint32_t handle;
 	/**
-	 * @brief Operation result.
+	 * @brief Callback to receive RSSI measurements.
 	 *
-	 * Can be one of the following values:
+	 * Callback function to receive the RSSI measurements requested
+	 * with @ref nrf_modem_dect_phy_rssi or @ref nrf_modem_dect_phy_rx.
 	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_UNSUPPORTED_OP
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_FOUND
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
+	 * @param[in] time Modem time, in modem time units.
+	 * @param[in] meas RSSI measurement.
 	 */
-	enum nrf_modem_dect_phy_err err;
-};
+	void (*rssi)(const uint64_t *time, const struct nrf_modem_dect_phy_rssi_meas *meas);
 
-/**
- * @brief PCC reception event.
- */
-struct nrf_modem_dect_phy_pcc_event {
-	/**
-	 * @brief Synchronization Training Field start time.
-	 *
-	 * Start time of the STF of this reception in modem time.
-	 */
-	uint64_t stf_start_time;
-	/**
-	 * @brief Handle for the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Validity of the physical header.
-	 */
-	enum nrf_modem_dect_phy_hdr_status header_status;
-	/**
-	 * @brief Physical layer control field type.
-	 *
-	 * Valid values are 0 and 1 corresponding types 1 and 2, respectively.
-	 *
-	 * See 6.2.1 in @ref DECT-SPEC "DECT-2020 NR Part 4".
-	 */
-	uint8_t phy_type;
 	/**
-	 * @brief PHY header.
-	 */
-	union nrf_modem_dect_phy_hdr hdr;
-	/**
-	 * @brief Received signal strength indicator (RSSI-2).
-	 *
-	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
-	 *
-	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t rssi_2;
-	/**
-	 * @brief Received signal to noise indicator (SNR).
+	 * @brief Callback for @ref nrf_modem_dect_phy_rx_stop.
 	 *
-	 * Values are dB values with 0.25 dB resolution (Q13.2).
-	 *
-	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t snr;
-	/**
-	 * @brief Transaction ID.
-	 *
-	 * Used to map PCC data with corresponding PDC data.
-	 */
-	uint16_t transaction_id;
-};
+	 * When an RX operation is stopped, the operation complete callback will be called
+	 * once the operation has fully stopped. That is, it is possible that the
+	 * operation hasn't been fully stopped at the time this callback is called.
 
-/**
- * @brief PCC reception CRC failure event.
- */
-struct nrf_modem_dect_phy_pcc_crc_failure_event {
-	/**
-	 * @brief Synchronization Training Field start time.
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
-	 * Start time of the STF of this reception in modem time.
-	 */
-	uint64_t stf_start_time;
-	/**
-	 * @brief Handle for the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Received signal strength indicator (RSSI-2).
-	 *
-	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
-	 *
-	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t rssi_2;
-	/**
-	 * @brief Received signal to noise indicator (SNR).
-	 *
-	 * Values are dB values with 0.25 dB resolution (Q13.2).
-	 *
-	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t snr;
-	/**
-	 * @brief Transaction ID.
+	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_UNSUPPORTED_OP
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_NO_ONGOING_OP
+	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
 	 *
-	 * Used to map PCC data with corresponding PDC data.
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
+	 * @param handle Operation handle.
 	 */
-	uint16_t transaction_id;
-};
+	void (*rx_stop)(const uint64_t *time, enum nrf_modem_dect_phy_err err, uint32_t handle);
 
-/**
- * @brief PDC reception event.
- */
-struct nrf_modem_dect_phy_pdc_event {
 	/**
-	 * @brief Handle for the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Received signal strength indicator (RSSI-2).
-	 *
-	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
-	 *
-	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t rssi_2;
-	/**
-	 * @brief Received signal to noise indicator (SNR).
-	 *
-	 * Values are dB values with 0.25 dB resolution (Q13.2).
-	 *
-	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t snr;
-	/**
-	 * @brief Transaction ID.
+	 * @brief Callback for control channel reception.
 	 *
-	 * Used to map PCC data with corresponding PDC data.
-	 */
-	uint16_t transaction_id;
-	/**
-	 * @brief Received data payload.
-	 */
-	void *data;
-	/**
-	 * @brief Data payload length, in bytes.
+	 * @param[in] time Modem time, in modem time units.
+	 * @param status Reception data.
+	 * @param[in] hdr Physical layer control header.
 	 */
-	size_t len;
-};
+	void (*pcc)(const uint64_t *time, const struct nrf_modem_dect_phy_rx_pcc_status *status,
+		    const union nrf_modem_dect_phy_hdr *hdr);
 
-/**
- * @brief PDC CRC failure event.
- */
-struct nrf_modem_dect_phy_pdc_crc_failure_event {
-	/**
-	 * @brief Handle for the operation.
-	 */
-	uint32_t handle;
 	/**
-	 * @brief Received signal strength indicator (RSSI-2).
-	 *
-	 * Values are in dBm with 0.5 dBm resolution (Q14.1).
-	 *
-	 * If this value is not measured, it is reported as
-	 * @ref NRF_MODEM_DECT_PHY_RSSI2_NOT_MEASURED.
+	 * @brief Callback for CRC failures on the physical control channel.
 	 *
-	 * See 8.3 in @ref DECT-SPEC "DECT-2020 NR Part 2".
+	 * @param[in] time Modem time, in modem time units.
+	 * @param[in] crc_failure CRC failure information.
 	 */
-	int16_t rssi_2;
-	/**
-	 * @brief Received signal to noise indicator (SNR).
-	 *
-	 * Values are dB values with 0.25 dB resolution (Q13.2).
-	 *
-	 * If this value is not measured, it is reported as
-	 * @ref NRF_MODEM_DECT_PHY_SNR_NOT_MEASURED.
-	 *
-	 * See 8.4 in @ref DECT-SPEC "DECT-2020 NR Part 2".
-	 */
-	int16_t snr;
-	/**
-	 * @brief Transaction ID.
-	 *
-	 * Used to map PCC data with corresponding PDC data.
-	 */
-	uint16_t transaction_id;
-};
+	void (*pcc_crc_err)(const uint64_t *time,
+			    const struct nrf_modem_dect_phy_rx_pcc_crc_failure *crc_failure);
 
-/**
- * @brief DECT PHY stack configuration event.
- */
-struct nrf_modem_dect_phy_configure_event {
 	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
+	 * @brief Callback for data channel reception.
 	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_INVALID_PARAMETER
+	 * @param[in] time Modem time, in modem time units.
+	 * @param status Reception data.
+	 * @param[in] data Data received.
+	 * @param len Size of received data.
 	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief Temperature in degrees Celsius.
-	 */
-	int16_t temp;
-	/**
-	 * @brief Voltage in millivolts.
-	 */
-	uint16_t voltage;
-};
+	void (*pdc)(const uint64_t *time, const struct nrf_modem_dect_phy_rx_pdc_status *status,
+		    const void *data, uint32_t len);
 
-/**
- * @brief Radio configuration event.
- */
-struct nrf_modem_dect_phy_radio_config_event {
 	/**
-	 * @brief Handle of the operation.
-	 */
-	uint32_t handle;
-	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
+	 * @brief Callback for CRC failures on the physical data channel.
 	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
+	 * @param[in] time Modem time, in modem time units.
+	 * @param[in] crc_failure CRC failure information.
 	 */
-	enum nrf_modem_dect_phy_err err;
-};
+	void (*pdc_crc_err)(const uint64_t *time,
+			    const struct nrf_modem_dect_phy_rx_pdc_crc_failure *crc_failure);
 
-struct nrf_modem_dect_phy_link_config_event {
 	/**
-	 * @brief Operation result.
+	 * @brief Callback for @ref nrf_modem_dect_phy_link_config.
 	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_NO_MEMORY
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_INVALID_PARAMETER
-	 */
-	enum nrf_modem_dect_phy_err err;
-};
-
-/**
- * @brief Time get event.
- */
-struct nrf_modem_dect_phy_time_get_event {
-	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
 	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
 	 */
-	enum nrf_modem_dect_phy_err err;
-};
+	void (*link_config)(const uint64_t *time, enum nrf_modem_dect_phy_err err);
 
-/**
- * @brief Capability get event.
- */
-struct nrf_modem_dect_phy_capability_get_event {
 	/**
-	 * @brief Operation result.
+	 * @brief Callback for @ref nrf_modem_dect_phy_time_get.
 	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief PHY capability.
-	 */
-	struct nrf_modem_dect_phy_capability *capability;
-};
-
-/**
- * @brief Band information event.
- */
-struct nrf_modem_dect_phy_band_get_event {
-	/**
-	 * @brief Operation result.
 	 *
-	 * Can be one of the following values:
-	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief Supported bands as a bitmap.
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
 	 */
-	uint32_t supported_bands;
-	/**
-	 * @brief Number of elements in @c band.
-	 */
-	uint32_t band_count;
-	/**
-	 * @brief Band information.
-	 */
-	struct nrf_modem_dect_phy_band *band;
-};
+	void (*time_get)(const uint64_t *time, enum nrf_modem_dect_phy_err err);
 
-/**
- * @brief STF cover sequence control event.
- */
-struct nrf_modem_dect_phy_stf_control_event {
 	/**
-	 * @brief Operation result.
+	 * @brief Callback for @ref nrf_modem_dect_phy_capability_get.
 	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
-	 */
-	enum nrf_modem_dect_phy_err err;
-};
-
-/**
- * @brief Deinitialization event.
- */
-struct nrf_modem_dect_phy_deinit_event {
-	/**
-	 * @brief Operation result.
 	 *
-	 * Can be one of the following values:
-	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
+	 * @param[in] capability PHY capabilities.
 	 */
-	enum nrf_modem_dect_phy_err err;
-};
+	void (*capability_get)(const uint64_t *time, enum nrf_modem_dect_phy_err err,
+			       const struct nrf_modem_dect_phy_capability *capability);
 
-/**
- * @brief Activation event.
- */
-struct nrf_modem_dect_phy_activate_event {
 	/**
-	 * @brief Operation result.
+	 * @brief Callback for @ref nrf_modem_dect_phy_stf_cover_seq_control.
 	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
-	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief Temperature in degrees Celsius.
-	 */
-	int16_t temp;
-	/**
-	 * @brief Voltage in millivolts.
-	 */
-	uint16_t voltage;
-};
-
-/**
- * @brief Deactivation event.
- */
-struct nrf_modem_dect_phy_deactivate_event {
-	/**
-	 * @brief Operation result.
-	 *
-	 * Can be one of the following values:
 	 *
-	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
-	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
 	 */
-	enum nrf_modem_dect_phy_err err;
-};
+	void (*stf_cover_seq_control)(const uint64_t *time, enum nrf_modem_dect_phy_err err);
 
-/**
- * @brief Latency event.
- */
-struct nrf_modem_dect_phy_latency_info_event {
 	/**
-	 * @brief Operation result.
+	 * @brief Callback for @ref nrf_modem_dect_phy_deinit.
 	 *
-	 * Can be one of the following values:
+	 * The @p err parameter indicates the result of the operation.
+	 * It can be one of the following values:
 	 *
 	 * - @ref NRF_MODEM_DECT_PHY_SUCCESS
 	 * - @ref NRF_MODEM_DECT_PHY_ERR_NOT_ALLOWED
+	 *
+	 * @param[in] time Modem time, in modem time units.
+	 * @param err Operation result.
 	 */
-	enum nrf_modem_dect_phy_err err;
-	/**
-	 * @brief PHY latency info.
-	 */
-	struct nrf_modem_dect_phy_latency_info *latency_info;
-};
-
-enum nrf_modem_dect_phy_event_id {
-	/**
-	 * @brief Event to indicate the completion of the DECT PHY stack initialization.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_INIT,
-	/**
-	 * @brief Event to indicate the completion of the DECT PHY stack deinitialization.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_DEINIT,
-	/**
-	 * @brief Event to indicate the completion of the DECT PHY stack configuration.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_CONFIGURE,
-	/**
-	 * @brief Event to indicate the completion of radio mode configuration.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_RADIO_CONFIG,
-	/**
-	 * @brief Event to indicate the completion of the DECT PHY stack activation.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_ACTIVATE,
-	/**
-	 * @brief Event to indicate the completion of the DECT PHY stack deactivation.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_DEACTIVATE,
-	/**
-	 * @brief Event to indicate the completion of RX, TX and RSSI measurement operations.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_COMPLETED,
-	/**
-	 * @brief Event to indicate the cancellation of an operation.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_CANCELED,
-	/**
-	 * @brief Event carrying RSSI measurements.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_RSSI,
-	/**
-	 * @brief Event for control channel reception.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_PCC,
-	/**
-	 * @brief Event for CRC failures on the physical control channel.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_PCC_ERROR,
-	/**
-	 * @brief Event for data channel reception.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_PDC,
-	/**
-	 * @brief Event for CRC failures on the physical data channel.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_PDC_ERROR,
-	/**
-	 * @brief Event carrying modem time.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_TIME,
-	/**
-	 * @brief Event carrying capabilities.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_CAPABILITY,
-	/**
-	 * @brief Event carrying band information.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_BANDS,
-	/**
-	 * @brief Event carrying latency information.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_LATENCY,
-	/**
-	 * @brief Event to indicate the completion of link configuration.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_LINK_CONFIG,
-	/**
-	 * @brief Event to indicate the completion of STF configuration.
-	 */
-	NRF_MODEM_DECT_PHY_EVT_STF_CONFIG,
+	void (*deinit)(const uint64_t *time, enum nrf_modem_dect_phy_err err);
 };
 
 /**
- * @brief DECT PHY event.
+ * @brief Configuration for DECT PHY interface.
  */
-struct nrf_modem_dect_phy_event {
-	/**
-	 * @brief Event ID.
-	 */
-	enum nrf_modem_dect_phy_event_id id;
-	/**
-	 * @brief Modem time, in modem time units.
-	 */
-	uint64_t time;
-	/**
-	 * @brief Event data.
-	 */
-	union {
-		struct nrf_modem_dect_phy_init_event init;
-		struct nrf_modem_dect_phy_deinit_event deinit;
-		struct nrf_modem_dect_phy_activate_event activate;
-		struct nrf_modem_dect_phy_deactivate_event deactivate;
-		struct nrf_modem_dect_phy_configure_event configure;
-		struct nrf_modem_dect_phy_radio_config_event radio_config;
-		struct nrf_modem_dect_phy_op_complete_event op_complete;
-		struct nrf_modem_dect_phy_rssi_event rssi;
-		struct nrf_modem_dect_phy_cancel_event cancel;
-		struct nrf_modem_dect_phy_pcc_event pcc;
-		struct nrf_modem_dect_phy_pcc_crc_failure_event pcc_crc_err;
-		struct nrf_modem_dect_phy_pdc_event pdc;
-		struct nrf_modem_dect_phy_pdc_crc_failure_event pdc_crc_err;
-		struct nrf_modem_dect_phy_time_get_event time_get;
-		struct nrf_modem_dect_phy_capability_get_event capability_get;
-		struct nrf_modem_dect_phy_band_get_event band_get;
-		struct nrf_modem_dect_phy_latency_info_event latency_get;
-		struct nrf_modem_dect_phy_stf_control_event stf_cover_seq_control;
-		struct nrf_modem_dect_phy_link_config_event link_config;
-	};
-};
-
-/**
- * @brief DECT PHY configuration parameters.
- */
-struct nrf_modem_dect_phy_config_params {
-	/**
-	 * @brief Band group index.
-	 *
-	 * Allowed values: 0 or 1.
-	 * Value 0 refers to RF frequencies operating near 2GHz and
-	 * value 1 to RF frequencies near 1 GHz.
-	 */
-	uint8_t band_group_index;
-	/**
-	 * @brief Number of HARQ processes.
-	 *
-	 * The HARQ reception buffer is divided equally between processes.
-	 * Supported values: 1, 2, 4, 8.
-	 */
-	uint8_t harq_rx_process_count;
+struct nrf_modem_dect_phy_init_params {
 	/**
 	 * @brief HARQ RX buffer expiry time, in microseconds.
 	 *
@@ -1669,119 +1255,113 @@ struct nrf_modem_dect_phy_config_params {
 	 * Maximum supported value: 5000000.
 	 */
 	uint32_t harq_rx_expiry_time_us;
+	struct {
+		/**
+		 * @brief Number of HARQ processes.
+		 *
+		 * The HARQ reception buffer is divided equally between processes.
+		 * Supported values: 1, 2, 4, 8.
+		 */
+		uint8_t harq_rx_process_count : 4;
+		/**
+		 * @brief Reserved for future use.
+		 */
+		uint8_t reserved : 3;
+		/**
+		 * @brief Band 4 support.
+		 *
+		 * 1 - Enables band 4 operation.
+		 * 0 - Disables band 4 operation.
+		 *
+		 * Band 4 support is only available for nRF9151 devices.
+		 *
+		 * @warning
+		 * When operating on band 4, carriers outside the [525, 551] range
+		 * shall not be used as they interfere with other radio devices,
+		 * including LTE devices, car keys, and others.
+		 *
+		 * @note
+		 * Band 4 support may only be toggled when de-initialized.
+		 * Toggling band 4 support when already initialized is not supported.
+		 */
+		uint8_t band4_support : 1;
+	};
 };
 
 /**
- * @brief Application handler prototype for PHY events.
- */
-typedef void (*nrf_modem_dect_phy_event_handler_t)(const struct nrf_modem_dect_phy_event *event);
-
-/**
- * @brief Set the application event handler for PHY events.
+ * @brief Set application callbacks for PHY operations.
  *
- * The application must set the handler for events coming the DECT PHY before attempting
- * other operations.
+ * The application must set the callbacks for PHY operations before attempting other operations.
+ * That includes PHY initialization itself, that is, nrf_modem_dect_phy_init().
  *
- * @param handler Event handler.
+ * @param cb Application callbacks.
  *
  * @return 0 On success.
- * @retval -NRF_EFAULT @p handler is @c NULL.
+ * @retval -NRF_EFAULT @p cb is @c NULL.
+ * @retval -NRF_EINVAL One of the fields in @p cb is @c NULL.
  */
-int nrf_modem_dect_phy_event_handler_set(nrf_modem_dect_phy_event_handler_t handler);
+int nrf_modem_dect_phy_callback_set(const struct nrf_modem_dect_phy_callbacks *cb);
 
 /**
  * @brief Retrieve DECT PHY capabilities.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_CAPABILITY event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.capability_get callback.
  *
  * @return 0 On success.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
+ * @retval -NRF_EFAULT Callback configuration is invalid.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_capability_get(void);
 
 /**
- * @brief Initialize the DECT PHY interface.
+ * @brief Initialize DECT PHY interface.
  *
- * Initialize the DECT PHY interface and associated hardware resources.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.init callback.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_INIT event.
+ * @param[in] params  Configuration parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
-int nrf_modem_dect_phy_init(void);
+int nrf_modem_dect_phy_init(const struct nrf_modem_dect_phy_init_params *params);
 
 /**
- * @brief Deinitialize the DECT PHY interface.
+ * @brief De-initialize DECT PHY interface.
  *
- * Deinitialize the DECT PHY interface and all associated hardware resources.
- * This implicitly cancels all operations, both executing or scheduled for execution.
+ * Cancel all operations and de-initialize the PHY.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_DEINIT event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.deinit callback.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
+ * @retval -NRF_EFAULT Callback configuration is invalid.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_deinit(void);
 
-/**
- * @brief Activate the DECT PHY software stack in given radio mode.
- *
- * Before each activation, the DECT PHY software stack must be configured using
- * @ref nrf_modem_dect_phy_configure.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_ACTIVATE event.
- *
- * @param mode Desired radio mode.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_activate(enum nrf_modem_dect_phy_radio_mode mode);
-
-/**
- * @brief Deactivate the DECT PHY software stack.
- *
- * Deactivation implicitly cancels all operations, both executing or scheduled for execution.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_DEACTIVATE event.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_deactivate(void);
-
 /**
  * @brief Schedule a reception.
  *
- * Schedule a reception with given parameters.
+ * Schedule a continuous, semicontinuous or single shot reception at a given time, with parameters.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event.
+ * Incoming data received on the physical layer control and data channels is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.pcc and @ref nrf_modem_dect_phy_callbacks.pdc callbacks.
  *
- * Data received on the physical layer control and data channels is sent to the application
- * in the @ref NRF_MODEM_DECT_PHY_EVT_PCC and @ref NRF_MODEM_DECT_PHY_EVT_PDC events respectively.
+ * When the operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.
  *
  * @param[in] params  Operation parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_rx(const struct nrf_modem_dect_phy_rx_params *params);
@@ -1791,14 +1371,15 @@ int nrf_modem_dect_phy_rx(const struct nrf_modem_dect_phy_rx_params *params);
  *
  * Schedule a data transmission with given parameters.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event.
+ * When the operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.
  *
  * @param[in] params  Operation parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_tx(const struct nrf_modem_dect_phy_tx_params *params);
@@ -1818,14 +1399,15 @@ int nrf_modem_dect_phy_tx(const struct nrf_modem_dect_phy_tx_params *params);
  * received. In that case modem will inject ACK or NACK feedback into the Transmission feedback
  * field based on the PDC reception result once the reception is complete.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event.
+ * When the operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.
  *
  * @param[in] params  Operation parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_tx_harq(const struct nrf_modem_dect_phy_tx_params *params);
@@ -1840,14 +1422,19 @@ int nrf_modem_dect_phy_tx_harq(const struct nrf_modem_dect_phy_tx_params *params
  * The RX operation scheduling is relative to the end of the TX operation and must include
  * the guard time.
  *
- * These operations are performed asynchronously.
- * Completion of each of operation is indicated by one @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event.
+ * When the TX operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.tx.
+ *
+ * When the RX operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.rx.
  *
  * @param[in] params  Operation parameters.
  *
  * @retval 0           Request was sent to the modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_tx_rx(const struct nrf_modem_dect_phy_tx_rx_params *params);
@@ -1856,135 +1443,69 @@ int nrf_modem_dect_phy_tx_rx(const struct nrf_modem_dect_phy_tx_rx_params *param
  * @brief Schedule an RSSI measurement operation.
  *
  * Schedule an RSSI measurement operation with given parameters.
+ * The measurements are sent to the @ref nrf_modem_dect_phy_callbacks.rssi callback.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event.
- * The measurements are sent in the @ref NRF_MODEM_DECT_PHY_EVT_RSSI event.
+ * When the operation has completed, either successfully or unsuccessfully, the result is sent
+ * to the @ref nrf_modem_dect_phy_callbacks.op_complete callback, with a `handle`
+ * parameter equal to the `handle` specified in @p params.
  *
  * @param[in] params  Operation parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_rssi(const struct nrf_modem_dect_phy_rssi_params *params);
 
 /**
- * @brief Cancel an operation.
- *
- * Cancel an ongoing operation or an operation scheduled to be executed.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_CANCELED event.
- *
- * When an operation is canceled, a @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event is sent to the
- * application. If the operation is canceled while it is executing, the event reports that the
- * operation completed successfully. If the operation was scheduled but not yet executing, the
- * @ref NRF_MODEM_DECT_PHY_EVT_COMPLETED event will indicate the status as
- * @ref NRF_MODEM_DECT_PHY_ERR_OP_CANCELED.
- *
- * @param handle  Handle of the operation to be canceled,
- *		  or @ref NRF_MODEM_DECT_PHY_HANDLE_CANCEL_ALL to cancel all operations.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_cancel(uint32_t handle);
-
-/**
- * @brief Configure the PHY stack.
+ * @brief Stop an ongoing reception.
  *
- * This operation can only be performed when the DECT PHY is deactivated.
+ * Stop an ongoing reception before its duration has ended; this can take more or less
+ * time depending on the internal state of the operation at the time the request is received.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_CONFIGURE event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.rx_stop callback.
  *
- * @param[in] params PHY configuration parameters.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_configure(const struct nrf_modem_dect_phy_config_params *params);
-
-/**
- * @brief Configure radio mode.
- *
- * Configure the radio for the desired operation latency, RX/TX performance and power consumption.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_RADIO_CONFIG event.
+ * @note
+ * Only RX operations can be stopped.
  *
- * @param[in] params Radio mode configuration parameters.
+ * @param handle  Handle of the operation to be stopped.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
-int nrf_modem_dect_phy_radio_config(const struct nrf_modem_dect_phy_radio_config_params *params);
+int nrf_modem_dect_phy_rx_stop(uint32_t handle);
 
 /**
  * @brief Configure links.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_LINK_CONFIG event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.link_config callback.
  *
  * @param[in] params Link configuration parameters.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set, or @p params is @c NULL.
+ * @retval -NRF_EFAULT Callback configuration is invalid, or @p params is @c NULL.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  * @retval -NRF_ENOSYS Functionality not implemented.
  */
 int nrf_modem_dect_phy_link_config(const struct nrf_modem_dect_phy_link_config_params *params);
 
 /**
- * @brief Retrieve band information.
- *
- * This operation can only be performed when the DECT PHY is deactivated.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_BANDS event.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_band_get(void);
-
-/**
- * @brief Retrieve latency information.
- *
- * This operation can only be performed when the DECT PHY is deactivated.
- *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_LATENCY event.
- *
- * @retval 0           Request was sent to modem.
- * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
- * @retval -NRF_ENOMEM Not enough shared memory for this request.
- */
-int nrf_modem_dect_phy_latency_get(void);
-
-/**
- * @brief Retrieve modem time.
+ * @brief Query modem time.
  *
  * Retrieve modem time, in modem time units.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_TIME event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.time_get callback.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
+ * @retval -NRF_EFAULT Callback configuration is invalid.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_time_get(void);
@@ -1993,21 +1514,20 @@ int nrf_modem_dect_phy_time_get(void);
  * @brief STF cover sequence control.
  *
  * Enable or disable STF cover sequence.
- * The default, applied at each initialization, is enabled.
  *
  * @note
  * This API is intended for certification purposes only.
  * It should not be used for normal operation.
  *
- * This operation is performed asynchronously.
- * Completion of this operation is indicated by the @ref NRF_MODEM_DECT_PHY_EVT_STF_CONFIG event.
+ * This operation is asynchronous. The result of the operation is sent to the
+ * @ref nrf_modem_dect_phy_callbacks.stf_cover_seq_control callback.
  *
  * @param rx_enable Enable STF cover sequence for reception.
  * @param tx_enable Enable STF cover sequence for transmission.
  *
  * @retval 0           Request was sent to modem.
  * @retval -NRF_EPERM  The Modem library is not initialized.
- * @retval -NRF_EFAULT No event handler is set.
+ * @retval -NRF_EFAULT Callback configuration is invalid.
  * @retval -NRF_ENOMEM Not enough shared memory for this request.
  */
 int nrf_modem_dect_phy_stf_cover_seq_control(bool rx_enable, bool tx_enable);
