346 lines
7.3 KiB
Plaintext
346 lines
7.3 KiB
Plaintext
# Copyright (c) 2017 - 2018, Nordic Semiconductor ASA
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
menuconfig SPI_NRFX
|
|
bool "nRF SPI nrfx drivers"
|
|
depends on SOC_FAMILY_NRF
|
|
help
|
|
Enable support for nrfx SPI drivers for nRF MCU series.
|
|
Peripherals with the same instance ID cannot be used together,
|
|
e.g. SPI_0 and I2C_0. You may need to disable I2C_0 or I2C_1.
|
|
|
|
if SPI_NRFX
|
|
|
|
# Nordic TWIx0 and SPIx0 instances can not be used at the same time.
|
|
if SPI_0 && !I2C_0
|
|
|
|
choice
|
|
prompt "SPI Port 0 Driver type"
|
|
optional
|
|
|
|
config SPI_0_NRF_SPI
|
|
bool "nRF SPI 0"
|
|
depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF51X
|
|
select NRFX_SPI
|
|
help
|
|
Enable nRF SPI Master without EasyDMA on port 0.
|
|
|
|
config SPI_0_NRF_SPIM
|
|
bool "nRF SPIM 0"
|
|
depends on SOC_NRF52840
|
|
select NRFX_SPIM
|
|
help
|
|
Enable nRF SPI Master with EasyDMA on port 0.
|
|
|
|
config SPI_0_NRF_SPIS
|
|
bool "nRF SPIS 0"
|
|
depends on SOC_SERIES_NRF52X
|
|
select SPI_SLAVE
|
|
select NRFX_SPIS
|
|
help
|
|
Enable nRF SPI Slave with EasyDMA on port 0.
|
|
Due to hardware limitations the implementation supports only simple
|
|
buffers (consisting of one part) located in RAM.
|
|
|
|
endchoice
|
|
|
|
if SPI_0_NRF_SPI || SPI_0_NRF_SPIM || SPI_0_NRF_SPIS
|
|
|
|
config SPI_0_NRF_SCK_PIN
|
|
int "SCK pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for SCK.
|
|
|
|
config SPI_0_NRF_MOSI_PIN
|
|
int "MOSI pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MOSI.
|
|
|
|
config SPI_0_NRF_MISO_PIN
|
|
int "MISO pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MISO.
|
|
|
|
config SPI_0_NRF_ORC
|
|
hex "Over-read Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Over-read character. Character clocked out after an over-read
|
|
of the transmit buffer.
|
|
|
|
endif # SPI_0_NRF_SPI || SPI_0_NRF_SPIM || SPI_0_NRF_SPIS
|
|
|
|
if SPI_0_NRF_SPIS
|
|
|
|
config SPI_0_NRF_CSN_PIN
|
|
int "CSN pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for Chip Select.
|
|
|
|
config SPI_0_NRF_DEF
|
|
hex "Default Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Default character. Character clocked out when the slave was not
|
|
provided with buffers and is ignoring the transaction.
|
|
|
|
endif # SPI_0_NRF_SPIS
|
|
|
|
endif # SPI_0 && !I2C_0
|
|
|
|
# Nordic TWIx1 and SPIx1 instances can not be used at the same time.
|
|
if SPI_1 && !I2C_1
|
|
|
|
choice
|
|
prompt "SPI Port 1 Driver type"
|
|
optional
|
|
|
|
config SPI_1_NRF_SPI
|
|
bool "nRF SPI 1"
|
|
depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF51X
|
|
select NRFX_SPI
|
|
help
|
|
Enable nRF SPI Master without EasyDMA on port 1.
|
|
|
|
config SPI_1_NRF_SPIM
|
|
bool "nRF SPIM 1"
|
|
depends on SOC_NRF52840
|
|
select NRFX_SPIM
|
|
help
|
|
Enable nRF SPI Master with EasyDMA on port 1.
|
|
|
|
config SPI_1_NRF_SPIS
|
|
bool "nRF SPIS 1"
|
|
depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF51X
|
|
select SPI_SLAVE
|
|
select NRFX_SPIS
|
|
help
|
|
Enable nRF SPI Slave with EasyDMA on port 1.
|
|
Due to hardware limitations the implementation supports only simple
|
|
buffers (consisting of one part) located in RAM.
|
|
|
|
endchoice
|
|
|
|
if SPI_1_NRF_SPI || SPI_1_NRF_SPIM || SPI_1_NRF_SPIS
|
|
|
|
config SPI_1_NRF_SCK_PIN
|
|
int "SCK pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for SCK.
|
|
|
|
config SPI_1_NRF_MOSI_PIN
|
|
int "MOSI pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MOSI.
|
|
|
|
config SPI_1_NRF_MISO_PIN
|
|
int "MISO pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MISO.
|
|
|
|
config SPI_1_NRF_ORC
|
|
hex "Over-read Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Over-read character. Character clocked out after an over-read
|
|
of the transmit buffer.
|
|
|
|
endif # SPI_1_NRF_SPI || SPI_1_NRF_SPIM || SPI_1_NRF_SPIS
|
|
|
|
if SPI_1_NRF_SPIS
|
|
|
|
config SPI_1_NRF_CSN_PIN
|
|
int "CSN pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for Chip Select.
|
|
|
|
config SPI_1_NRF_DEF
|
|
hex "Default Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Default character. Character clocked out when the slave was not
|
|
provided with buffers and is ignoring the transaction.
|
|
|
|
endif # SPI_1_NRF_SPIS
|
|
|
|
endif # SPI_1 && !I2C_1
|
|
|
|
if SPI_2
|
|
|
|
choice
|
|
prompt "SPI Port 2 Driver type"
|
|
optional
|
|
|
|
config SPI_2_NRF_SPI
|
|
bool "nRF SPI 2"
|
|
depends on SOC_SERIES_NRF52X
|
|
select NRFX_SPI
|
|
help
|
|
Enable nRF SPI Master without EasyDMA on port 2.
|
|
|
|
config SPI_2_NRF_SPIM
|
|
bool "nRF SPIM 2"
|
|
depends on SOC_NRF52840
|
|
select NRFX_SPIM
|
|
help
|
|
Enable nRF SPI Master with EasyDMA on port 2.
|
|
|
|
config SPI_2_NRF_SPIS
|
|
bool "nRF SPIS 2"
|
|
depends on SOC_SERIES_NRF52X
|
|
select SPI_SLAVE
|
|
select NRFX_SPIS
|
|
help
|
|
Enable nRF SPI Slave with EasyDMA on port 2.
|
|
Due to hardware limitations the implementation supports only simple
|
|
buffers (consisting of one part) located in RAM.
|
|
|
|
endchoice
|
|
|
|
if SPI_2_NRF_SPI || SPI_2_NRF_SPIM || SPI_2_NRF_SPIS
|
|
|
|
config SPI_2_NRF_SCK_PIN
|
|
int "SCK pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for SCK.
|
|
|
|
config SPI_2_NRF_MOSI_PIN
|
|
int "MOSI pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MOSI.
|
|
|
|
config SPI_2_NRF_MISO_PIN
|
|
int "MISO pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MISO.
|
|
|
|
config SPI_2_NRF_ORC
|
|
hex "Over-read Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Over-read character. Character clocked out after an over-read
|
|
of the transmit buffer.
|
|
|
|
endif # SPI_2_NRF_SPI || SPI_2_NRF_SPIM || SPI_2_NRF_SPIS
|
|
|
|
if SPI_2_NRF_SPIS
|
|
|
|
config SPI_2_NRF_CSN_PIN
|
|
int "CSN pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for Chip Select.
|
|
|
|
config SPI_2_NRF_DEF
|
|
hex "Default Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Default character. Character clocked out when the slave was not
|
|
provided with buffers and is ignoring the transaction.
|
|
|
|
endif # SPI_2_NRF_SPIS
|
|
|
|
endif # SPI_2
|
|
|
|
if SPI_3
|
|
|
|
config SPI_3_NRF_SPIM
|
|
bool
|
|
depends on SOC_NRF52840
|
|
select NRFX_SPIM
|
|
default y
|
|
|
|
if SPI_3_NRF_SPIM
|
|
|
|
config SPI_3_NRF_SCK_PIN
|
|
int "SCK pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for SCK
|
|
|
|
config SPI_3_NRF_MOSI_PIN
|
|
int "MOSI pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MOSI
|
|
|
|
config SPI_3_NRF_MISO_PIN
|
|
int "MISO pin number"
|
|
range 0 47 if SOC_NRF52840_QIAA
|
|
range 0 31
|
|
help
|
|
GPIO pin number to use for MISO
|
|
|
|
config SPI_3_NRF_ORC
|
|
hex "Over-read Character"
|
|
range 0x00 0xff
|
|
default 0xff
|
|
help
|
|
Over-read character. Character clocked out after an over-read
|
|
of the transmit buffer.
|
|
|
|
config SPI_3_NRF_RX_DELAY
|
|
int "MISO sampling delay"
|
|
range 0 7
|
|
default 0
|
|
help
|
|
Number of 64 MHz clock cycles (15.625 ns) delay from the sampling
|
|
edge of SCK (leading or trailing, depending on the CPHA setting used)
|
|
until the input serial data on MISO is actually sampled.
|
|
|
|
endif # SPI_3_NRF_SPIM
|
|
|
|
endif # SPI_3
|
|
|
|
if NRFX_SPIM
|
|
|
|
config SPI_NRFX_RAM_BUFFER_SIZE
|
|
int "Size of RAM buffer"
|
|
default 0
|
|
help
|
|
SPIM peripherals cannot transmit data directly from flash. Therefore,
|
|
a buffer in RAM needs to be provided for each instance of SPI driver
|
|
using SPIM peripheral, so that the driver can copy there a chunk of
|
|
data from flash and transmit it.
|
|
The size is specified in bytes. A size of 0 means that this feature
|
|
should be disabled, and the application must then take care of not
|
|
supplying buffers located in flash to the driver, otherwise such
|
|
transfers will fail.
|
|
|
|
endif # NRFX_SPIM
|
|
|
|
endif # SPI_NRFX
|