This commit introduces separate "compatible" strings for DTS nodes representing different types of Nordic SPI peripherals. Previously "nordic,nrf-spi" was used for both SPI and SPIM. SPIS was already handled separately. Quite a few files need to be touched by this commit but the changes can be divided into groups of related or very similar ones, distinguishable by the initial part of the path to the modified file: * dts/bindings/spi/ new binding for "nordic,nrf-spim" is added and common fields for all 3 types of Nordic SPI peripherals are extracted to a shared file * dts/arm/nordic/ "compatible" properties in spiX nodes are updated (when there is no choice as only one type of SPI peripheral is available) or replaced with a comment pointing out that the proper type of peripheral needs to be picked at some upper layer * drivers/spi/ spi_nrfx_spim driver is updated with the new form of macros generated from dts * boards/ all spiX nodes in dts files for boards equipped with an nRF chip are updated with the proper "compatible" property, according to the type of SPI peripheral that is currently selected for the board by the corresponding Kconfig choice option (SPI_x_NRF_SPI*) Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
237 lines
4.5 KiB
Text
237 lines
4.5 KiB
Text
/* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include <arm/armv6-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-m0";
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
aliases {
|
|
i2c-0 = &i2c0;
|
|
i2c-1 = &i2c1;
|
|
spi-0 = &spi0;
|
|
spi-1 = &spi1;
|
|
uart-0 = &uart0;
|
|
adc-0 = &adc;
|
|
gpio-0 = &gpio0;
|
|
gpiote-0 = &gpiote;
|
|
wdt-0 = &wdt;
|
|
qdec-0 = &qdec;
|
|
rtc-0 = &rtc0;
|
|
rtc-1 = &rtc1;
|
|
timer-0 = &timer0;
|
|
timer-1 = &timer1;
|
|
timer-2 = &timer2;
|
|
};
|
|
|
|
soc {
|
|
|
|
flash-controller@4001e000 {
|
|
compatible = "nordic,nrf51-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 = <1024>;
|
|
write-block-size = <4>;
|
|
};
|
|
};
|
|
|
|
sram0: memory@20000000 {
|
|
compatible = "mmio-sram";
|
|
};
|
|
|
|
adc: adc@40007000 {
|
|
compatible = "nordic,nrf-adc";
|
|
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 {
|
|
compatible = "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 1>;
|
|
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 {
|
|
compatible = "nordic,nrf-twi";
|
|
#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 {
|
|
compatible = "nordic,nrf-twi";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40004000 0x1000>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <4 1>;
|
|
status = "disabled";
|
|
label = "I2C_1";
|
|
};
|
|
|
|
qdec: qdec@40012000 {
|
|
compatible = "nordic,nrf-qdec";
|
|
reg = <0x40012000 0x1000>;
|
|
interrupts = <18 1>;
|
|
status = "disabled";
|
|
label = "QDEC";
|
|
};
|
|
|
|
spi0: spi@40003000 {
|
|
compatible = "nordic,nrf-spi";
|
|
#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 either SPI or SPIS,
|
|
* for the user to pick:
|
|
* compatible = "nordic,nrf-spi" or
|
|
* "nordic,nrf-spis".
|
|
*/
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x40004000 0x1000>;
|
|
interrupts = <4 1>;
|
|
status = "disabled";
|
|
label = "SPI_1";
|
|
};
|
|
|
|
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";
|
|
};
|
|
|
|
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";
|
|
};
|
|
|
|
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 = <2>;
|
|
};
|
|
|
|
/delete-node/ &systick;
|
|
|
|
|
|
&sw_pwm {
|
|
timer-instance = <1>;
|
|
channel-count = <3>;
|
|
clock-prescaler = <0>;
|
|
ppi-base = <7>;
|
|
gpiote-base = <0>;
|
|
status = "okay";
|
|
};
|