Skip to content

Commit feb714b

Browse files
nvlsianpujfischer-no
authored andcommitted
subsy/bootloader/bl_boot: uninitialized UARTE pins
These pins might be source of the current leakage, which actually is observed on PCA 10095 2.0.1 Added procedure for setting these pins to default state. Ref.: NCSDK-26253 Signed-off-by: Andrzej Puzdrowski <[email protected]>
1 parent d7415e5 commit feb714b

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

subsys/bootloader/bl_boot/bl_boot.c

+24-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,27 @@
1515
#endif
1616
#ifdef CONFIG_UART_NRFX_UARTE
1717
#include <hal/nrf_uarte.h>
18+
#include <hal/nrf_gpio.h>
19+
#endif
20+
21+
#ifdef CONFIG_UART_NRFX_UARTE
22+
static void uninit_used_uarte(NRF_UARTE_Type *p_reg)
23+
{
24+
uint32_t pin[4];
25+
26+
nrf_uarte_disable(p_reg);
27+
28+
pin[0] = nrf_uarte_tx_pin_get(p_reg);
29+
pin[1] = nrf_uarte_rx_pin_get(p_reg);
30+
pin[2] = nrf_uarte_rts_pin_get(p_reg);
31+
pin[3] = nrf_uarte_cts_pin_get(p_reg);
32+
33+
for (int i = 0; i < 4; i++) {
34+
if (pin[i] != NRF_UARTE_PSEL_DISCONNECTED) {
35+
nrf_gpio_cfg_default(pin[i]);
36+
}
37+
}
38+
}
1839
#endif
1940

2041
static void uninit_used_peripherals(void)
@@ -23,13 +44,13 @@ static void uninit_used_peripherals(void)
2344
#if defined(CONFIG_HAS_HW_NRF_UART0)
2445
nrf_uart_disable(NRF_UART0);
2546
#elif defined(CONFIG_HAS_HW_NRF_UARTE0)
26-
nrf_uarte_disable(NRF_UARTE0);
47+
uninit_used_uarte(NRF_UARTE0);
2748
#endif
2849
#if defined(CONFIG_HAS_HW_NRF_UARTE1)
29-
nrf_uarte_disable(NRF_UARTE1);
50+
uninit_used_uarte(NRF_UARTE1);
3051
#endif
3152
#if defined(CONFIG_HAS_HW_NRF_UARTE2)
32-
nrf_uarte_disable(NRF_UARTE2);
53+
uninit_used_uarte(NRF_UARTE2);
3354
#endif
3455
#endif /* CONFIG_UART_NRFX */
3556

0 commit comments

Comments
 (0)