Currently supported nRF SoCs featuring the second GPIO port (P1) do not have all 32 pins implemented in that port. Add the "ngpios" property in gpio1 nodes for these SoCs, so that they don't take the default value of 32 to indicate the number of available pins but use instead: - 10 for nRF52833 - 16 for nRF52840 - 16 for nRF5340 (both application and network core) Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
417 lines
8.5 KiB
Text
417 lines
8.5 KiB
Text
/* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include <arm/armv7-m.dtsi>
|
|
#include <dt-bindings/i2c/i2c.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include "nrf5_common.dtsi"
|
|
|
|
/ {
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-m4f";
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
aliases {
|
|
i2c-0 = &i2c0;
|
|
i2c-1 = &i2c1;
|
|
spi-0 = &spi0;
|
|
spi-1 = &spi1;
|
|
spi-2 = &spi2;
|
|
spi-3 = &spi3;
|
|
qspi-0 = &qspi;
|
|
uart-0 = &uart0;
|
|
uart-1 = &uart1;
|
|
adc-0 = &adc;
|
|
gpio-0 = &gpio0;
|
|
gpio-1 = &gpio1;
|
|
gpiote-0 = &gpiote;
|
|
wdt-0 = &wdt;
|
|
usbd-0 = &usbd;
|
|
cc310 = &cryptocell;
|
|
arm-cryptocell-310 = &cryptocell310;
|
|
pwm-0 = &pwm0;
|
|
pwm-1 = &pwm1;
|
|
pwm-2 = &pwm2;
|
|
pwm-3 = &pwm3;
|
|
qdec-0 = &qdec;
|
|
rtc-0 = &rtc0;
|
|
rtc-1 = &rtc1;
|
|
rtc-2 = &rtc2;
|
|
timer-0 = &timer0;
|
|
timer-1 = &timer1;
|
|
timer-2 = &timer2;
|
|
timer-3 = &timer3;
|
|
timer-4 = &timer4;
|
|
};
|
|
|
|
soc {
|
|
|
|
flash-controller@4001e000 {
|
|
compatible = "nordic,nrf52-flash-controller";
|
|
reg = <0x4001e000 0x1000>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
label="NRF_FLASH_DRV_NAME";
|
|
|
|
flash0: flash@0 {
|
|
compatible = "soc-nv-flash";
|
|
label = "NRF_FLASH";
|
|
erase-block-size = <4096>;
|
|
write-block-size = <4>;
|
|
};
|
|
};
|
|
|
|
sram0: memory@20000000 {
|
|
compatible = "mmio-sram";
|
|
};
|
|
|
|
adc: adc@40007000 {
|
|
compatible = "nordic,nrf-saadc";
|
|
reg = <0x40007000 0x1000>;
|
|
interrupts = <7 1>;
|
|
status = "disabled";
|
|
label = "ADC_0";
|
|
#io-channel-cells = <1>;
|
|
};
|
|
|
|
clock: clock@40000000 {
|
|
compatible = "nordic,nrf-clock";
|
|
reg = <0x40000000 0x1000>;
|
|
interrupts = <0 1>;
|
|
status = "okay";
|
|
label = "CLOCK";
|
|
};
|
|
|
|
uart0: uart@40002000 {
|
|
/* uart can be either UART or UARTE, for the user to pick */
|
|
/* compatible = "nordic,nrf-uarte" or "nordic,nrf-uart"; */
|
|
reg = <0x40002000 0x1000>;
|
|
interrupts = <2 1>;
|
|
status = "disabled";
|
|
label = "UART_0";
|
|
};
|
|
|
|
uart1: uart@40028000 {
|
|
compatible = "nordic,nrf-uarte";
|
|
reg = <0x40028000 0x1000>;
|
|
interrupts = <40 1>;
|
|
status = "disabled";
|
|
label = "UART_1";
|
|
};
|
|
|
|
gpiote: gpiote@40006000 {
|
|
compatible = "nordic,nrf-gpiote";
|
|
reg = <0x40006000 0x1000>;
|
|
interrupts = <6 5>;
|
|
status = "disabled";
|
|
label = "GPIOTE_0";
|
|
};
|
|
|
|
gpio0: gpio@50000000 {
|
|
compatible = "nordic,nrf-gpio";
|
|
gpio-controller;
|
|
reg = <0x50000000 0x200
|
|
0x50000500 0x300>;
|
|
#gpio-cells = <2>;
|
|
label = "GPIO_0";
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio1: gpio@50000300 {
|
|
compatible = "nordic,nrf-gpio";
|
|
gpio-controller;
|
|
reg = <0x50000300 0x200
|
|
0x50000800 0x300>;
|
|
#gpio-cells = <2>;
|
|
ngpios = <16>;
|
|
label = "GPIO_1";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c0: i2c@40003000 {
|
|
/*
|
|
* This i2c node can be TWI, TWIM, or TWIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-twi" or
|
|
* "nordic,nrf-twim" or
|
|
* "nordic,nrf-twis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40003000 0x1000>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <3 1>;
|
|
status = "disabled";
|
|
label = "I2C_0";
|
|
};
|
|
|
|
i2c1: i2c@40004000 {
|
|
/*
|
|
* This i2c node can be TWI, TWIM, or TWIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-twi" or
|
|
* "nordic,nrf-twim" or
|
|
* "nordic,nrf-twis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40004000 0x1000>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <4 1>;
|
|
status = "disabled";
|
|
label = "I2C_1";
|
|
};
|
|
|
|
pwm0: pwm@4001c000 {
|
|
compatible = "nordic,nrf-pwm";
|
|
reg = <0x4001c000 0x1000>;
|
|
interrupts = <28 1>;
|
|
status = "disabled";
|
|
label = "PWM_0";
|
|
#pwm-cells = <1>;
|
|
};
|
|
|
|
pwm1: pwm@40021000 {
|
|
compatible = "nordic,nrf-pwm";
|
|
reg = <0x40021000 0x1000>;
|
|
interrupts = <33 1>;
|
|
status = "disabled";
|
|
label = "PWM_1";
|
|
#pwm-cells = <1>;
|
|
};
|
|
|
|
pwm2: pwm@40022000 {
|
|
compatible = "nordic,nrf-pwm";
|
|
reg = <0x40022000 0x1000>;
|
|
interrupts = <34 1>;
|
|
status = "disabled";
|
|
label = "PWM_2";
|
|
#pwm-cells = <1>;
|
|
};
|
|
|
|
pwm3: pwm@4002d000 {
|
|
compatible = "nordic,nrf-pwm";
|
|
reg = <0x4002d000 0x1000>;
|
|
interrupts = <45 1>;
|
|
status = "disabled";
|
|
label = "PWM_3";
|
|
#pwm-cells = <1>;
|
|
};
|
|
|
|
qdec: qdec@40012000 {
|
|
compatible = "nordic,nrf-qdec";
|
|
reg = <0x40012000 0x1000>;
|
|
interrupts = <18 1>;
|
|
status = "disabled";
|
|
label = "QDEC";
|
|
};
|
|
|
|
spi0: spi@40003000 {
|
|
/*
|
|
* This spi node can be SPI, SPIM, or SPIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-spi" or
|
|
* "nordic,nrf-spim" or
|
|
* "nordic,nrf-spis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40003000 0x1000>;
|
|
interrupts = <3 1>;
|
|
status = "disabled";
|
|
label = "SPI_0";
|
|
};
|
|
|
|
spi1: spi@40004000 {
|
|
/*
|
|
* This spi node can be SPI, SPIM, or SPIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-spi" or
|
|
* "nordic,nrf-spim" or
|
|
* "nordic,nrf-spis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40004000 0x1000>;
|
|
interrupts = <4 1>;
|
|
status = "disabled";
|
|
label = "SPI_1";
|
|
};
|
|
|
|
spi2: spi@40023000 {
|
|
/*
|
|
* This spi node can be SPI, SPIM, or SPIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-spi" or
|
|
* "nordic,nrf-spim" or
|
|
* "nordic,nrf-spis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40023000 0x1000>;
|
|
interrupts = <35 1>;
|
|
status = "disabled";
|
|
label = "SPI_2";
|
|
};
|
|
|
|
spi3: spi@4002f000 {
|
|
compatible = "nordic,nrf-spim";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x4002f000 0x1000>;
|
|
interrupts = <47 1>;
|
|
status = "disabled";
|
|
label = "SPI_3";
|
|
};
|
|
|
|
qspi: qspi@40029000 {
|
|
compatible = "nordic,nrf-qspi";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40029000 0x1000>;
|
|
interrupts = <41 1>;
|
|
status = "disabled";
|
|
label = "QSPI";
|
|
};
|
|
|
|
rtc0: rtc@4000b000 {
|
|
compatible = "nordic,nrf-rtc";
|
|
reg = <0x4000b000 0x1000>;
|
|
interrupts = <11 1>;
|
|
status = "okay";
|
|
clock-frequency = <32768>;
|
|
prescaler = <1>;
|
|
label = "RTC_0";
|
|
};
|
|
|
|
rtc1: rtc@40011000 {
|
|
compatible = "nordic,nrf-rtc";
|
|
reg = <0x40011000 0x1000>;
|
|
interrupts = <17 1>;
|
|
status = "okay";
|
|
clock-frequency = <32768>;
|
|
prescaler = <1>;
|
|
label = "RTC_1";
|
|
};
|
|
|
|
rtc2: rtc@40024000 {
|
|
compatible = "nordic,nrf-rtc";
|
|
reg = <0x40024000 0x1000>;
|
|
interrupts = <36 1>;
|
|
status = "okay";
|
|
clock-frequency = <32768>;
|
|
prescaler = <1>;
|
|
label = "RTC_2";
|
|
};
|
|
|
|
timer0: timer@40008000 {
|
|
compatible = "nordic,nrf-timer";
|
|
status = "okay";
|
|
reg = <0x40008000 0x1000>;
|
|
interrupts = <8 1>;
|
|
prescaler = <0>;
|
|
label = "TIMER_0";
|
|
};
|
|
|
|
timer1: timer@40009000 {
|
|
compatible = "nordic,nrf-timer";
|
|
status = "okay";
|
|
reg = <0x40009000 0x1000>;
|
|
interrupts = <9 1>;
|
|
prescaler = <0>;
|
|
label = "TIMER_1";
|
|
};
|
|
|
|
timer2: timer@4000a000 {
|
|
compatible = "nordic,nrf-timer";
|
|
status = "okay";
|
|
reg = <0x4000a000 0x1000>;
|
|
interrupts = <10 1>;
|
|
prescaler = <0>;
|
|
label = "TIMER_2";
|
|
};
|
|
|
|
timer3: timer@4001a000 {
|
|
compatible = "nordic,nrf-timer";
|
|
status = "okay";
|
|
reg = <0x4001a000 0x1000>;
|
|
interrupts = <26 1>;
|
|
prescaler = <0>;
|
|
label = "TIMER_3";
|
|
};
|
|
|
|
timer4: timer@4001b000 {
|
|
compatible = "nordic,nrf-timer";
|
|
status = "okay";
|
|
reg = <0x4001b000 0x1000>;
|
|
interrupts = <27 1>;
|
|
prescaler = <0>;
|
|
label = "TIMER_4";
|
|
};
|
|
|
|
temp: temp@4000c000 {
|
|
compatible = "nordic,nrf-temp";
|
|
reg = <0x4000c000 0x1000>;
|
|
interrupts = <12 1>;
|
|
status = "okay";
|
|
label = "TEMP_0";
|
|
};
|
|
|
|
usbd: usbd@40027000 {
|
|
compatible = "nordic,nrf-usbd";
|
|
reg = <0x40027000 0x1000>;
|
|
interrupts = <39 1>;
|
|
num-bidir-endpoints = <1>;
|
|
num-in-endpoints = <7>;
|
|
num-out-endpoints = <7>;
|
|
num-isoin-endpoints = <1>;
|
|
num-isoout-endpoints = <1>;
|
|
status = "disabled";
|
|
label = "USBD";
|
|
};
|
|
|
|
wdt: watchdog@40010000 {
|
|
compatible = "nordic,nrf-watchdog";
|
|
reg = <0x40010000 0x1000>;
|
|
interrupts = <16 1>;
|
|
status = "okay";
|
|
label = "WDT";
|
|
};
|
|
|
|
cryptocell: crypto@5002a000 {
|
|
compatible = "nordic,nrf-cc310";
|
|
reg = <0x5002A000 0x1000>;
|
|
label = "CRYPTOCELL";
|
|
status = "okay";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
cryptocell310: crypto@5002b000 {
|
|
compatible = "arm,cryptocell-310";
|
|
reg = <0x5002B000 0x1000>;
|
|
interrupts = <42 1>;
|
|
label = "CRYPTOCELL310";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&nvic {
|
|
arm,num-irq-priority-bits = <3>;
|
|
};
|
|
|
|
&sw_pwm {
|
|
timer-instance = <2>;
|
|
channel-count = <3>;
|
|
clock-prescaler = <0>;
|
|
ppi-base = <14>;
|
|
gpiote-base = <0>;
|
|
#pwm-cells = <1>;
|
|
};
|