I’ve been looking for a solution to get the dragonboard to operate from a suspend state in order to support a battery powered application. I’ve read through the posts related to previous power measurements and found some discussions of suspend software limitations. My current observations involve removing the R108 resistor and installing wire leads to a Tek DMM. I’m only interested in the power consumption of the core SoC and memory and not the other peripherals so this measurement point seems to give a pretty good approximation of this (minus any I/O current to the peripherals). I’ve tried both the latest Linaro Debian 17.06 (https://builds.96boards.org/releases/dragonboard410c/linaro/debian/17.06/) and Android 16.06 (https://builds.96boards.org/releases/dragonboard410c/qualcomm/android/16.06/) builds and looked at idle states and suspend states. Alas, the results have been fairly disappointing. The measurements reflect the ‘idle’ state of the image where only the default services are running. Load averages show nearly nothing running so the CPU’s should spending most time in the WFI state. For both tests the GPS and wifi chip are disabled.
Linaro Debian 17.06 - idle 155mA, suspend to ram not supported, freeze - 130mA, . It appears that suspend state is still not supported in the debian kernel image and that freeze doesn’t really shut much off other than the main CPU’s.
Qualcomm Android 16.06 - idle 105mA, suspend 90mA, freeze not tested. The idle state reflects holding the the adb wakelock (with a usb cable) to prevent the system from entering suspend. When this is removed the kernel log reports that it is entering suspend mode after some idle period as expected under android. However the sleep current is an order of magnitude higher than what I previously measured for an MSM8960 design. I have to conclude that the SoC is not really sleeping and that the DRAM is still active.
I’m just wondering if my measurements line up with what is expected since it seems like really poor performance and rules out any battery operation. Do either the latest CAF or AOSP version’s do a better job of suspend under android? Does anyone know what is missing to do a real suspend?