diff --git a/boards/arm/reel_board/board.c b/boards/arm/reel_board/board.c index 8e73bf52848..b2194a6a70b 100644 --- a/boards/arm/reel_board/board.c +++ b/boards/arm/reel_board/board.c @@ -24,6 +24,20 @@ static int board_reel_board_init(struct device *dev) gpio->OUTSET = BIT(PERIPH_PON_PIN); + /* + * Enable pull-up on UART RX pin to reduce power consumption. + * If the board is powered by battery and the debugger is + * not connected via USB to the host, the SoC consumes up + * to 2mA more than expected. + * The consumption increases because RX pin is floating + * (High-Impedance state of pin B from Dual-Supply Bus Transceiver). + */ + gpio = NRF_P0; + gpio->PIN_CNF[DT_NORDIC_NRF_UART_0_RX_PIN] = + (GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos) | + (GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos) | + (GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos); + return 0; }