Skip to content

Commit 4ba802d

Browse files
authored
Merge pull request #186 from lyusupov/REGOUT0
fix against pollution of REGOUT0 reserved bits
2 parents 15e2661 + f912559 commit 4ba802d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/boards/boards.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,13 @@ void board_init(void)
9494
// #define UICR_REGOUT0_VALUE UICR_REGOUT0_VOUT_3V3
9595
// in board.h when using that power configuration.
9696
#ifdef UICR_REGOUT0_VALUE
97-
if (NRF_UICR->REGOUT0 != UICR_REGOUT0_VALUE)
97+
if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) !=
98+
(UICR_REGOUT0_VALUE << UICR_REGOUT0_VOUT_Pos))
9899
{
99100
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
100101
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
101-
NRF_UICR->REGOUT0 = UICR_REGOUT0_VALUE;
102+
NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
103+
(UICR_REGOUT0_VALUE << UICR_REGOUT0_VOUT_Pos);
102104

103105
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
104106
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

0 commit comments

Comments
 (0)