117 lines
4.3 KiB
Plaintext
117 lines
4.3 KiB
Plaintext
# Copyright (c) 2017 - 2018, Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig SPI_NRFX
|
|
bool "nRF SPI nrfx drivers"
|
|
default y
|
|
depends on SOC_FAMILY_NORDIC_NRF
|
|
depends on MULTITHREADING
|
|
select PINCTRL
|
|
help
|
|
Enable support for nrfx SPI drivers for nRF MCU series.
|
|
|
|
if SPI_NRFX
|
|
|
|
config SPI_NRFX_SPI
|
|
def_bool y
|
|
depends on DT_HAS_NORDIC_NRF_SPI_ENABLED
|
|
select NRFX_SPI0 if HAS_HW_NRF_SPI0
|
|
select NRFX_SPI1 if HAS_HW_NRF_SPI1
|
|
select NRFX_SPI2 if HAS_HW_NRF_SPI2
|
|
|
|
config SPI_NRFX_SPIM
|
|
def_bool y
|
|
depends on DT_HAS_NORDIC_NRF_SPIM_ENABLED
|
|
select NRFX_SPIM0 if HAS_HW_NRF_SPIM0
|
|
select NRFX_SPIM1 if HAS_HW_NRF_SPIM1
|
|
select NRFX_SPIM2 if HAS_HW_NRF_SPIM2
|
|
select NRFX_SPIM3 if HAS_HW_NRF_SPIM3
|
|
select NRFX_SPIM4 if HAS_HW_NRF_SPIM4
|
|
select NRFX_SPIM00 if HAS_HW_NRF_SPIM00
|
|
select NRFX_SPIM20 if HAS_HW_NRF_SPIM20
|
|
select NRFX_SPIM21 if HAS_HW_NRF_SPIM21
|
|
select NRFX_SPIM22 if HAS_HW_NRF_SPIM22
|
|
select NRFX_SPIM30 if HAS_HW_NRF_SPIM30
|
|
select NRFX_SPIM120 if HAS_HW_NRF_SPIM120
|
|
select NRFX_SPIM121 if HAS_HW_NRF_SPIM121
|
|
select NRFX_SPIM130 if HAS_HW_NRF_SPIM130
|
|
select NRFX_SPIM131 if HAS_HW_NRF_SPIM131
|
|
select NRFX_SPIM132 if HAS_HW_NRF_SPIM132
|
|
select NRFX_SPIM133 if HAS_HW_NRF_SPIM133
|
|
select NRFX_SPIM134 if HAS_HW_NRF_SPIM134
|
|
select NRFX_SPIM135 if HAS_HW_NRF_SPIM135
|
|
select NRFX_SPIM136 if HAS_HW_NRF_SPIM136
|
|
select NRFX_SPIM137 if HAS_HW_NRF_SPIM137
|
|
|
|
config SPI_NRFX_SPIS
|
|
def_bool y
|
|
depends on DT_HAS_NORDIC_NRF_SPIS_ENABLED
|
|
select SPI_SLAVE
|
|
select NRFX_SPIS0 if HAS_HW_NRF_SPIS0
|
|
select NRFX_SPIS1 if HAS_HW_NRF_SPIS1
|
|
select NRFX_SPIS2 if HAS_HW_NRF_SPIS2
|
|
select NRFX_SPIS3 if HAS_HW_NRF_SPIS3
|
|
select NRFX_SPIS00 if HAS_HW_NRF_SPIS00
|
|
select NRFX_SPIS20 if HAS_HW_NRF_SPIS20
|
|
select NRFX_SPIS21 if HAS_HW_NRF_SPIS21
|
|
select NRFX_SPIS22 if HAS_HW_NRF_SPIS22
|
|
select NRFX_SPIS30 if HAS_HW_NRF_SPIS30
|
|
select NRFX_SPIS120 if HAS_HW_NRF_SPIS120
|
|
select NRFX_SPIS130 if HAS_HW_NRF_SPIS130
|
|
select NRFX_SPIS131 if HAS_HW_NRF_SPIS131
|
|
select NRFX_SPIS132 if HAS_HW_NRF_SPIS132
|
|
select NRFX_SPIS133 if HAS_HW_NRF_SPIS133
|
|
select NRFX_SPIS134 if HAS_HW_NRF_SPIS134
|
|
select NRFX_SPIS135 if HAS_HW_NRF_SPIS135
|
|
select NRFX_SPIS136 if HAS_HW_NRF_SPIS136
|
|
select NRFX_SPIS137 if HAS_HW_NRF_SPIS137
|
|
|
|
config SOC_NRF52832_ALLOW_SPIM_DESPITE_PAN_58
|
|
depends on SOC_NRF52832
|
|
select NRFX_PPI
|
|
bool "Allow enabling the SPIM driver despite PAN 58"
|
|
help
|
|
Allow enabling the nRF SPI Master with EasyDMA, despite
|
|
Product Anomaly Notice 58 (SPIM: An additional byte is
|
|
clocked out when RXD.MAXCNT == 1 and TXD.MAXCNT <= 1).
|
|
Without this override, the SPI Master is only available
|
|
without EasyDMA. Note that the 'SPIM' and 'SPIS' drivers
|
|
use EasyDMA, while the 'SPI' driver does not.
|
|
When used in conjunction with nRF SPIM Devicetree property
|
|
'anomaly-58-workaround' a workaround can be enabled per SPIM
|
|
instance. If you are certain that transactions with
|
|
RXD.MAXCNT == 1 and TXD.MAXCNT <= 1 will NOT be executed
|
|
then nRF52832 PPI and GPIOTE resources can be saved by not
|
|
enabling 'anomaly-58-workaround' via the Devicetree.
|
|
|
|
config SPI_NRFX_RAM_BUFFER_SIZE
|
|
int "Size of RAM buffers for SPIM peripherals"
|
|
default 8
|
|
depends on SPI_NRFX_SPIM
|
|
help
|
|
Because of using EasyDMA, SPIM peripherals cannot use transmit and
|
|
receive buffers from all memory locations. They are restricted to
|
|
buffers located in certain RAM memories only. Therefore, each SPIM
|
|
driver instance needs to use an intermediate local RAM buffer,
|
|
to transfer data in chunks not exceeding the size of that buffer,
|
|
and to copy those chunks between the local buffer and the one
|
|
specified in the transfer request if the latter is not accessible
|
|
by EasyDMA.
|
|
|
|
This option specifies the size in bytes of such local RAM buffers
|
|
for both TX and RX paths. A size of 0 means that this feature should
|
|
be disabled and the driver user must take care of not making transfer
|
|
requests with buffers not accessible by EasyDMA since such transfers
|
|
will fail.
|
|
|
|
config SPI_NRFX_WAKE_TIMEOUT_US
|
|
int "Maximum time to wait for SPI slave to wake up"
|
|
default 200
|
|
help
|
|
Maximum amount of time (in microseconds) that SPI master should wait
|
|
for SPI slave to wake up after the WAKE line is asserted. Used only
|
|
by instances that have the WAKE line configured (see the wake-gpios
|
|
devicetree property).
|
|
|
|
endif # SPI_NRFX
|