nRF54LM20A DK – Sleep current rises to 270 µA after USB VBUS removal when CONFIG_BT=y is set (NCS v3.2.1)

Board: nRF54LM20A DK NCS version: v3.2.1 Sample base:  nrf/samples/zephyr/subsys/usb/cdc_acm


Background

I am evaluating power consumption on the nRF54LM20A DK before integrating both USB (CDC ACM) and Bluetooth LE into a production product. I noticed an unexpected increase in sleep current when CONFIG_BT=y is added, even though the Bluetooth stack is never initialized or used in the application code.


Test Setup

I started from the standard cdc_acm sample, modified main() as shown below, and added the following to prj.conf:

CONFIG_PM_DEVICE=y 
CONFIG_PM_DEVICE_RUNTIME=y

main.c (simplified):

int main(void) { 
    int ret; 
    if (!device_is_ready(uart_dev)) { 
        LOG_ERR("CDC ACM device not ready"); 
        return 0; 
    } 
    ret = enable_usb_device_next(); 
    if (ret != 0) { 
        LOG_ERR("Failed to enable USB device support"); 
        return 0; 
    } return 0; 
}

All other code and configuration are identical to the stock sample.


Measurement Procedure

  1. Flash firmware, then measure current before inserting USB — result: ~4 µA White check mark
  2. Insert USB VBUS, then remove it — result: current rises to ~270 µA X
  3. Only a full reboot restores the current to ~4 µA

Reproducing the Problem

When I add only the following line to prj.conf (keeping everything else the same), the issue appears:

CONFIG_BT=y

Without CONFIG_BT=y, the current correctly returns to ~4 µA after VBUS is removed.

The Bluetooth stack is never initialized (no bt_enable() call) and no BLE functionality is used in the test code.


Questions

  1. Is this a known interaction between the USB device stack and the Bluetooth subsystem on the nRF54LM20A when CONFIG_BT=y is set, even without the stack being actively used?
  2. Does enabling CONFIG_BT=y implicitly activate peripherals or clocks that are not released properly after USB VBUS removal?
  3. Is there a recommended way to cleanly handle VBUS removal and ensure all relevant peripherals (including those pulled in by CONFIG_BT=y) return to their low-power state without a full reboot?

Any guidance or pointers to relevant documentation or samples would be greatly appreciated. Thank you.

Related