# PMIC

The power management integrated circuit (PMIC) is a specialized
electronic component that manages various power supply requirements within a device.

The PMIC oversees various power supply requirements, including:

- Battery management tasks such as charging and gauging.
- User interface components such as flash, display, and RGB color
space.
- System-on-chip (SoC) infrastructure elements such as clocks,
analog-to-digital converters (ADC), and power-on (PON) functions.

Some PMIC resources can customize in XBL through the XB\_CFG image.
Configuring the PMIC XBL DT properties ensure optimal performance and
integration. You can perform these customizations using a DT framework.

The PMIC DTSI files for the Linux host PC are at `boot_images/boot/Settings/Soc/<Chipset>/Core/PMIC/pm.dtsi, access.dtsi`

The table lists the PMIC DT properties:

| Property name | Property description | Data type | Possible values/value range | Device behavior |
| --- | --- | --- | --- | --- |
| <br>`s2-kpdpwr` | Enable: PMIC power key pin reset configuration. | Boolean | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | The power key is configured to reset or shut down the device when it is asserted for a specific duration specified in `s1-ms` and `s2-ms` properties.<br><br><br>Property to allow the DT setting to take effect. If PM\_FALSE, the default hardware settings are programmed. |
| <br>`s2-kpdpwr` | `reset-type`: Select the reset type. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_WARM_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_HARD_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_SHUTDOWN</span></code></p></li><br></ul> | <ul class="simple"><br><li><p>WARM_RESET is used for crash dump collection.</p></li><br><li><p>HARD_RESET is used for rebooting the device.</p></li><br><li><p>SHUTDOWN is used for shutting down the device</p></li><br></ul> |
| <br>`s2-kpdpwr` | `s1-ms`: Assertion time (to be chosen from the possible values). | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>32</p></li><br><li><p>56</p></li><br><li><p>80</p></li><br><li><p>128</p></li><br><li><p>184</p></li><br><li><p>272</p></li><br><li><p>408</p></li><br><li><p>608</p></li><br><li><p>904</p></li><br><li><p>1352</p></li><br><li><p>2048</p></li><br><li><p>3072</p></li><br><li><p>4480</p></li><br><li><p>6720</p></li><br><li><p>10256</p></li><br></ul> | `KPDPWR_N_RESET_S1_TIMER` in ms. |
| <br>`s2-kpdpwr` | `s2-ms`: Assertion time (to be chosen from the possible values). | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>10</p></li><br><li><p>50</p></li><br><li><p>100</p></li><br><li><p>250</p></li><br><li><p>500</p></li><br><li><p>1000</p></li><br><li><p>2000</p></li><br></ul> | `KPDPWR_N_RESET_S2_TIMER` in ms. |
| <br>`s2-kpdpwr-resin` | Enable: Configuration to update the PMIC power and Resin key combination. | Boolean | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | Both power and Resin key combinations for the duration specified in the `s1-ms` and `s2-ms` properties. .<br><br><br>The property allows the DT setting to take effect. If `PM_FALSE`, the hardware default settings are programmed. |
| <br>`s2-kpdpwr-resin` | `reset-type`: Select the reset type. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_WARM_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_HARD_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_SHUTDOWN</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">WARM_RESET</span></code> is used for crash dump collection.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">HARD_RESET</span></code> is used for rebooting the device.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">SHUTDOWN</span></code> is used for shutting down the device</p></li><br></ul> |
| <br>`s2-kpdpwr-resin` | `s1-ms`: Assertion time value must choose from possible values. | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>32</p></li><br><li><p>56</p></li><br><li><p>80</p></li><br><li><p>128</p></li><br><li><p>184</p></li><br><li><p>272</p></li><br><li><p>408</p></li><br><li><p>608</p></li><br><li><p>904</p></li><br><li><p>1352</p></li><br><li><p>2048</p></li><br><li><p>3072</p></li><br><li><p>4480</p></li><br><li><p>6720</p></li><br><li><p>10256</p></li><br></ul> | `RESIN_AND_KPDPWR_RESET_S1_TIMER` in ms |
| <br>`s2-kpdpwr-resin` | `s2-ms`: Assertion time value must choose from possible values. | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>10</p></li><br><li><p>50</p></li><br><li><p>100</p></li><br><li><p>250</p></li><br><li><p>500</p></li><br><li><p>1000</p></li><br><li><p>2000</p></li><br></ul> | `RESIN_AND_KPDPWR_RESET_S2_TIMER` in ms |
| <br>`s2-resin` | Enable: PMIC Resin key pin used as volume down key. | Boolean | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | The resin key can be configured to reset or shut down the device when it is asserted for the duration specified in the `s1-ms` and `s2-ms`.<br><br><br>The property allows the DT setting to take effect. If the value is `PM_FALSE`, the hardware default settings are programmed. |
| <br>`s2-resin` | `reset-type`: Select the reset type. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_WARM_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_HARD_RESET</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_SHUTDOWN</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">WARM_RESET</span></code> is used for crash dump collection.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">HARD_RESET</span></code> is used for rebooting the device.</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">SHUTDOWN</span></code> is used for shutting down the device.</p></li><br></ul> |
| <br>`s2-resin` | `s1-ms`: Assertion time value must choose from possible values. | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>32</p></li><br><li><p>56</p></li><br><li><p>80</p></li><br><li><p>128</p></li><br><li><p>184</p></li><br><li><p>272</p></li><br><li><p>408</p></li><br><li><p>608</p></li><br><li><p>904</p></li><br><li><p>1352</p></li><br><li><p>2048</p></li><br><li><p>3072</p></li><br><li><p>4480</p></li><br><li><p>6720</p></li><br><li><p>10256</p></li><br></ul> | `RESIN_N_RESET_S1_TIMER` in ms |
| <br>`s2-resin` | `s2-ms`: Assertion time value must choose from possible values. | UINT32 | <ul class="simple"><br><li><p>0</p></li><br><li><p>10</p></li><br><li><p>50</p></li><br><li><p>100</p></li><br><li><p>250</p></li><br><li><p>500</p></li><br><li><p>1000</p></li><br><li><p>2000</p></li><br></ul> | `RESIN_N_RESET_S2_TIMER` in ms |
| <br>`s3-reset` | Enable: Configure the S3 reset. | Boolean | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <ul class="simple"><br><li><p>If the device is stuck and cannot be restored with S2 reset, S3 reset does a fail-safe reset or factory reset.</p></li><br><li><p>S3 reset is triggered when the key is asserted for the duration specified in the timer value-ms.</p></li><br><li><p>The property allows the DT setting to take effect. If the value is <code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code>, the default hardware settings are programmed.</p></li><br></ul> |
| <br>`s3-reset` | `s3-src`: Select the reset source. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_PON_RESET_SOURCE_KPDPWR</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_PON_RESET_SOURCE_RESIN</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_PON_RESET_SOURCE_RESIN_AND_KPDPWR</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_PON_RESET_SOURCE_RESIN_OR_KPDPWR</span></code></p></li><br></ul> | S3 reset source can be the power key or the Resin key, or a combination of both. |
| <br>`s3-reset` | `timervalue-ms`: Assertion time value must choose from possible values. | UINT32 | <ul class="simple"><br><li><p>0 (Immediate)</p></li><br><li><p>8</p></li><br><li><p>16</p></li><br><li><p>32</p></li><br><li><p>63</p></li><br><li><p>125</p></li><br><li><p>240</p></li><br><li><p>500</p></li><br><li><p>1000</p></li><br><li><p>2000</p></li><br><li><p>4000</p></li><br><li><p>8000</p></li><br><li><p>16000</p></li><br><li><p>32000</p></li><br><li><p>64000</p></li><br><li><p>128000</p></li><br></ul> | `RESET_S3_TIMER_n` in ms |
| <br>uvlo-config | `PMIC_INDEX`: Configure the under voltage lockout threshold of various PMICs. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_A</span> <span class="pre">(PMK7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_B</span> <span class="pre">(PM7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_C</span> <span class="pre">(PM7350C)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_D</span> <span class="pre">(PM7325B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_E</span> <span class="pre">(PMR735A)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_I</span> <span class="pre">(PM7250B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_K</span> <span class="pre">(PMG1110)</span></code></p></li><br></ul> | When the input voltage of PMIC reaches the under voltage lockout (UVLO) threshold, the device shuts down abruptly. For each PMIC present in the Qualcomm reference device, configure the UVLO threshold.<br>The `pmic_index` is used to select the PMIC for which the threshold should be changed. |
| <br>uvlo-config | `uvlo_thresh` | UINT32 | mV | UVLO threshold in millivolts |
| <br>uvlo-config | `uvlo_hyst` | UINT32 | mV | UVLO hysteresis in millivolts |
| <br>uvlo-config | `uvlo_enable` | Boolean | `PM_ENABLE`<br><br><br>`PM_DISABLE` | The property allows the DT setting to take into effect. If `PM_ DISABLE`, the hardware default settings are programmed. |
| <br>ovlo-config | `PMIC_INDEX`: Configure the over voltage lockout threshold of various PMICs. | `PMIC_INDEX` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_A</span> <span class="pre">(PMK7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_B</span> <span class="pre">(PM7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_C</span> <span class="pre">(PM7350C)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_D</span> <span class="pre">(PM7325B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_E</span> <span class="pre">(PMR735A)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_I</span> <span class="pre">(PM7250B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_K</span> <span class="pre">(PMG1110)</span></code></p></li><br></ul> | When the input voltage of PMIC reaches the over voltage lockout (OVLO) threshold, the device shuts down abruptly. For each PMIC present in the Qualcomm reference device, configure the OVLO threshold.<br>The `pmic_index` is used to select the PMIC for which the threshold has to be changed. |
| <br>ovlo-config | `ovlo_thresh` | – | mV | OVLO threshold in millivolts |
| <br>ovlo-config | `ovlo_hyst` | – | mV | OVLO hysteresis in millivolts |
| <br>ovlo-config | `ovlo_enable` | – | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_</span> <span class="pre">ENABLE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_</span> <span class="pre">DISABLE</span></code></p></li><br></ul> | The property allows the DT setting to take into effect. If `PM_ DISABLE`, the hardware default settings are programmed. |
| <br>Long-pwrkey-dbnc-chk | `dbnc-time-ms`: The power key debounces time to check for a valid keypress to boot up the device. | UINT32 | msec | If the power key is not pressed for the configured `dbnc-time-ms` duration, the device shuts down in XBL or UEFI based on the config `chk-at` during boot up. |
| <br>Long-pwrkey-dbnc-chk | `chk-at`: Check for keypress at the XBL or UEFI stage. | UINT8 | 0, 1, 2 | <ul class="simple"><br><li><p>0 = Do not check</p></li><br><li><p>1 = Check-in XBL Loader stage</p></li><br><li><p>2 = Check-in XBL core (UEFI)</p></li><br></ul> |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | Verbose: Select PON log level. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_EVENT_LOG_LEVEL_MIN</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_EVENT_LOG_LEVEL_VERBOSE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_EVENT_LOG_LEVEL_RAWDATA</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_EVENT_LOG_LEVEL_MAX</span></code></p></li><br></ul> | PON log indicates the various reasons for device power-on, OFF, and faults.<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Minimal version of PON logs printed in UART logs</p></li><br>> <li><p>Verbose PON logs printed in UART logs</p></li><br>> <li><p>Verbose PON logs along with raw SDAM register data printed in UART logs</p></li><br>> </ul> |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_ENABLE`: Enable the LDO. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_VOLT`: Set LDO for the voltage. | UINT32 | mV | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_MODE`: Set the LDO mode. | UINT32 | <ul class="simple"><br><li><p>0: Low power</p></li><br><li><p>1: Bypass</p></li><br><li><p>3: Normal power mode</p></li><br><li><p>4: Retention mode</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_PD_CTR`: Set the pull down on the LDO. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_PIN_CTRL`: Enable pin control for the LDO. | UINT32 | <ul class="simple"><br><li><p>0: HWEN0</p></li><br><li><p>1: HWEN1</p></li><br><li><p>2: HWEN2</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_OCP_BROADCAST`: Enable LDO OCP broadcast so that the device can shut down during OCP. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_AHC`: Enable LDO automatic head room control. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_LDO_SET_ULS`: Set the upper limit for the LDO voltage. | UINT32 | mV | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_AHC_HR`: Configure the SMPS AHC reserved head room. | UINT32 | <ul class="simple"><br><li><p>0x0: 0mV</p></li><br><li><p>0x1: 8mV</p></li><br><li><p>0x1: 8mV</p></li><br><li><p>0x1: 8mV</p></li><br><li><p>0x1: 8mV</p></li><br><li><p>0x2: 16mV</p></li><br><li><p>0x3: 24mV</p></li><br><li><p>0x4: 32mV (DEFAULT)</p></li><br><li><p>0x5: 40mV</p></li><br><li><p>0x6: 48mV</p></li><br><li><p>0x7: 56mV</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_ENABLE`: Enable the SMPS. | UINT32 | <ul class="simple"><br><li><p>PM_TRUE</p></li><br><li><p>PM_FALSE</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_VOLT`: Set the SMPS for the voltage. | UINT32 | mV | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_MODE`: Set the SMPS mode. | UINT32 | <ul class="simple"><br><li><p>0: Low power</p></li><br><li><p>2: Auto mode</p></li><br><li><p>3: Normal power mode</p></li><br><li><p>4: Retention mode</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_PD_CTRL`: Set the pull down on the SMPS. | UINT32 | <ul class="simple"><br><li><p>PM_TRUE</p></li><br><li><p>PM_FALSE</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_PIN_CTRL`: Enable Pin control for the SMPS. | UINT32 | <ul class="simple"><br><li><p>0: HWEN0</p></li><br><li><p>1: HWEN1</p></li><br><li><p>2: HWEN2</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_OCP_BROADCAST`: Enable SMPS OCP broadcast so that the device can shut down during OCP. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `T PM_SMPS_SET_AHC`: Enable SMPS automatic head room control. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SMPS_SET_ULS`: Set the upper limit to the SMPS voltage. | UINT32 | mV | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_ENABLE`: Enable GPIO. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_CFG_MODE`: Configure GPIO mode. | UINT32 | <ul class="simple"><br><li><p>0:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_DIG_IN</span></code></p></li><br><li><p>1:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_DIG_OUT</span></code></p></li><br><li><p>2:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_DIG_IN_OUT</span></code></p></li><br><li><p>3:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_ANA_PASS_THRU</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_OUTPUT_LVL`: Set the GPIO output level. | UINT32 | <ul class="simple"><br><li><p>0: Level of pin is low</p></li><br><li><p>1: Level of pin is high</p></li><br><li><p>2 - Level of pin is Hi-Z</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_VOLT_SRC`: Select GPIO voltage source as 1.8V or 3.6V. | UINT32 | <ul class="simple"><br><li><p>0:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_VIN0</span></code></p></li><br><li><p>1:<code class="docutils literal notranslate"><span class="pre">PM_GPIO_VIN1</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_OUT_BUFF_CONFIG`: Select GPIO output buffer configuration. | UINT32 | <ul class="simple"><br><li><p>0: CMOS output.</p></li><br><li><p>1:Open drain NMOS output</p></li><br><li><p>2: Open drain PMOS output</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_OUT_SRC_CFG`: Select GPIO output source configuration. | UINT32 | <ul class="simple"><br><li><p>0: Ground</p></li><br><li><p>1: Paired GPIO</p></li><br><li><p>2: Special function 1</p></li><br><li><p>3: Special function 2</p></li><br><li><p>4: Special function 3</p></li><br><li><p>5: Special function 4</p></li><br><li><p>6: D-test 1</p></li><br><li><p>7: D-test 2</p></li><br><li><p>8: D-test 3</p></li><br><li><p>9:L D-test 4</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_OUT_DRV_STR`: Select GPIO pin drive strength. | UINT32 | <ul class="simple"><br><li><p>0: Output buffer strength low.</p></li><br><li><p>1: Output buffer strength medium.</p></li><br><li><p>2: Output buffer strength high.</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_GPIO_SET_PULL_SEL`: Select GPIO pull settings. | UINT32 | <ul class="simple"><br><li><p>0:30µA constant pulls up</p></li><br><li><p>1:31.5µA constant pulls up</p></li><br><li><p>3:1.5µA constant pulls up combined with 30µA boost</p></li><br><li><p>4:10µA constant pull down</p></li><br><li><p>5: No pull</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SET_DELAY`: Add delay between any 2 API calls. | UINT32 | Delay in µS. | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_CLK_ENABLE`: Enable the clocks such as ln\_bb\_clk, rf\_clk. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_CLK_DRV_STR`: Select the drive strength of the clock. | UINT32 | 0-63 | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_SPMI_CLK_DATA_CFG`: Select the SPMI drive strength. | UINT32 | <ul class="simple"><br><li><p>0x0: LOW10PF</p></li><br><li><p>0x1: MID20PF</p></li><br><li><p>0x2: HIGH40PF</p></li><br><li><p>0x3: VERYHIGH50PF</p></li><br></ul> | <br>Configures the LDOs. See [SMPS/LDO/CLK sample code](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#section-m4y-zkw-51c) |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PM_BUSID`: Select SPMI bus. | UINT32 | `PM_BUSID_0` | Must be PM\_BUSID\_0 |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PMIC_Index`: Select the PMIC. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_A</span> <span class="pre">(PMK7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_B</span> <span class="pre">(PM7325)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_C</span> <span class="pre">(PM7350C)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_D</span> <span class="pre">(PM7325B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_E</span> <span class="pre">(PMR735A)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_I</span> <span class="pre">(PM7250B)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PMIC_K</span> <span class="pre">(PMG1110)</span></code></p></li><br></ul> | See `/boot_images/boot/Settings/ Include/pm_defines.h` |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | `PMIC_Peripheral`: Select the LDO, SMPS, clock, GPIO number. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_LDO_x</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_SMPS_x</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_CLK_x</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_GPIO_x</span></code></p></li><br></ul> | See<br><br><br>`/boot_images/boot/Settings/Include/ pm_defines.h` and `/boot_images/boot/QcomPkg/`.<br><br><br>Include `/api/pmic/pm/pm_gpio.h` (for GPIO enums). |
| <br>sw-config<br><br><br>To modify PMIC software configuration during boot up time for various LDOs, SMPSs, Clocks, GPIOs | API parameter argument. | UINT32 | `PM_TRUE`, `PM_FALSE`<br><br><br>OR<br><br><br>`Integer`<br><br><br>OR<br><br><br>`Enum` | See `/boot_images/boot/Settings/Include/ pm_defines.h`<br><br><br>`/boot_images/boot/QcomPkg/`<br><br><br>Include `/api/pmic/pm/pm_gpio.h` (for GPIO enums) |
| <br>Access (access.dtsi)<br><br><br>To modify/enable the write access to PMIC peripheral for different subsystems such as AOP, APSS, UEFI, TZ, MSS BUSID: Select SPMI bus | `UINT32` | <ul class="simple"><br><li><p>PM_BUSID_0</p></li><br><li><p>PM_BUSID_1</p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_BUSID_0</span></code>– For SPMI0 bus secondary devices</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_BUSID_1</span></code>– For SPMI1 bus secondary devices</p></li><br></ul> | – |
| <br>Access (access.dtsi)<br><br><br>To modify/enable the write access to PMIC peripheral for different subsystems such as AOP, APSS, UEFI, TZ, MSS BUSID: Select SPMI bus | `SecondaryID`: Select the secondary ID. | UINT32 | <ul class="simple"><br><li><p>0: <code class="docutils literal notranslate"><span class="pre">PMIC_A</span> <span class="pre">(PMK7325)</span></code></p></li><br><li><p>1: <code class="docutils literal notranslate"><span class="pre">PMIC_B</span> <span class="pre">(PM7325)</span></code></p></li><br><li><p>2: <code class="docutils literal notranslate"><span class="pre">PMIC_C</span> <span class="pre">(PM7350C)</span></code></p></li><br><li><p>3: <code class="docutils literal notranslate"><span class="pre">PMIC_D</span> <span class="pre">(PM7325B)</span></code></p></li><br><li><p>4: <code class="docutils literal notranslate"><span class="pre">PMIC_E</span> <span class="pre">(PMR735A)</span></code></p></li><br><li><p>8: <code class="docutils literal notranslate"><span class="pre">PMIC_I</span> <span class="pre">(PM7250B)</span></code></p></li><br><li><p>9: <code class="docutils literal notranslate"><span class="pre">PMIC_I</span> <span class="pre">(PM7250B)</span></code></p></li><br></ul> | – |
| <br>Access (access.dtsi)<br><br><br>To modify/enable the write access to PMIC peripheral for different subsystems such as AOP, APSS, UEFI, TZ, MSS BUSID: Select SPMI bus | `PERIPH (PPID)`: Select the peripheral within PMIC. | UINT32 | PMIC Peripheral Register base<br><br><br>0x1 to 0xFF | PMIC peripheral register base.<br><br><br>Example:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>For PM7325, GPIO_01 PPID is 0x88</p></li><br>> <li><p>For PMK7325, PON_PBS PPID is 0x08</p></li><br>> </ul> |
| <br>Access (access.dtsi)<br><br><br>To modify/enable the write access to PMIC peripheral for different subsystems such as AOP, APSS, UEFI, TZ, MSS BUSID: Select SPMI bus | `OPERATION`: Add or remove the channel with permission. | UINT32 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">APPEND</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">REMOVE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">APPEND_WITH_IRQ</span></code></p></li><br></ul> | <ul class="simple"><br><li><p>APPEND: A channel is added for the PMIC peripheral with the defined DRV having the write permission. The default channel setting is retained.</p></li><br><li><p>REMOVE: The channel is removed for the PMIC peripheral with the defined DRV.</p></li><br><li><p>APPEND_WITH_IRQ: A channel is added for the PMIC peripheral with the defined DRV, which overrides the default IRQ owner DRV. In this case, the write access DRV is retained from the default setting.</p></li><br></ul><br><br><br>> <br>> <br>> Note<br>> <br>> <br>> There can only be one IRQ DRV owner, while multiple write-access DRVs are allowed. |
| <br>Charger | pmic-index-charger: Select the charger PMIC index. | UINT32 | `PMIC_D` or `PMIC_I` | Index of the primary charger PMIC |
| <br>Charger | `Dead-battery-threshold`: Set the dead battery threshold. | UINT32 | 2800 -3300 | dBc threshold in millivolts. XBL allows you to boot to UEFI post the event. |
| <br>Charger | `ichg-fs-cfg-enable`: Increase the charge current range up to 20A. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | Flag to check if the full scale charging current setting should be applied. |
| <br>Charger | `ichg-fs-cfg-value` | UINT32 | <ul class="simple"><br><li><p>0: 10A</p></li><br><li><p>1: 20A</p></li><br></ul> | Supported full-scale charging current - 0: 10A; 1: 20A. |
| <br>Charger | `pm-chg-batt-cfg-enable`: Select the battery type as 1 S or 2 S. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | Flag to check if the 1S or 2S battery configuration should be applied. |
| <br>Charger | `pm-chg-batt-cfg-is_1s_battery` | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | To indicate if a 1S or 2S battery is present. |
| <br>Charger | `dbg-board-id-cfg-min-id-ohms`: Minimum `batt_id` in ohms for debug board detection. | UINT32 | 2000 | <br>Battery less platform with debug board, the `batt_id` should be within this min and max range to skip the battery charging. |
| <br>Charger | `dbg-board-id-cfg-max-id-ohms`: Maximum `batt_id` in ohms for debug board detection. | UINT32 | 14000 | <br>Battery less platform with debug board, the `batt_id` should be within this min and max range to skip the battery charging. |
| <br>Charger | `afp-cfg-too-hot-threshold`: Set the AFP threshold temperature for a hot temperature. | UINT32 | Temperature in degree C | If the battery temperature crosses any of the AFP thresholds, the device shuts down automatically.<br><br><br>Example: 75 C |
| <br>Charger | `afp-cfg-too-hot-enable`: Enable/Disable AFP for hot temperature threshold config. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | Enable/Disable AFP when the hot temperature threshold is reached.<br><br><br>For `PM_FALSE`, the hardware default settings are programmed. |
| <br>Charger | `afp-cfg-too-cold-threshold`: AFP threshold temp for cold temperatures. | UINT32 | Temperature in degree C | Example: -20 C |
| <br>Charger | `afp-cfg-too-cold-enable`: Enable/Disable AFP for cold temperature threshold config | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | <ul class="simple"><br><li><p>Enable/Disable AFP when the cold temperature threshold is reached.</p></li><br><li><p>For <a href="https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#id1"><span class="problematic" id="id2">``</span></a>PM_FALSE``value, the hardware default settings are programmed.</p></li><br></ul> |
| <br>Charger | `no-batt-cfg-enable`: Enable the battery-less configuration. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_TRUE` value, the device boots up automatically if the battery is not detected. |
| <br>Charger | `no-batt-cfg-boot-without-batt`: Continue to boot when the battery is not detected. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For [``](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html#id3)PM\_FALSE``value, the device shuts down automatically if the battery is not detected. |
| <br>Charger | `no-batt-cfg-icl-value_ma`: Set the input current limit for a battery-less platform. | UINT32 | 0-5000 | Input current limit value in mA |
| <br>Charger | `float-voltage-cfg-enable`: Configure the maximum battery voltage. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed. |
| <br>Charger | `float-voltage-cfg-value-mv` | UINT8 | 0-4500 | Maximu battery voltage for charging |
| <br>Charger | `pre-charging-current-cfg-enable`: Configure the precharge current. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed. |
| <br>Charger | `pre-charging-current-cfg-value-ma` | UINT32 | 0-600 | Precharge current in mA when battery voltage is &lt; Vsys\_min<br><br><br>Ex: 3V |
| <br>Charger | `fast-charging-current-enable`: Configure the fast-charge current. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed. |
| <br>Charger | `fast-charging-current-value-ma` | UINT32 | 0-10000 | – |
| <br>Charger | `usbin-input-current-enable`: Configure the USB input current limit. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed. |
| <br>Charger | `usbin-input-current-value-ma` | UINT32 | 0-5000 | USB input current configuration |
| <br>Charger | `dam-cable-chg-enable`: Enable charging for DAM cable. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed.<br><br><br>By default, the hardware disables the DAM cable charging. |
| <br>Charger | `dam-cable-aicl-enable`: Enable AICL for DAM cable. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | For `PM_FALSE` value, the hardware default settings are programmed.<br><br><br>By default, the hardware disables the DAM cable AICL. |
| <br>Charger | Secondary-charger-present: Indicate the Qualcomm secondary charger presence. | UINT8 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_TRUE</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">PM_FALSE</span></code></p></li><br></ul> | Secondary charger settings |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |

## SMPS/LDO/CLK sample code

driver-post-init = <
          // PM_SMPS_SET_AHC_HR        PM_BUSID_0   PMIC_C  PM_SMPS_1    0x57
          // PM_SMPS_SET_ULS           PM_BUSID_0   PMIC_F  PM_SMPS_6    1375000          /*The Voltage is in microVolts*/
          // PM_LDO_SET_ULS            PM_BUSID_0   PMIC_F  PM_SMPS_6    1375000          /*The Voltage is in microVolts*/
          // PM_CLK_ENABLE             PM_BUSID_0   PMIC_A  PM_CLK_RF_1  PM_TRUE
          // PM_SMPS_SET_VOLT          PM_BUSID_0   PMIC_B  PM_SMPS_1    1200
          // PM_SMPS_SET_AHC           PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_FALSE
          // PM_LDO_SET_AHC            PM_BUSID_0   PMIC_B  PM_LDO_1     PM_FALSE
          // PM_LDO_SET_VOLT           PM_BUSID_0   PMIC_B  PM_LDO_1     1200
          // PM_LDO_SET_MODE           PM_BUSID_0   PMIC_B  PM_LDO_1     PM_SW_MODE_NPM
          // PM_SMPS_SET_MODE          PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_SW_MODE_NPM
          // PM_SMPS_SET_PD_CTRL       PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_TRUE
          // PM_SMPS_SET_PIN_CTRL      PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_TRUE
          // PM_SMPS_SET_OCP_BROADCAST PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_TRUE
          // PM_LDO_SET_PD_CTRL        PM_BUSID_0   PMIC_B  PM_LDO_1     PM_TRUE
          // PM_LDO_SET_PIN_CTRL       PM_BUSID_0   PMIC_B  PM_LDO_1     PM_TRUE
          // PM_LDO_SET_OCP_BROADCAST  PM_BUSID_0   PMIC_B  PM_LDO_1     PM_TRUE
          // PM_CLK_DRV_STR            PM_BUSID_0   PMIC_A  PM_CLK_RF_1  3
          // PM_SMPS_SET_ENABLE        PM_BUSID_0   PMIC_B  PM_SMPS_1    PM_TRUE
          // PM_LDO_SET_ENABLE         PM_BUSID_0   PMIC_B  PM_LDO_1     PM_TRUE
          // PM_SPMI_CLK_DATA_CFG      PM_BUSID_0   PMIC_A  0x2          0x2              /*BUS_ID, PMIC_ID, CLK buff Config, DATA buff Config*/
          PM_DELAY(10)
          > ;
    Copy to clipboard

Last Published: Apr 30, 2025

[Previous Topic
Boot device tree](https://docs.qualcomm.com/bundle/publicresource/80-70018-4/topics/boot-developer-touchpoints.md) [Next Topic
TLMM](https://docs.qualcomm.com/bundle/publicresource/80-70018-4/topics/tlmm-developer-touchpoints.md)

Source: [https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html](https://docs.qualcomm.com/doc/80-70018-4/topic/pmic-developer-touchpoints.html)