# Power management states

UFS and SD cards offer multiple power states to optimize power consumption.

##  UFS power management states 

Developers can alter these states as per requirement. However, it is to be noted that altering of the states may also lead to power consumption variation.

| State | Description |
| --- | --- |
| Auto-Hibernate | Auto-hibern8 (AH8) automatically transitions the phy link into Hibernate state after 150 ms of idle time. This value is tunable.<br><br><br>To check AH8 idle duration value (in micro sec), run the following ssh command on the host machine:<br><br><br>cat /sys/devices/platform/soc@0/1d84000.ufs/auto_hibern8<br>    Copy to clipboard<br><br><br>**Note**: This value can be decreased to reduce power consumption. |
| Clock gating | When UFS clocks are scaled up to maximum frequency due to the use case, clocks are gated after 50 ms of idle duration.<br><br><br>If clocks are scaled down to optimal frequency, clocks are gated after 10 ms of idle duration. To check clock gating enabled/disabled status, run the following ssh command on the host machine:<br><br><br>cat /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br>    Copy to clipboard<br><br><br>Clock gating is enabled by default.<br><br><br>To debug UFS issues related to clock gate/ungate, clock gating can be disabled using the following ssh command on the host machine:<br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br>    Copy to clipboard |
| Clock scaling | Once the UFS load exceeds the upthreshold value, the clock frequency is set to the maximum frequency with clock scale up.<br><br><br>Clock scale down happens once the load is below the threshold. UFS load is determined by the historical UFS operations. To check clock scaling status, run the following ssh command on the host machine:<br><br><br>cat /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br>    Copy to clipboard<br><br><br>Clock scaling is enabled by default.<br><br><br>Disable clock scaling can result in increased power consumption. To debug any issue related to clock scaling, it can be disabled using the following ssh command on the host machine:<br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br>    Copy to clipboard |
| Runtime suspend/resume | UFS enters the runtime suspend state after 3 seconds of inactivity. Resume can happen with the next UFS operation. This is enabled always and not configurable. |
| System suspend/resume | UFS enters system suspend with the suspend event. UFS resume happens with the system resume event. This is enabled always and not configurable. |

##  SD card power management states 

| State | Description |
| --- | --- |
| Runtime suspend/resume | The SD card enters the runtime suspend state after 50 milliseconds of inactivity. Resume can happend with the next SD card operation. This is enabled always and not configurable. |
| System suspend/resume | The SD card enters system suspend with the suspend event. SD card resume happens with the system resume event. This is enabled always and not configurable. |

Last Published: Oct 02, 2024

[Previous Topic
Kernel configuration](https://docs.qualcomm.com/bundle/publicresource/80-70015-6/topics/ufs-kernel-configuration.md) [Next Topic
Bootloader/UEFI device tree](https://docs.qualcomm.com/bundle/publicresource/80-70015-6/topics/bootloader-uefi-device-tree.md)