<?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>Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118576/device-powermanagement-and-nrf-uarte</link><description>Hi! 
 I want to integrate power management into our FW. Therefor I did enable it in the prj.conf: 
 
 
 And added runtime enable and action run calls regarding this device during bootup phase: 
 
 To test the pm of the UART, I created a timer which, when</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Feb 2025 15:58:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118576/device-powermanagement-and-nrf-uarte" /><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521605?ContentTypeID=1</link><pubDate>Wed, 05 Feb 2025 15:58:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5642458f-c857-4b1a-9272-6de0c5b2f49a</guid><dc:creator>C.Thilo</dc:creator><description>&lt;p&gt;Problem found!&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;		err = uart_rx_disable(uart);
		__ASSERT(err == 0, &amp;quot;Failed to disable uart rx&amp;quot;);

		err = pm_device_action_run(uart, PM_DEVICE_ACTION_SUSPEND);
		__ASSERT(err == 0, &amp;quot;Failed to suspend uart device&amp;quot;);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I need to wait, until the RX_DISABLED Interrupt occurred before I suspend the uart.&amp;nbsp;&lt;br /&gt;A simple k_sleep between uart_rx_disable and pm_device_action_run (.... SUSPEND) worked, as an quick test.&lt;/p&gt;
&lt;p&gt;The better way would be, that the uart callback will report an event that the rx is disabled of course.&lt;br /&gt;&lt;br /&gt;This ticket is done, from my point of view.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Thilo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521375?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2025 16:11:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:49affca3-6cb1-4979-a72d-513675e075c4</guid><dc:creator>C.Thilo</dc:creator><description>&lt;p&gt;Hi&lt;br /&gt;&lt;br /&gt;Sorry, that I missed to tell the SDK Version.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The test project is currently build with NRF SDK 2.7.0.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote userid="106736" url="~/f/nordic-q-a/118576/device-powermanagement-and-nrf-uarte/521351"]I do not think I follow completely here. Is the Assert something you get when trying to finx the first issue, or?[/quote]
&lt;p&gt;Before I send the uart into sleep, I disabled the rx in the while loop.&lt;br /&gt;Therefor I tried to enable the rx after resume. Thats the while loop, which doesn&amp;#39;t know that the RX_STOPPED Interruppt occured. So the assert is not the problem but might show the problem.&lt;br /&gt;As the returned -EBUSY tells me, the the uart_rx was still enabled, altough I disabled it before sleep.&lt;/p&gt;
&lt;p&gt;To reproduce the Error, just use the Test Project and open a UART to the uart0. Type in some keys I think three keys is enough, and the error occurs on my side.&lt;br /&gt;&lt;br /&gt;&amp;lt;EDIT&amp;gt;&lt;br /&gt;I even tested it now, with a nrf5340dk. The RTT Output looks very similar. Just the UART 0 Pins changed in the dts.&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;uart0_default {
	/* Disconnect CTS and RTS lines from pins.
	 * This is a temporary workaround for increased current consumption
	 * observed on nRF5340 DKs only (~200 uA more on v0.9.0 and ~400 uA
	 * more on v2.0.0).
	 */
	group1 {
		psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_RTS)&amp;gt;;
	};
	group2 {
		psels = &amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_CTS)&amp;gt;;
		bias-pull-up;
	};


};

&amp;amp;uart0_sleep {
	group1 {
		psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
			&amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_RTS)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_CTS)&amp;gt;;
		low-power-enable;
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;and the RTT Output:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.386,413] &amp;lt;inf&amp;gt; app: buf request: 0x20003800
[00:00:10.072,540] &amp;lt;inf&amp;gt; app: Rx Rdy, buf: 0x2000380c
[00:00:10.072,692] &amp;lt;inf&amp;gt; app: Tx done
[00:00:16.526,184] &amp;lt;wrn&amp;gt; app: Rx stopped: reason: 1
[00:00:16.526,733] &amp;lt;inf&amp;gt; app: buf release: 0x2000380c
[00:00:16.526,763] &amp;lt;inf&amp;gt; app: buf release: 0x20003800
[00:00:16.526,763] &amp;lt;wrn&amp;gt; app: Rx disabled
[00:00:16.526,794] &amp;lt;inf&amp;gt; app: buf request: 0x20003800
ASSERTION FAIL [err == 0] @ CMAKE_SOURCE_DIR/src/main.c:67
  Failed to provide new buffer: err: -13&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/EDIT&amp;gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Thilo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521351?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2025 15:08:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2785bd54-bd0c-477e-b9c7-fe48dda0f7c8</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Which version of the SDK do you use?&lt;/p&gt;
[quote user=""]Any Idea, why the uart receives only Zero-Bytes after the second switch between active and suspended?&lt;br /&gt;And I get some Overrun errors, but I think this is not the cause but impact of the problem, as the overrun errors start to appear after the first byte received:[/quote]
&lt;p&gt;So first you got an error with wrong bytes read on the UART.&lt;/p&gt;
&lt;p&gt;But then later in comments you get the Assert from UART enable?&lt;/p&gt;
&lt;p&gt;I do not think I follow completely here. Is the Assert something you get when trying to finx the first issue, or?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521217?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2025 07:19:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b1dc0508-5559-4c07-a4f8-000c480f58c5</guid><dc:creator>C.Thilo</dc:creator><description>&lt;p&gt;If I ignore the -16 of uart_rx_enable, as it is -EBUSY, which means rx is already enabled, like so:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;		err = uart_rx_enable(uart, buf, BUF_SIZE, 10000);
		__ASSERT(err == 0 || err == -EBUSY, &amp;quot;Failed to enable uart rx: err: %d&amp;quot;, err);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Then the Rx stopped with reason 1 appears in the sample too. Like in our normal App.&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.366,363] &amp;lt;inf&amp;gt; app: buf request: 0x20003800
[00:00:15.027,465] &amp;lt;inf&amp;gt; app: Rx Rdy, buf: 0x2000380c
[00:00:15.027,618] &amp;lt;inf&amp;gt; app: Tx done
[00:00:24.912,933] &amp;lt;wrn&amp;gt; app: Rx stopped: reason: 1
[00:00:24.913,482] &amp;lt;inf&amp;gt; app: buf release: 0x2000380c
[00:00:24.913,513] &amp;lt;inf&amp;gt; app: buf release: 0x20003800
[00:00:24.913,513] &amp;lt;wrn&amp;gt; app: Rx disabled
[00:00:24.913,543] &amp;lt;inf&amp;gt; app: buf request: 0x20003800
ASSERTION FAIL [err == 0] @ CMAKE_SOURCE_DIR/src/main.c:67
        Failed to provide new buffer
[00:00:24.913,635] &amp;lt;err&amp;gt; os: r0/a1:  0x00000004  r1/a2:  0x00000043  r2/a3:  0x00000006
[00:00:24.913,635] &amp;lt;err&amp;gt; os: r3/a4:  0x00000004 r12/ip:  0x00000004 r14/lr:  0x000005b3
[00:00:24.913,635] &amp;lt;err&amp;gt; os:  xpsr:  0x01000018
[00:00:24.913,665] &amp;lt;err&amp;gt; os: Faulting instruction address (r15/pc): 0x0000d142
[00:00:24.913,726] &amp;lt;err&amp;gt; os: &amp;gt;&amp;gt;&amp;gt; ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:24.913,726] &amp;lt;err&amp;gt; os: Fault during interrupt handling

[00:00:24.913,757] &amp;lt;err&amp;gt; os: Current thread: 0x200008a0 (idle)
[00:00:25.246,734] &amp;lt;err&amp;gt; os: Halting system
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The assert is the impact from the previous rx disabled which is the impact of the rx stopped probelem.&lt;br /&gt;So the cause is whatever caused the rx stopped overrun. And I don&amp;#39;t get it.&lt;br /&gt;&lt;br /&gt;Another thing is, that the uart_rx_disabled in the while seems to not work, as the next uart_rx_enable will report -EBUSY (already running). Why is that so? Perhaps thats the root cause?&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;Thilo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521179?ContentTypeID=1</link><pubDate>Mon, 03 Feb 2025 17:09:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8934408-d466-41cb-b51b-00cff2c85083</guid><dc:creator>C.Thilo</dc:creator><description>&lt;p&gt;I managed to create a minimized sample. This did reproduce the problem on our hw (which is&amp;nbsp;based on a nrf5340). So perhaps the sample runs on a nrf5340dk? .... Unsure.&lt;br /&gt;&lt;br /&gt;main.c:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;zephyr/kernel.h&amp;gt;
#include &amp;lt;zephyr/device.h&amp;gt;
#include &amp;lt;zephyr/devicetree.h&amp;gt;
#include &amp;lt;zephyr/logging/log.h&amp;gt;
#include &amp;lt;zephyr/drivers/uart.h&amp;gt;
#include &amp;lt;zephyr/pm/pm.h&amp;gt;
#include &amp;lt;zephyr/pm/policy.h&amp;gt;
#include &amp;lt;zephyr/pm/device.h&amp;gt;
#include &amp;lt;zephyr/pm/device_runtime.h&amp;gt;

LOG_MODULE_REGISTER(app);

#define MSG_QUEUE_ITEM_COUNT 10
#define BUF_SIZE 10

typedef struct _st_rx_queue_msg
{
    uint8_t  *buffer;
    uint16_t length;
} st_queue_msg;

typedef struct _config
{
	const struct device *dev;
	uint8_t __aligned(4) rxQueueMsgs[sizeof(st_queue_msg) * MSG_QUEUE_ITEM_COUNT];
	struct k_msgq rxQueue;
} st_config;

static K_MEM_SLAB_DEFINE(uart_slab, BUF_SIZE, MSG_QUEUE_ITEM_COUNT, 4);

static void uart_callback(const struct device *dev,
			  struct uart_event *evt,
			  void *user_data)
{
	st_config *cfg = (st_config*)user_data;
	int err;

	switch (evt-&amp;gt;type) {
	case UART_TX_DONE:
		LOG_INF(&amp;quot;Tx done&amp;quot;);
		break;

	case UART_TX_ABORTED:
		LOG_INF(&amp;quot;Tx aborted&amp;quot;);
		break;

	case UART_RX_RDY:
		st_queue_msg msg;

		msg.length = evt-&amp;gt;data.rx.len;
		msg.buffer = &amp;amp;evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset];
		LOG_INF(&amp;quot;Rx Rdy, buf: %p&amp;quot;, (void*)msg.buffer);

		k_msgq_put(&amp;amp;cfg-&amp;gt;rxQueue, &amp;amp;msg, K_NO_WAIT);
		break;

	case UART_RX_BUF_REQUEST:
	{
		uint8_t *buf;

		err = k_mem_slab_alloc(&amp;amp;uart_slab, (void **)&amp;amp;buf, K_NO_WAIT);
		__ASSERT(err == 0, &amp;quot;Failed to allocate slab&amp;quot;);

		LOG_INF(&amp;quot;buf request: %p&amp;quot;, (void*)buf);

		err = uart_rx_buf_rsp(cfg-&amp;gt;dev, buf, BUF_SIZE);
		__ASSERT(err == 0, &amp;quot;Failed to provide new buffer&amp;quot;);
		break;
	}

	case UART_RX_BUF_RELEASED:
		LOG_INF(&amp;quot;buf release: %p&amp;quot;, (void*)evt-&amp;gt;data.rx_buf.buf);
		k_mem_slab_free(&amp;amp;uart_slab, (void*)evt-&amp;gt;data.rx_buf.buf);
		break;

	case UART_RX_DISABLED:
		break;

	case UART_RX_STOPPED:
		break;
	}
}

static void async(const struct device *uart)
{
	int err;
	uint8_t *buf;
	st_config cfg;

	cfg.dev = uart;

	err = k_mem_slab_alloc(&amp;amp;uart_slab, (void **)&amp;amp;buf, K_NO_WAIT);
	__ASSERT(err == 0, &amp;quot;Failed to alloc slab&amp;quot;);

	k_msgq_init(&amp;amp;cfg.rxQueue, (char*)&amp;amp;cfg.rxQueueMsgs, sizeof(st_queue_msg), MSG_QUEUE_ITEM_COUNT);

	err = uart_callback_set(uart, uart_callback, (void *)&amp;amp;cfg);
	__ASSERT(err == 0, &amp;quot;Failed to set callback&amp;quot;);

    err = pm_device_runtime_enable(uart);
	__ASSERT(err == 0, &amp;quot;Failed to powermanagement device runtime&amp;quot;);

    err = pm_device_action_run(uart, PM_DEVICE_ACTION_RESUME);
	__ASSERT(err == 0, &amp;quot;Failed to resume uart device&amp;quot;);

	err = uart_rx_enable(uart, buf, BUF_SIZE, 10000);
	__ASSERT(err == 0, &amp;quot;Failed to enable uart rx&amp;quot;);

	while (1)
	{
		st_queue_msg msg;
		int err;

		k_msgq_get(&amp;amp;cfg.rxQueue, &amp;amp;msg, K_FOREVER);

		err = uart_tx(uart, msg.buffer, msg.length, 10000);
		__ASSERT(err == 0, &amp;quot;Failed to initiate transmission&amp;quot;);
		k_sleep(K_MSEC(500));

		err = uart_rx_disable(uart);
		__ASSERT(err == 0, &amp;quot;Failed to disable uart rx&amp;quot;);

		err = pm_device_action_run(uart, PM_DEVICE_ACTION_SUSPEND);
		__ASSERT(err == 0, &amp;quot;Failed to suspend uart device&amp;quot;);
		
		k_sleep(K_MSEC(500));

		pm_device_action_run(uart, PM_DEVICE_ACTION_RESUME);
		__ASSERT(err == 0, &amp;quot;Failed to resume uart device&amp;quot;);

		err = uart_rx_enable(uart, buf, BUF_SIZE, 10000);
		__ASSERT(err == 0, &amp;quot;Failed to enable uart rx: err: %d&amp;quot;, err);
	}
}

int main(void)
{
	const struct device *uart = DEVICE_DT_GET(DT_NODELABEL(uart0));

	__ASSERT(device_is_ready(uart), &amp;quot;UART0 device not ready&amp;quot;);

	async(uart);

	return 0;
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;overlay:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;/* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */

&amp;amp;uart0 {
	status = &amp;quot;okay&amp;quot;;
	current-speed = &amp;lt;115200&amp;gt;;

	pinctrl-0 = &amp;lt;&amp;amp;uart0_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;uart0_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
};

&amp;amp;uart0_default {
	/* Disconnect CTS and RTS lines from pins.
	 * This is a temporary workaround for increased current consumption
	 * observed on nRF5340 DKs only (~200 uA more on v0.9.0 and ~400 uA
	 * more on v2.0.0).
	 */
	group1 {
		psels = &amp;lt;NRF_PSEL(UART_TX, 0, 19)&amp;gt;,
				&amp;lt;NRF_PSEL_DISCONNECTED(UART_RTS)&amp;gt;;
	};
	group2 {
		psels = &amp;lt;NRF_PSEL(UART_RX, 0, 21)&amp;gt;,
				&amp;lt;NRF_PSEL_DISCONNECTED(UART_CTS)&amp;gt;;
		bias-pull-up;
	};
};

&amp;amp;uart0_sleep {
	group1 {
		psels = &amp;lt;NRF_PSEL(UART_TX, 0, 19)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_RTS)&amp;gt;,
			&amp;lt;NRF_PSEL(UART_RX, 0, 21)&amp;gt;,
			&amp;lt;NRF_PSEL_DISCONNECTED(UART_CTS)&amp;gt;;
		low-power-enable;
	};
};

&amp;amp;gpiote {
	interrupts = &amp;lt;13 NRF_DEFAULT_IRQ_PRIORITY&amp;gt;;
};

&amp;amp;gpio0 {
	status = &amp;quot;okay&amp;quot;;
};

&amp;amp;gpio1 {
	status = &amp;quot;okay&amp;quot;;
};
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;prj.conf:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_UART_ASYNC_API=y

CONFIG_UART_0_ASYNC=y
CONFIG_UART_0_NRF_HW_ASYNC=y
CONFIG_UART_0_NRF_HW_ASYNC_TIMER=2
CONFIG_NRFX_TIMER2=y

CONFIG_LOG=y
CONFIG_NO_OPTIMIZATIONS=y
CONFIG_ASSERT=y
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=2048
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_PRINTK=y
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_BACKEND_SHOW_COLOR=y

CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the log from the RTT Viewer which shows the assert of the uart_rx_enable after the suspend in the while which is the second suspend. The first suspend was done by pm_device_runtime_enable.&lt;/p&gt;
&lt;p&gt;RTT Viewer Log:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.354,766] &amp;lt;inf&amp;gt; app: buf request: 0x20003800
[00:00:08.222,106] &amp;lt;inf&amp;gt; app: Rx Rdy, buf: 0x2000380c[00:00:08.222,259] &amp;lt;inf&amp;gt; app: Tx done
ASSERTION FAIL [err == 0] @ CMAKE_SOURCE_DIR/src/main.c:138
  Failed to enable uart rx: err: -16
[00:00:09.222,412] &amp;lt;err&amp;gt; os: r0/a1:  0x00000004  r1/a2:  0x0000008a  r2/a3:  0x000000020m
[00:00:09.222,442] &amp;lt;err&amp;gt; os: r3/a4:  0x00000004 r12/ip:  0x00000004 r14/lr:  0x00000777
[00:00:09.222,442] &amp;lt;err&amp;gt; os:  xpsr:  0x09000000
[00:00:09.222,442] &amp;lt;err&amp;gt; os: Faulting instruction address (r15/pc): 0x0000d106
[00:00:09.222,503] &amp;lt;err&amp;gt; os: &amp;gt;&amp;gt;&amp;gt; ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:09.222,534] &amp;lt;err&amp;gt; os: Current thread: 0x20000960 (main)
[00:00:09.454,559] &amp;lt;err&amp;gt; os: Halting system&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Any hint would be very appriciated!&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;Thilo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Device PowerManagement and NRF Uarte</title><link>https://devzone.nordicsemi.com/thread/521097?ContentTypeID=1</link><pubDate>Mon, 03 Feb 2025 12:22:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8403a8d9-686e-49dc-90c2-5a796c10f05b</guid><dc:creator>C.Thilo</dc:creator><description>&lt;p&gt;Forgot the pinctrl dts:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 19)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 1, 3)&amp;gt;;
		};
		group2 {
			psels = &amp;lt;NRF_PSEL(UART_RX, 0, 21)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 1, 5)&amp;gt;;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 19)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 1, 3)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RX, 0, 21)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 1, 5)&amp;gt;;
			low-power-enable;
		};
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And the usage of the pinctrl:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;
&amp;amp;uart0 {
	status = &amp;quot;okay&amp;quot;;
	current-speed = &amp;lt;115200&amp;gt;;
	pinctrl-0 = &amp;lt;&amp;amp;uart0_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;uart0_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
};
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>