# Modify UFS device power management states

To optimize power management, modify the UFS device power management states as required. However, altering the states can cause changes in power consumption.

Note

For more information about how to run SSH, see the [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/how_to.html) section.

UFS device power management states

| State | Description |
| --- | --- |
| Auto-hibern8 (AH8) | <ul><br><li><p>AH8 automatically transitions the PHY link to the Hibernate state after 150 ms of idle time. This value is adjustable.</p></li><br><li><p>To determine the AH8 idle duration value (in microseconds), run the following SSH command on the host computer.</p><br><div class="nohighlight docutils container"><br><div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>cat /sys/devices/platform/soc@0/1d84000.ufs/auto_hibern8<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></div><br></li><br><li><p>This value can be decreased to reduce power consumption.</p></li><br></ul> |
| Clock gating | <ul><br><li><p>When UFS device clocks are scaled up to maximum frequency due to the use case, clocks are gated after 50 ms of idle duration.</p></li><br><li><p>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 computer.</p><br><div class="nohighlight docutils container"><br><div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>cat /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></div><br></li><br><li><p>Clock gating is enabled by default.</p></li><br><li><p>To debug UFS device issues related to clock gate or ungate and to disable the clock gating, run the following SSH command on the host computer.</p><br><blockquote><br><div><div class="nohighlight docutils container"><br><div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>echo 0 &gt; /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></div><br></div></blockquote><br></li><br></ul> |
| Clock scaling | <ul><br><li><p>After the UFS device load exceeds the upthreshold value, the clock frequency is set to the maximum frequency with clock scale up.</p></li><br><li><p>Clock scale-down occurs when the load is lower than the threshold. The UFS device operations determines its load. To check the clock scaling status, run the following SSH command on the host computer.</p><br><blockquote><br><div><div class="nohighlight docutils container"><br><div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>cat /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></div><br></div></blockquote><br></li><br><li><p>Clock scaling is enabled by default.</p></li><br><li><p>Disabling clock scaling can result in increased power consumption. To debug any issue related to clock scaling, run the following SSH command on the host computer.</p><br><div class="nohighlight docutils container"><br><div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>echo 0 &gt; /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></div><br></li><br></ul> |
| Runtime suspend or resume | <ul class="simple"><br><li><p>UFS device enters the runtime suspend state after 3 seconds of inactivity.</p></li><br><li><p>Runtime resume state occurs with the next UFS device operation. This state is enabled by default and is not configurable.</p></li><br></ul> |
| System suspend or resume | <ul class="simple"><br><li><p>UFS device enters the system suspend with the suspend event.</p></li><br><li><p>UFS device resume state occurs with the system resume event.</p></li><br><li><p>This state is enabled by default and is not configurable.</p></li><br></ul> |

# Modify SD card power management states

Update the headline to SDHC to unify the table for both SD cards and eMMC.

SD card power management states

| State | Description |
| --- | --- |
| Runtime suspend or resume | <ul class="simple"><br><li><p>The SD card enters the runtime suspend state after 50 ms of inactivity.</p></li><br><li><p>Resume occurs with the next SD card operation. This state is enabled by default and is not configurable.</p></li><br><li><p>The eMMC transitions to the runtime suspend state after 50 milliseconds of inactivity. It resumes with the next I/O operation. This feature is always enabled and cannot be configured.</p></li><br></ul> |
| System suspend or resume | <ul class="simple"><br><li><p>The SD card enters system suspend state with the suspend event.</p></li><br><li><p>SD card system resume state occurs with the system resume event.</p></li><br><li><p>This state is enabled by default and is not configurable.</p></li><br><li><p>The eMMC enters system suspend mode upon receiving a suspend event and resumes operation with a system resume event. This functionality is always enabled and cannot be configured.</p></li><br></ul> |

Last Published: Jun 27, 2025

[Previous Topic
Enable SDHCI using kernel configuration](https://docs.qualcomm.com/bundle/publicresource/80-70020-6/topics/ufs-kernel-configuration.md) [Next Topic
Configure device using UFS parameters](https://docs.qualcomm.com/bundle/publicresource/80-70020-6/topics/bootloader-uefi-device-tree.md)