<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nPM2100 - break-to-wake</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127456/npm2100---break-to-wake</link><description>Hello everyone, 
 We are currently working on a project that uses the nPM2100 to power an nRF52840. Our application requires automatic enabling break-to-wake mode each time the SHPHLD pin is shorted (power switch based on the state of the SHPHLD pin)</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 25 Mar 2026 10:31:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127456/npm2100---break-to-wake" /><item><title>RE: nPM2100 - break-to-wake</title><link>https://devzone.nordicsemi.com/thread/564018?ContentTypeID=1</link><pubDate>Wed, 25 Mar 2026 10:31:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b699b3d9-869a-47c0-bad1-6d786990007a</guid><dc:creator>pdrzycimski_apo</dc:creator><description>&lt;div&gt;
&lt;div&gt;
&lt;div class="flex max-w-full flex-col gap-4 grow"&gt;
&lt;div dir="auto" data-message-author-role="assistant" data-message-id="48c9b01b-fd9a-4406-b09b-63bd9174f6a4" data-message-model-slug="gpt-5-4-thinking" data-turn-start-message="true"&gt;
&lt;div class="flex w-full flex-col gap-1 empty:hidden"&gt;
&lt;div class="markdown prose dark:prose-invert w-full wrap-break-word light markdown-new-styling"&gt;
&lt;p data-start="0" data-end="6"&gt;Hello,&lt;/p&gt;
&lt;p data-start="8" data-end="182"&gt;I can confirm that with this configuration in the DT file, it works the same way. At the moment, apart from this configuration, I only use the command to switch to ship mode.&lt;/p&gt;
&lt;p data-start="184" data-end="224"&gt;Thank you once again for your replies :)&lt;/p&gt;
&lt;p data-start="226" data-end="247" data-is-last-node="" data-is-only-node=""&gt;Best regards,&lt;br data-start="239" data-end="242" /&gt; Paweł&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nPM2100 - break-to-wake</title><link>https://devzone.nordicsemi.com/thread/563666?ContentTypeID=1</link><pubDate>Thu, 19 Mar 2026 11:59:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0c159a5c-d22b-47f6-9d31-329291071d24</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user=""]s it possible to configure break-to-wake mode using only the devicetree? [/quote]
&lt;p&gt;&lt;span&gt;Not fully, no, the application is still responsible for detecting the falling edge of the SHPHLD pin.&lt;br /&gt;For the Devicetree configuration, the recommendation is to:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt; shiphold-flags = &amp;lt;(GPIO_ACTIVE_HIGH | GPIO_PULL_UP)&amp;gt;;
    shiphold-longpress = &amp;quot;disable&amp;quot;;
    shiphold-current = &amp;quot;weak&amp;quot;;&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPIO_ACTIVE_HIGH&lt;/code&gt; instructs the PMIC to wake up on rising edge (when the short b/w SHPHLD and GND is removed)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPIO_PULL_UP&lt;/code&gt; keeps the SHPHLD pin pulled up during the active state, so that the app can detect the falling edge on shortening&lt;/li&gt;
&lt;li&gt;&lt;code&gt;shiphold-longpress = &amp;quot;disable&amp;quot;;&lt;/code&gt; disables the &amp;quot;power off&amp;quot; functionality of the SHPHLD pin&lt;/li&gt;
&lt;li&gt;&lt;code&gt;shiphold-current = &amp;quot;weak&amp;quot;;&lt;/code&gt; can be adjusted according to the&amp;nbsp; needs with &amp;quot;weak&amp;quot; meaning the lowest possible quiescent current during ship mode&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;As for the application, the best way would be to set up an interrupt on SHPHLD falling edge with a handler to enter ship mode (if there is a PMIC GPIO to spare) using the MFD driver. Otherwise the current SHPHLD state is available in the &lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/_tmp/npm2100/autodita/MAIN/STATUS.html"&gt;MAIN.STATUS&amp;nbsp;register&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Kind Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Abhijith&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nPM2100 - break-to-wake</title><link>https://devzone.nordicsemi.com/thread/563607?ContentTypeID=1</link><pubDate>Wed, 18 Mar 2026 16:07:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:289c4b65-f48a-482b-ae9e-5d171cd18379</guid><dc:creator>pdrzycimski_apo</dc:creator><description>&lt;p data-start="0" data-end="130"&gt;Thank you for your reply. I had read that section of the documentation, but I was hoping there would be some configuration option.&lt;/p&gt;
&lt;p data-start="132" data-end="251"&gt;Today I worked on enabling this mode manually, and I managed to do it by writing the following values to the registers:&lt;/p&gt;
&lt;p data-start="253" data-end="305"&gt;SHPHLD -&amp;gt; 0x15&lt;br data-start="267" data-end="270" /&gt; WAKEUP -&amp;gt; 0x01&lt;br data-start="284" data-end="287" /&gt; TASKS_SHIP -&amp;gt; 0x01&lt;/p&gt;
&lt;p data-start="307" data-end="625"&gt;According to the documentation, I should have set SHPHLD to the option &amp;ldquo;No resistor&amp;rdquo; | &amp;ldquo;Low pull-up current&amp;rdquo;, but unfortunately that did not allow the PMIC to wake up. The &amp;ldquo;Weak pull-up enabled&amp;rdquo; option helped.&lt;/p&gt;
&lt;p data-start="307" data-end="625"&gt;dtsi:&lt;/p&gt;
&lt;p data-start="307" data-end="625"&gt;&lt;pre class="ui-code" data-mode="text"&gt;npm2100_pmic: pmic@74 {
        compatible = &amp;quot;nordic,npm2100&amp;quot;;
        reg = &amp;lt;0x74&amp;gt;;

        shiphold-longpress = &amp;quot;disable&amp;quot;;

        //shiphold-flags = &amp;lt;5&amp;gt;;
        //shiphold-current = &amp;quot;low&amp;quot;;
        //shiphold-hibernate-wakeup;

        npm2100_gpio: gpio-controller {
            compatible = &amp;quot;nordic,npm2100-gpio&amp;quot;;
            gpio-controller;
            #gpio-cells = &amp;lt;2&amp;gt;;
            ngpios = &amp;lt;2&amp;gt;;
        };

        npm2100_regulators: regulators {
            compatible = &amp;quot;nordic,npm2100-regulator&amp;quot;;

            npm2100_boost: BOOST {
                regulator-always-on;
                regulator-min-microvolt = &amp;lt;1800000&amp;gt;;
                regulator-max-microvolt = &amp;lt;3300000&amp;gt;;


                regulator-init-microvolt = &amp;lt;1800000&amp;gt;;
                regulator-init-microamp = &amp;lt;300000&amp;gt;;
                
                
            };


            npm2100_ldosw: LDOSW {
                regulator-min-microvolt = &amp;lt;800000&amp;gt;;
                regulator-max-microvolt = &amp;lt;3000000&amp;gt;;
 
                
                
                
                regulator-initial-mode = &amp;lt;(NPM2100_REG_OPER_AUTO | NPM2100_REG_LDSW_EN)&amp;gt;;
                mode-gpios = &amp;lt;&amp;amp;npm2100_gpio 0 (GPIO_ACTIVE_HIGH  | GPIO_PULL_DOWN | NPM2100_GPIO_DEBOUNCE_OFF)&amp;gt;;
            };

        };

        npm2100_wdt: watchdog {
            compatible = &amp;quot;nordic,npm2100-wdt&amp;quot;;
        };

        npm2100_vbat: vbat {
            compatible = &amp;quot;nordic,npm2100-vbat&amp;quot;;
        };
   };&lt;/pre&gt;&lt;/p&gt;
&lt;p data-start="307" data-end="625"&gt;I have not checked the current consumption in this configuration yet, but functionally it works as expected.&lt;/p&gt;
&lt;p data-start="627" data-end="676" data-is-last-node="" data-is-only-node=""&gt;Best Regards,&lt;/p&gt;
&lt;p data-start="627" data-end="676" data-is-last-node="" data-is-only-node=""&gt;Paweł&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nPM2100 - break-to-wake</title><link>https://devzone.nordicsemi.com/thread/563498?ContentTypeID=1</link><pubDate>Tue, 17 Mar 2026 18:10:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33ca46fc-a4d9-4cbb-b801-1998226c627b</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I’m not 100% sure, but I think break-to-wake cannot be configured using only the devicetree. The DT options like &lt;code&gt;shiphold-flags&lt;/code&gt; and &lt;code&gt;shiphold-current&lt;/code&gt; seem to configure the default SHPHLD behavior (such as pull-up and polarity), but they do not actually switch the PMIC into that mode. See&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/_tmp/npm2100/autodita/SHIP/SHPHLD.html" rel="noopener noreferrer" target="_blank"&gt;SHPHLD register&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/_tmp/npm2100/autodita/SHIP/WAKEUP.html" rel="noopener noreferrer" target="_blank"&gt;WAKEUP register&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Entering break-to-wake requires a runtime step, where the firmware ensures that SHPHLD is in the correct state and then writes to &lt;code&gt;TASKS_SHIP&lt;/code&gt; over I2C. Based on this, your approach seems correct, you would need to handle this in firmware, for example by reacting to the SHPHLD pin or your switch logic and then triggering Ship mode manually.&amp;nbsp; See&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ps_npm2100/page/chapters/core_components/ship/doc/frontpage.html"&gt;Ship and break to wake mode&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>