diff --git a/soc/arm/nordic_nrf/validate_base_addresses.c b/soc/arm/nordic_nrf/validate_base_addresses.c index fb4f490153e..26bcf5455bb 100644 --- a/soc/arm/nordic_nrf/validate_base_addresses.c +++ b/soc/arm/nordic_nrf/validate_base_addresses.c @@ -1,284 +1,134 @@ /* - * Copyright (c) 2019 Nordic Semiconductor ASA + * Copyright (c) 2019, 2020 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #include +#include +#include + /* - * This inclusion is needed for nRF51 for two reasons: - * - for GPIO peripheral, MDK defines only the legacy NRF_GPIO symbol; - * the GPIO HAL included below maps this symbol to NRF_P0, for consistency - * with all other nRF SoCs - * - currently for nRF51, is not included through , - * consequently is not included as well and MDK definitions - * are missing; the below inclusion fills this gap + * Account for MDK inconsistencies */ -#include -/* - * Provide translation of symbols for peripherals that for some SoCs got names - * without the index. - */ -#ifndef NRF_I2S0 + +#if !defined(NRF_I2S0) && defined(NRF_I2S) #define NRF_I2S0 NRF_I2S #endif -#ifndef NRF_PDM0 + +#if !defined(NRF_P0) && defined(NRF_GPIO) +#define NRF_P0 NRF_GPIO +#endif + +#if !defined(NRF_PDM0) && defined(NRF_PDM) #define NRF_PDM0 NRF_PDM #endif -#ifndef NRF_WDT0 + +#if !defined(NRF_WDT0) && defined(NRF_WDT) #define NRF_WDT0 NRF_WDT #endif -#define CHECK_ADDRESS(dts, mdk) BUILD_ASSERT((u32_t)(dts) == (u32_t)(mdk)) +/** + * Check that a devicetree node's "reg" base address matches the + * correct value from the MDK. + * + * This check will only happen if the node is enabled. Disabled or + * nonexistent nodes are not checked. + * + * This allows the same file to work with multiple SoCs and devicetree + * configurations. + * + * @param lbl lowercase-and-underscores devicetree node label to check + * @param mdk_addr expected address from the Nordic MDK. + */ +#define CHECK_DT_REG(lbl, mdk_addr) \ + BUILD_ASSERT( \ + UTIL_OR(UTIL_NOT(DT_HAS_NODE(DT_NODELABEL(lbl))), \ + (DT_REG_ADDR(DT_NODELABEL(lbl)) == \ + (u32_t)(mdk_addr)))) -#if defined(DT_NORDIC_NRF_ADC_ADC_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_ADC_ADC_0_BASE_ADDRESS, NRF_ADC); -#endif +/** + * If a node label "lbl" might have different addresses depending on + * its compatible "compat", you can use this macro to pick the right + * one. + * + * @param lbl lowercase-and-underscores devicetree node label to check + * @param compat lowercase-and-underscores compatible to check + * @param addr_if_match MDK address to return if "lbl" has compatible "compat" + * @param addr_if_no_match MDK address to return otherwise + */ +#define NODE_ADDRESS(lbl, compat, addr_if_match, addr_if_no_match) \ + COND_CODE_1(DT_NODE_HAS_COMPAT(DT_NODELABEL(lbl), compat), \ + (addr_if_match), (addr_if_no_match)) -#if defined(DT_NORDIC_NRF_CC310_CC310_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_CC310_CC310_BASE_ADDRESS, NRF_CRYPTOCELL); -#endif +#define CHECK_SPI_REG(lbl, num) \ + CHECK_DT_REG(lbl, \ + NODE_ADDRESS(lbl, nordic_nrf_spi, NRF_SPI##num, \ + NODE_ADDRESS(lbl, nordic_nrf_spim, NRF_SPIM##num, \ + NRF_SPIS##num))) -#if defined(DT_INST_0_NORDIC_NRF_CLOCK_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_CLOCK_BASE_ADDRESS, NRF_CLOCK); -#endif +#define CHECK_I2C_REG(lbl, num) \ + CHECK_DT_REG(lbl, \ + NODE_ADDRESS(lbl, nordic_nrf_twi, NRF_TWI##num, \ + NODE_ADDRESS(lbl, nordic_nrf_twim, NRF_TWIM##num, \ + NRF_TWIS##num))) -#if defined(DT_INST_0_NORDIC_NRF_DPPIC_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_DPPIC_BASE_ADDRESS, NRF_DPPIC); -#endif +#define CHECK_UART_REG(lbl, num) \ + CHECK_DT_REG(lbl, \ + NODE_ADDRESS(lbl, nordic_nrf_uart, NRF_UART##num, \ + NRF_UARTE##num)) -#if defined(DT_NORDIC_NRF_EGU_EGU_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_0_BASE_ADDRESS, NRF_EGU0); -#endif -#if defined(DT_NORDIC_NRF_EGU_EGU_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_1_BASE_ADDRESS, NRF_EGU1); -#endif -#if defined(DT_NORDIC_NRF_EGU_EGU_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_2_BASE_ADDRESS, NRF_EGU2); -#endif -#if defined(DT_NORDIC_NRF_EGU_EGU_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_3_BASE_ADDRESS, NRF_EGU3); -#endif -#if defined(DT_NORDIC_NRF_EGU_EGU_4_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_4_BASE_ADDRESS, NRF_EGU4); -#endif -#if defined(DT_NORDIC_NRF_EGU_EGU_5_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_EGU_EGU_5_BASE_ADDRESS, NRF_EGU5); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_FICR_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_FICR_BASE_ADDRESS, NRF_FICR); -#endif - -#if defined(DT_NORDIC_NRF_GPIO_GPIO_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_GPIO_GPIO_0_BASE_ADDRESS, NRF_P0); -#endif -#if defined(DT_NORDIC_NRF_GPIO_GPIO_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_GPIO_GPIO_1_BASE_ADDRESS, NRF_P1); -#endif - -#if defined(DT_NORDIC_NRF_GPIOTE_GPIOTE_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_GPIOTE_GPIOTE_0_BASE_ADDRESS, NRF_GPIOTE); -#endif - -#if defined(DT_NORDIC_NRF_I2S_I2S_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_I2S_I2S_0_BASE_ADDRESS, NRF_I2S0); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_IPC_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_IPC_BASE_ADDRESS, NRF_IPC); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_KMU_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_KMU_BASE_ADDRESS, NRF_KMU); -#endif - -#if defined(DT_INST_0_NORDIC_NRF51_FLASH_CONTROLLER_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF51_FLASH_CONTROLLER_BASE_ADDRESS, NRF_NVMC); -#endif -#if defined(DT_INST_0_NORDIC_NRF52_FLASH_CONTROLLER_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF52_FLASH_CONTROLLER_BASE_ADDRESS, NRF_NVMC); -#endif -#if defined(DT_INST_0_NORDIC_NRF91_FLASH_CONTROLLER_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF91_FLASH_CONTROLLER_BASE_ADDRESS, NRF_NVMC); -#endif - -#if defined(DT_NORDIC_NRF_PDM_PDM_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_PDM_PDM_0_BASE_ADDRESS, NRF_PDM0); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_POWER_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_POWER_BASE_ADDRESS, NRF_POWER); -#endif - -#if defined(DT_NORDIC_NRF_PWM_PWM_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_PWM_PWM_0_BASE_ADDRESS, NRF_PWM0); -#endif -#if defined(DT_NORDIC_NRF_PWM_PWM_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_PWM_PWM_1_BASE_ADDRESS, NRF_PWM1); -#endif -#if defined(DT_NORDIC_NRF_PWM_PWM_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_PWM_PWM_2_BASE_ADDRESS, NRF_PWM2); -#endif -#if defined(DT_NORDIC_NRF_PWM_PWM_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_PWM_PWM_3_BASE_ADDRESS, NRF_PWM3); -#endif - -#if defined(DT_NORDIC_NRF_QDEC_QDEC_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_QDEC_QDEC_0_BASE_ADDRESS, NRF_QDEC); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_REGULATORS_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_REGULATORS_BASE_ADDRESS, NRF_REGULATORS); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_RNG_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_RNG_BASE_ADDRESS, NRF_RNG); -#endif - -#if defined(DT_NORDIC_NRF_RTC_RTC_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_RTC_RTC_0_BASE_ADDRESS, NRF_RTC0); -#endif -#if defined(DT_NORDIC_NRF_RTC_RTC_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_RTC_RTC_1_BASE_ADDRESS, NRF_RTC1); -#endif -#if defined(DT_NORDIC_NRF_RTC_RTC_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_RTC_RTC_2_BASE_ADDRESS, NRF_RTC2); -#endif - -#if defined(DT_NORDIC_NRF_SAADC_ADC_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SAADC_ADC_0_BASE_ADDRESS, NRF_SAADC); -#endif - -#if defined(DT_NORDIC_NRF_SPI_SPI_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPI_SPI_0_BASE_ADDRESS, NRF_SPI0); -#endif -#if defined(DT_NORDIC_NRF_SPI_SPI_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPI_SPI_1_BASE_ADDRESS, NRF_SPI1); -#endif -#if defined(DT_NORDIC_NRF_SPI_SPI_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPI_SPI_2_BASE_ADDRESS, NRF_SPI2); -#endif - -#if defined(DT_NORDIC_NRF_SPIM_SPI_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIM_SPI_0_BASE_ADDRESS, NRF_SPIM0); -#endif -#if defined(DT_NORDIC_NRF_SPIM_SPI_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIM_SPI_1_BASE_ADDRESS, NRF_SPIM1); -#endif -#if defined(DT_NORDIC_NRF_SPIM_SPI_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIM_SPI_2_BASE_ADDRESS, NRF_SPIM2); -#endif -#if defined(DT_NORDIC_NRF_SPIM_SPI_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIM_SPI_3_BASE_ADDRESS, NRF_SPIM3); -#endif -#if defined(DT_NORDIC_NRF_SPIM_SPI_4_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIM_SPI_4_BASE_ADDRESS, NRF_SPIM4); -#endif - -#if defined(DT_NORDIC_NRF_SPIS_SPI_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIS_SPI_0_BASE_ADDRESS, NRF_SPIS0); -#endif -#if defined(DT_NORDIC_NRF_SPIS_SPI_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIS_SPI_1_BASE_ADDRESS, NRF_SPIS1); -#endif -#if defined(DT_NORDIC_NRF_SPIS_SPI_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIS_SPI_2_BASE_ADDRESS, NRF_SPIS2); -#endif -#if defined(DT_NORDIC_NRF_SPIS_SPI_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_SPIS_SPI_3_BASE_ADDRESS, NRF_SPIS3); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_SPU_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_SPU_BASE_ADDRESS, NRF_SPU); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_TEMP_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_TEMP_BASE_ADDRESS, NRF_TEMP); -#endif - -#if defined(DT_NORDIC_NRF_TIMER_TIMER_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TIMER_TIMER_0_BASE_ADDRESS, NRF_TIMER0); -#endif -#if defined(DT_NORDIC_NRF_TIMER_TIMER_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TIMER_TIMER_1_BASE_ADDRESS, NRF_TIMER1); -#endif -#if defined(DT_NORDIC_NRF_TIMER_TIMER_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TIMER_TIMER_2_BASE_ADDRESS, NRF_TIMER2); -#endif -#if defined(DT_NORDIC_NRF_TIMER_TIMER_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TIMER_TIMER_3_BASE_ADDRESS, NRF_TIMER3); -#endif -#if defined(DT_NORDIC_NRF_TIMER_TIMER_4_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TIMER_TIMER_4_BASE_ADDRESS, NRF_TIMER4); -#endif - -#if defined(DT_NORDIC_NRF_TWI_I2C_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWI_I2C_0_BASE_ADDRESS, NRF_TWI0); -#endif -#if defined(DT_NORDIC_NRF_TWI_I2C_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWI_I2C_1_BASE_ADDRESS, NRF_TWI1); -#endif - -#if defined(DT_NORDIC_NRF_TWIM_I2C_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIM_I2C_0_BASE_ADDRESS, NRF_TWIM0); -#endif -#if defined(DT_NORDIC_NRF_TWIM_I2C_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIM_I2C_1_BASE_ADDRESS, NRF_TWIM1); -#endif -#if defined(DT_NORDIC_NRF_TWIM_I2C_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIM_I2C_2_BASE_ADDRESS, NRF_TWIM2); -#endif -#if defined(DT_NORDIC_NRF_TWIM_I2C_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIM_I2C_3_BASE_ADDRESS, NRF_TWIM3); -#endif - -#if defined(DT_NORDIC_NRF_TWIS_I2C_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIS_I2C_0_BASE_ADDRESS, NRF_TWIS0); -#endif -#if defined(DT_NORDIC_NRF_TWIS_I2C_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIS_I2C_1_BASE_ADDRESS, NRF_TWIS1); -#endif -#if defined(DT_NORDIC_NRF_TWIS_I2C_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIS_I2C_2_BASE_ADDRESS, NRF_TWIS2); -#endif -#if defined(DT_NORDIC_NRF_TWIS_I2C_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_TWIS_I2C_3_BASE_ADDRESS, NRF_TWIS3); -#endif - -#if defined(DT_NORDIC_NRF_UART_UART_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_UART_UART_0_BASE_ADDRESS, NRF_UART0); -#endif - -#if defined(DT_NORDIC_NRF_UARTE_UART_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_UARTE_UART_0_BASE_ADDRESS, NRF_UARTE0); -#endif -#if defined(DT_NORDIC_NRF_UARTE_UART_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_UARTE_UART_1_BASE_ADDRESS, NRF_UARTE1); -#endif -#if defined(DT_NORDIC_NRF_UARTE_UART_2_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_UARTE_UART_2_BASE_ADDRESS, NRF_UARTE2); -#endif -#if defined(DT_NORDIC_NRF_UARTE_UART_3_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_UARTE_UART_3_BASE_ADDRESS, NRF_UARTE3); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_UICR_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_UICR_BASE_ADDRESS, NRF_UICR); -#endif - -#if defined(DT_NORDIC_NRF_USBD_USBD_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_USBD_USBD_0_BASE_ADDRESS, NRF_USBD); -#endif - -#if defined(DT_INST_0_NORDIC_NRF_VMC_BASE_ADDRESS) -CHECK_ADDRESS(DT_INST_0_NORDIC_NRF_VMC_BASE_ADDRESS, NRF_VMC); -#endif - -#if defined(DT_NORDIC_NRF_WATCHDOG_WDT_0_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_WATCHDOG_WDT_0_BASE_ADDRESS, NRF_WDT0); -#endif - -#if defined(DT_NORDIC_NRF_WATCHDOG_WDT_1_BASE_ADDRESS) -CHECK_ADDRESS(DT_NORDIC_NRF_WATCHDOG_WDT_1_BASE_ADDRESS, NRF_WDT1); -#endif +CHECK_DT_REG(adc, NODE_ADDRESS(adc, nordic_nrf_adc, NRF_ADC, NRF_SAADC)); +CHECK_DT_REG(clock, NRF_CLOCK); +CHECK_DT_REG(cryptocell, NRF_CRYPTOCELL); +CHECK_DT_REG(dppic, NRF_DPPIC); +CHECK_DT_REG(egu0, NRF_EGU0); +CHECK_DT_REG(egu1, NRF_EGU1); +CHECK_DT_REG(egu2, NRF_EGU2); +CHECK_DT_REG(egu3, NRF_EGU3); +CHECK_DT_REG(egu4, NRF_EGU4); +CHECK_DT_REG(egu5, NRF_EGU5); +CHECK_DT_REG(ficr, NRF_FICR); +CHECK_DT_REG(flash_controller, NRF_NVMC); +CHECK_DT_REG(gpio0, NRF_P0); +CHECK_DT_REG(gpio1, NRF_P1); +CHECK_DT_REG(gpiote, NRF_GPIOTE); +CHECK_DT_REG(i2s0, NRF_I2S0); +CHECK_DT_REG(ipc, NRF_IPC); +CHECK_DT_REG(kmu, NRF_KMU); +CHECK_DT_REG(pdm0, NRF_PDM0); +CHECK_DT_REG(power, NRF_POWER); +CHECK_DT_REG(pwm0, NRF_PWM0); +CHECK_DT_REG(pwm1, NRF_PWM1); +CHECK_DT_REG(pwm2, NRF_PWM2); +CHECK_DT_REG(pwm3, NRF_PWM3); +CHECK_DT_REG(qdec, NRF_QDEC); +CHECK_DT_REG(regulators, NRF_REGULATORS); +CHECK_DT_REG(rng, NRF_RNG); +CHECK_DT_REG(rtc0, NRF_RTC0); +CHECK_DT_REG(rtc1, NRF_RTC1); +CHECK_DT_REG(rtc2, NRF_RTC2); +CHECK_SPI_REG(spi0, 0); +CHECK_SPI_REG(spi1, 1); +CHECK_SPI_REG(spi2, 2); +CHECK_DT_REG(spi3, NRF_SPIM3); +CHECK_DT_REG(spi4, NRF_SPIM4); +CHECK_DT_REG(spu, NRF_SPU); +CHECK_DT_REG(temp, NRF_TEMP); +CHECK_DT_REG(timer0, NRF_TIMER0); +CHECK_DT_REG(timer1, NRF_TIMER1); +CHECK_DT_REG(timer2, NRF_TIMER2); +CHECK_DT_REG(timer3, NRF_TIMER3); +CHECK_DT_REG(timer4, NRF_TIMER4); +CHECK_I2C_REG(i2c0, 0); +CHECK_I2C_REG(i2c1, 1); +CHECK_DT_REG(i2c2, NRF_TWIM2); +CHECK_DT_REG(i2c3, NRF_TWIM3); +CHECK_UART_REG(uart0, 0); +CHECK_DT_REG(uart1, NRF_UARTE1); +CHECK_DT_REG(uart2, NRF_UARTE2); +CHECK_DT_REG(uart3, NRF_UARTE3); +CHECK_DT_REG(uicr, NRF_UICR); +CHECK_DT_REG(usbd, NRF_USBD); +CHECK_DT_REG(vmc, NRF_VMC); +CHECK_DT_REG(wdt, NRF_WDT0);