| /* 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; |
| uart-0 = &uart0; |
| adc-0 = &adc; |
| gpio-0 = &gpio0; |
| gpiote-0 = &gpiote; |
| wdt-0 = &wdt; |
| pwm-0 = &pwm0; |
| pwm-1 = &pwm1; |
| pwm-2 = &pwm2; |
| 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"; |
| }; |
| |
| 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 0x1000>; |
| #gpio-cells = <2>; |
| label = "GPIO_0"; |
| 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>; |
| }; |
| |
| 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"; |
| }; |
| |
| 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"; |
| }; |
| |
| wdt: watchdog@40010000 { |
| compatible = "nordic,nrf-watchdog"; |
| reg = <0x40010000 0x1000>; |
| interrupts = <16 1>; |
| status = "okay"; |
| label = "WDT"; |
| }; |
| }; |
| }; |
| |
| &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>; |
| }; |