Skip to content

Commit 25df6e6

Browse files
authored
Merge pull request #2395 from hathach/nrfx-v2
upgrade nrfx API to v2
2 parents f2b1aee + dad2663 commit 25df6e6

File tree

14 files changed

+79
-73
lines changed

14 files changed

+79
-73
lines changed

lib/tinyusb

Submodule tinyusb updated 269 files

ports/nrf/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ SRC_NRFX = $(addprefix nrfx/,\
138138
drivers/src/nrfx_uarte.c \
139139
drivers/src/nrfx_gpiote.c \
140140
drivers/src/nrfx_rtc.c \
141+
drivers/src/nrfx_nvmc.c \
141142
)
142143

143144
ifdef EXTERNAL_FLASH_DEVICES
@@ -167,7 +168,6 @@ SRC_C += \
167168
lib/utils/pyexec.c \
168169
lib/utils/stdout_helpers.c \
169170
lib/utils/sys_stdio_mphal.c \
170-
nrfx/hal/nrf_nvmc.c \
171171
nrfx/mdk/system_$(MCU_SUB_VARIANT).c \
172172
peripherals/nrf/cache.c \
173173
peripherals/nrf/clocks.c \

ports/nrf/common-hal/analogio/AnalogIn.c

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636

3737
void analogin_init(void) {
3838
// Calibrate the ADC once, on startup.
39-
nrf_saadc_enable();
40-
nrf_saadc_event_clear(NRF_SAADC_EVENT_CALIBRATEDONE);
41-
nrf_saadc_task_trigger(NRF_SAADC_TASK_CALIBRATEOFFSET);
42-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_CALIBRATEDONE) == 0) { }
43-
nrf_saadc_event_clear(NRF_SAADC_EVENT_CALIBRATEDONE);
44-
nrf_saadc_disable();
39+
nrf_saadc_enable(NRF_SAADC);
40+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_CALIBRATEDONE);
41+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_CALIBRATEOFFSET);
42+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_CALIBRATEDONE) == 0) { }
43+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_CALIBRATEDONE);
44+
nrf_saadc_disable(NRF_SAADC);
4545
}
4646

4747
void common_hal_analogio_analogin_construct(analogio_analogin_obj_t *self, const mcu_pin_obj_t *pin) {
@@ -81,34 +81,33 @@ uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
8181
.reference = NRF_SAADC_REFERENCE_VDD4,
8282
.acq_time = NRF_SAADC_ACQTIME_3US,
8383
.mode = NRF_SAADC_MODE_SINGLE_ENDED,
84-
.burst = NRF_SAADC_BURST_DISABLED,
85-
.pin_p = self->pin->adc_channel,
86-
.pin_n = self->pin->adc_channel,
84+
.burst = NRF_SAADC_BURST_DISABLED
8785
};
8886

89-
nrf_saadc_resolution_set(NRF_SAADC_RESOLUTION_14BIT);
90-
nrf_saadc_oversample_set(NRF_SAADC_OVERSAMPLE_DISABLED);
91-
nrf_saadc_enable();
87+
nrf_saadc_resolution_set(NRF_SAADC, NRF_SAADC_RESOLUTION_14BIT);
88+
nrf_saadc_oversample_set(NRF_SAADC, NRF_SAADC_OVERSAMPLE_DISABLED);
89+
nrf_saadc_enable(NRF_SAADC);
9290

93-
for (uint32_t i = 0; i < NRF_SAADC_CHANNEL_COUNT; i++)
94-
nrf_saadc_channel_input_set(i, NRF_SAADC_INPUT_DISABLED, NRF_SAADC_INPUT_DISABLED);
91+
for (uint32_t i = 0; i < SAADC_CH_NUM; i++)
92+
nrf_saadc_channel_input_set(NRF_SAADC, i, NRF_SAADC_INPUT_DISABLED, NRF_SAADC_INPUT_DISABLED);
9593

96-
nrf_saadc_channel_init(CHANNEL_NO, &config);
97-
nrf_saadc_buffer_init(&value, 1);
94+
nrf_saadc_channel_init(NRF_SAADC, CHANNEL_NO, &config);
95+
nrf_saadc_channel_input_set(NRF_SAADC, CHANNEL_NO, self->pin->adc_channel, self->pin->adc_channel);
96+
nrf_saadc_buffer_init(NRF_SAADC, &value, 1);
9897

99-
nrf_saadc_task_trigger(NRF_SAADC_TASK_START);
100-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_STARTED) == 0);
101-
nrf_saadc_event_clear(NRF_SAADC_EVENT_STARTED);
98+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_START);
99+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_STARTED) == 0);
100+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_STARTED);
102101

103-
nrf_saadc_task_trigger(NRF_SAADC_TASK_SAMPLE);
104-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_END) == 0);
105-
nrf_saadc_event_clear(NRF_SAADC_EVENT_END);
102+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_SAMPLE);
103+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_END) == 0);
104+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_END);
106105

107-
nrf_saadc_task_trigger(NRF_SAADC_TASK_STOP);
108-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_STOPPED) == 0);
109-
nrf_saadc_event_clear(NRF_SAADC_EVENT_STOPPED);
106+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_STOP);
107+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_STOPPED) == 0);
108+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_STOPPED);
110109

111-
nrf_saadc_disable();
110+
nrf_saadc_disable(NRF_SAADC);
112111

113112
if (value < 0)
114113
value = 0;

ports/nrf/common-hal/busio/I2C.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, const mcu_pin_obj_t *
133133
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
134134
}
135135

136-
nrfx_twim_config_t config = NRFX_TWIM_DEFAULT_CONFIG;
137-
config.scl = scl->number;
138-
config.sda = sda->number;
136+
nrfx_twim_config_t config = NRFX_TWIM_DEFAULT_CONFIG(scl->number, sda->number);
137+
139138
// change freq. only if it's less than the default 400K
140139
if (frequency < 100000) {
141140
config.frequency = NRF_TWIM_FREQ_100K;
@@ -248,8 +247,10 @@ uint8_t common_hal_busio_i2c_write(busio_i2c_obj_t *self, uint16_t addr, const u
248247
// break into MAX_XFER_LEN transaction
249248
while ( len ) {
250249
const size_t xact_len = MIN(len, I2C_MAX_XFER_LEN);
250+
nrfx_twim_xfer_desc_t xfer_desc = NRFX_TWIM_XFER_DESC_TX(addr, (uint8_t*) data, xact_len);
251+
uint32_t const flags = (stopBit ? 0 : NRFX_TWIM_FLAG_TX_NO_STOP);
251252

252-
if ( NRFX_SUCCESS != (err = nrfx_twim_tx(&self->twim_peripheral->twim, addr, data, xact_len, !stopBit)) ) {
253+
if ( NRFX_SUCCESS != (err = nrfx_twim_xfer(&self->twim_peripheral->twim, &xfer_desc, flags)) ) {
253254
break;
254255
}
255256

@@ -274,8 +275,9 @@ uint8_t common_hal_busio_i2c_read(busio_i2c_obj_t *self, uint16_t addr, uint8_t
274275
// break into MAX_XFER_LEN transaction
275276
while ( len ) {
276277
const size_t xact_len = MIN(len, I2C_MAX_XFER_LEN);
278+
nrfx_twim_xfer_desc_t xfer_desc = NRFX_TWIM_XFER_DESC_RX(addr, data, xact_len);
277279

278-
if ( NRFX_SUCCESS != (err = nrfx_twim_rx(&self->twim_peripheral->twim, addr, data, xact_len)) ) {
280+
if ( NRFX_SUCCESS != (err = nrfx_twim_xfer(&self->twim_peripheral->twim, &xfer_desc, 0)) ) {
279281
break;
280282
}
281283

ports/nrf/common-hal/busio/SPI.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t *
135135
mp_raise_ValueError(translate("All SPI peripherals are in use"));
136136
}
137137

138-
nrfx_spim_config_t config = NRFX_SPIM_DEFAULT_CONFIG;
138+
nrfx_spim_config_t config = NRFX_SPIM_DEFAULT_CONFIG(NRFX_SPIM_PIN_NOT_USED, NRFX_SPIM_PIN_NOT_USED,
139+
NRFX_SPIM_PIN_NOT_USED, NRFX_SPIM_PIN_NOT_USED);
139140
config.frequency = NRF_SPIM_FREQ_8M;
140141

141142
config.sck_pin = clock->number;

ports/nrf/common-hal/busio/UART.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,12 @@ void common_hal_busio_uart_construct (busio_uart_obj_t *self,
163163
.pselcts = NRF_UARTE_PSEL_DISCONNECTED,
164164
.pselrts = NRF_UARTE_PSEL_DISCONNECTED,
165165
.p_context = self,
166-
.hwfc = NRF_UARTE_HWFC_DISABLED,
167-
.parity = (parity == PARITY_NONE) ? NRF_UARTE_PARITY_EXCLUDED : NRF_UARTE_PARITY_INCLUDED,
168166
.baudrate = get_nrf_baud(baudrate),
169-
.interrupt_priority = 7
167+
.interrupt_priority = 7,
168+
.hal_cfg = {
169+
.hwfc = NRF_UARTE_HWFC_DISABLED,
170+
.parity = (parity == PARITY_NONE) ? NRF_UARTE_PARITY_EXCLUDED : NRF_UARTE_PARITY_INCLUDED
171+
}
170172
};
171173

172174
nrfx_uarte_uninit(self->uarte);

ports/nrf/common-hal/microcontroller/Processor.c

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,35 +75,34 @@ float common_hal_mcu_processor_get_voltage(void) {
7575
.reference = NRF_SAADC_REFERENCE_INTERNAL,
7676
.acq_time = NRF_SAADC_ACQTIME_10US,
7777
.mode = NRF_SAADC_MODE_SINGLE_ENDED,
78-
.burst = NRF_SAADC_BURST_DISABLED,
79-
.pin_p = NRF_SAADC_INPUT_VDD,
80-
.pin_n = NRF_SAADC_INPUT_VDD,
78+
.burst = NRF_SAADC_BURST_DISABLED
8179
};
8280

83-
nrf_saadc_resolution_set(NRF_SAADC_RESOLUTION_14BIT);
84-
nrf_saadc_oversample_set(NRF_SAADC_OVERSAMPLE_DISABLED);
85-
nrf_saadc_enable();
81+
nrf_saadc_resolution_set(NRF_SAADC, NRF_SAADC_RESOLUTION_14BIT);
82+
nrf_saadc_oversample_set(NRF_SAADC, NRF_SAADC_OVERSAMPLE_DISABLED);
83+
nrf_saadc_enable(NRF_SAADC);
8684

87-
for (uint32_t i = 0; i < NRF_SAADC_CHANNEL_COUNT; i++) {
88-
nrf_saadc_channel_input_set(i, NRF_SAADC_INPUT_DISABLED, NRF_SAADC_INPUT_DISABLED);
85+
for (uint32_t i = 0; i < SAADC_CH_NUM; i++) {
86+
nrf_saadc_channel_input_set(NRF_SAADC, i, NRF_SAADC_INPUT_DISABLED, NRF_SAADC_INPUT_DISABLED);
8987
}
9088

91-
nrf_saadc_channel_init(0, &config);
92-
nrf_saadc_buffer_init(&value, 1);
89+
nrf_saadc_channel_init(NRF_SAADC, 0, &config);
90+
nrf_saadc_channel_input_set(NRF_SAADC, 0, NRF_SAADC_INPUT_VDD, NRF_SAADC_INPUT_VDD);
91+
nrf_saadc_buffer_init(NRF_SAADC, &value, 1);
9392

94-
nrf_saadc_task_trigger(NRF_SAADC_TASK_START);
95-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_STARTED) == 0) { }
96-
nrf_saadc_event_clear(NRF_SAADC_EVENT_STARTED);
93+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_START);
94+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_STARTED) == 0) { }
95+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_STARTED);
9796

98-
nrf_saadc_task_trigger(NRF_SAADC_TASK_SAMPLE);
99-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_END) == 0) { }
100-
nrf_saadc_event_clear(NRF_SAADC_EVENT_END);
97+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_SAMPLE);
98+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_END) == 0) { }
99+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_END);
101100

102-
nrf_saadc_task_trigger(NRF_SAADC_TASK_STOP);
103-
while (nrf_saadc_event_check(NRF_SAADC_EVENT_STOPPED) == 0) { }
104-
nrf_saadc_event_clear(NRF_SAADC_EVENT_STOPPED);
101+
nrf_saadc_task_trigger(NRF_SAADC, NRF_SAADC_TASK_STOP);
102+
while (nrf_saadc_event_check(NRF_SAADC, NRF_SAADC_EVENT_STOPPED) == 0) { }
103+
nrf_saadc_event_clear(NRF_SAADC, NRF_SAADC_EVENT_STOPPED);
105104

106-
nrf_saadc_disable();
105+
nrf_saadc_disable(NRF_SAADC);
107106

108107
if (value < 0) {
109108
value = 0;

ports/nrf/common-hal/os/__init__.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,17 @@ bool common_hal_os_urandom(uint8_t *buffer, uint32_t length) {
7070
return NRF_SUCCESS == sd_rand_application_vector_get(buffer, length);
7171
#endif
7272

73-
nrf_rng_event_clear(NRF_RNG_EVENT_VALRDY);
74-
nrf_rng_task_trigger(NRF_RNG_TASK_START);
73+
nrf_rng_event_clear(NRF_RNG, NRF_RNG_EVENT_VALRDY);
74+
nrf_rng_task_trigger(NRF_RNG, NRF_RNG_TASK_START);
7575

7676
for (uint32_t i = 0; i < length; i++) {
77-
while (nrf_rng_event_get(NRF_RNG_EVENT_VALRDY) == 0);
78-
nrf_rng_event_clear(NRF_RNG_EVENT_VALRDY);
77+
while (nrf_rng_event_check(NRF_RNG, NRF_RNG_EVENT_VALRDY) == 0);
78+
nrf_rng_event_clear(NRF_RNG, NRF_RNG_EVENT_VALRDY);
7979

80-
buffer[i] = nrf_rng_random_value_get();
80+
buffer[i] = nrf_rng_random_value_get(NRF_RNG);
8181
}
8282

83-
nrf_rng_task_trigger(NRF_RNG_TASK_STOP);
83+
nrf_rng_task_trigger(NRF_RNG, NRF_RNG_TASK_STOP);
8484

8585
return true;
8686
}

ports/nrf/common-hal/pulseio/PulseIn.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void pulsein_reset(void) {
112112
if ( nrfx_gpiote_is_init() ) {
113113
nrfx_gpiote_uninit();
114114
}
115-
nrfx_gpiote_init();
115+
nrfx_gpiote_init(NRFX_GPIOTE_CONFIG_IRQ_PRIORITY);
116116

117117
memset(_objs, 0, sizeof(_objs));
118118
}

ports/nrf/common-hal/rtc/RTC.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ void rtc_handler(nrfx_rtc_int_type_t int_type) {
5959
}
6060

6161
void rtc_init(void) {
62-
if (!nrf_clock_lf_is_running()) {
63-
nrf_clock_task_trigger(NRF_CLOCK_TASK_LFCLKSTART);
62+
if (!nrf_clock_lf_is_running(NRF_CLOCK)) {
63+
nrf_clock_task_trigger(NRF_CLOCK, NRF_CLOCK_TASK_LFCLKSTART);
6464
}
6565
nrfx_rtc_counter_clear(&rtc_instance);
6666
nrfx_rtc_init(&rtc_instance, &rtc_config, rtc_handler);

ports/nrf/nrfx

Submodule nrfx updated 317 files

ports/nrf/nrfx_config.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
// Power
55
#define NRFX_POWER_ENABLED 1
6-
#define NRFX_POWER_CONFIG_IRQ_PRIORITY 7
6+
#define NRFX_POWER_DEFAULT_CONFIG_IRQ_PRIORITY 7
77

88
// NOTE: THIS WORKAROUND CAUSES BLE CODE TO CRASH.
99
// It doesn't work with the SoftDevice.
@@ -116,4 +116,7 @@
116116
#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
117117
#define NRFX_GPIOTE_CONFIG_IRQ_PRIORITY 7
118118

119+
// NVM controller
120+
#define NRFX_NVMC_ENABLED 1
121+
119122
#endif // NRFX_CONFIG_H__

ports/nrf/peripherals/nrf/nrf52840/power.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
*/
2626

2727
#include "nrfx.h"
28-
#include "nrf_nvmc.h"
28+
#include "nrfx_nvmc.h"
2929

3030
void nrf_peripherals_power_init(void) {
3131
// Set GPIO reference voltage to 3.3V if it isn't already. REGOUT0 will get reset to 0xfffffff
3232
// if flash is erased, which sets the default to 1.8V
3333
// This matters only when "high voltage mode" is enabled, which is true on the PCA10059,
3434
// and might be true on other boards.
3535
if (NRF_UICR->REGOUT0 == 0xffffffff) {
36-
nrf_nvmc_write_word((uint32_t) &NRF_UICR->REGOUT0, UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos);
36+
nrfx_nvmc_word_write((uint32_t) &NRF_UICR->REGOUT0, UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos);
3737
// Must reset to make enable change.
3838
NVIC_SystemReset();
3939
}

ports/nrf/peripherals/nrf/nvm.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include <stdio.h>
3131
#include <string.h>
3232

33-
#include "nrf_nvmc.h"
33+
#include "nrfx_nvmc.h"
3434

3535
#define FLASH_PAGE_SIZE (4096)
3636

@@ -90,7 +90,7 @@ bool nrf_nvm_safe_flash_page_write(uint32_t page_addr, uint8_t *data) {
9090
}
9191
#endif
9292

93-
nrf_nvmc_page_erase(page_addr);
94-
nrf_nvmc_write_bytes(page_addr, data, FLASH_PAGE_SIZE);
93+
nrfx_nvmc_page_erase(page_addr);
94+
nrfx_nvmc_bytes_write(page_addr, data, FLASH_PAGE_SIZE);
9595
return true;
9696
}

0 commit comments

Comments
 (0)