diff --git a/libraries/base/dp/dp.peripheral.yaml b/libraries/base/dp/dp.peripheral.yaml
index db3198d2eec9d7fdc76a174b2830905abb5dd1b2..d5c525b5dbf92d87bbaa4480bf373711d4fbf4e2 100644
--- a/libraries/base/dp/dp.peripheral.yaml
+++ b/libraries/base/dp/dp.peripheral.yaml
@@ -18,7 +18,6 @@ peripherals:
               field_description: "Number of words that can be read from the FIFO."
               access_mode: RO
               address_offset: 0x0
-      
       # MM port for mms_dp_fifo_to_mm.vhd / dp_fifo_to_mm.vhd
       - slave_name: REG_DPMM_DATA   # Use REG_, instead of preferred FIFO_, to match slave_port_name in pi_dpmm.py
         slave_type: FIFO
@@ -29,6 +28,7 @@ peripherals:
               access_mode: RO
               address_offset: 0x0
         
+
   - peripheral_name: mmdp    # pi_mmdp.py
     peripheral_description: "MM to DP FIFO to provide memory mapped MM write access to Data Path (DP) streaming interface."
     slave_ports:                            
@@ -46,7 +46,6 @@ peripherals:
               field_description: "Number of words that can be written to the write FIFO."
               access_mode: RO
               address_offset: 0x4
-      
       # MM port for mms_dp_fifo_from_mm.vhd / dp_fifo_from_mm.vhd
       - slave_name: REG_MMDP_DATA   # Use REG_, instead of preferred FIFO_, to match slave_port_name in pi_mmdp.py
         slave_type: FIFO
@@ -56,7 +55,30 @@ peripherals:
               field_description: "Write data to the FIFO."
               access_mode: WO
               address_offset: 0x0
-              
+
+
+  - peripheral_name: dp_xonoff    # pi_dp_xonoff.py
+    peripheral_description: "Enable or disable a data path (DP) stream."
+    parameters:
+      # Parameters of mms_dp_xonoff.vhd
+      - { name: g_nof_streams, value: 1 }
+      - { name: g_combine_streams, value: False }
+    slave_ports:
+      # MM port for mms_dp_xonoff.vhd
+      - slave_name: REG_DP_XONOFF
+        slave_type: REG
+        slave_description: "When g_combine_streams = False then there is one enable bit per stream, else there is one enable bit for all streams."
+        fields:
+          - - field_name: enable_stream
+              field_description: |
+                "When enable_stream = 0 the data stream is stopped, else when 1 then the data stream is passed on.
+                 Toggling the data stream on or off happens at block or packet boundaries."
+              width: 1
+              access_mode: RW
+              address_offset: 0x0
+              number_of_fields: 1 #g_nof_streams #sel_a_b(g_combine_streams, 1, g_nof_streams)
+
+
   - peripheral_name: dp_shiftram    # pi_dp_shiftram.py
     peripheral_description: "Sample delay buffer with programmable delay for streaming data."
     parameters:
@@ -77,6 +99,7 @@ peripherals:
               access_mode: RW
               address_offset: 0x0
 
+
   - peripheral_name: dp_bsn_source    # pi_dp_bsn_source.py
     peripheral_description: "Block Sequence Number (BSN) source for timestamping blocks of data samples."
     parameters:
@@ -120,6 +143,7 @@ peripherals:
               address_offset: 0x8
               radix_width: 64
 
+
   - peripheral_name: dp_bsn_source_v2    # pi_dp_bsn_source_v2.py
     peripheral_description: "Block Sequence Number (BSN) source with block time offset, for timestamping blocks of data samples."
     parameters:
@@ -169,6 +193,7 @@ peripherals:
               width: g_bsn_time_offset_w
               access_mode: RW
               address_offset: 0x10
+
               
   - peripheral_name: dp_bsn_scheduler    # pi_dp_bsn_scheduler.py
     peripheral_description: "Schedule a trigger at a certain Block Sequence Number (BSN) instant."
@@ -191,6 +216,7 @@ peripherals:
               access_mode: RW
               address_offset: 0x0
               radix_width: 64
+
               
   - peripheral_name: dp_bsn_monitor    # pi_dp_bsn_monitor.py
     peripheral_description: "Monitor the Block Sequence Number (BSN) status of streaming data."
@@ -219,7 +245,7 @@ peripherals:
           - - field_name: sync_timeout
               field_description: "Data stream sync did not occur during last sync interval."
               width: 1
-              bit_offset: 2      # EK TODO: using 1 cause gen_doc.py to fail without clear error, because fields then overlap
+              bit_offset: 2      # EK TODO: 2 is correct, but using 1 cause gen_doc.py to fail without clear error, because fields then overlap
               access_mode: RO
               address_offset: 0x0
           #- - field_name: bsn_at_sync_lo
@@ -265,6 +291,7 @@ peripherals:
               access_mode: RO
               address_offset: 0x20
 
+
   - peripheral_name: dp_bsn_monitor_v2    # pi_dp_bsn_monitor_v2.py
     peripheral_description: "Monitor the Block Sequence Number (BSN) status and latency of streaming data."
     parameters:
@@ -325,6 +352,7 @@ peripherals:
               access_mode: RO
               address_offset: 0x20
 
+
   - peripheral_name: dp_selector    # pi_dp_selector.py
     peripheral_description: "Select between two data streams or between two arrays of data streams."
     slave_ports: