blob: af106ecaebe5262728eae7000a50374e13447878 [file] [log] [blame]
# Kconfig - nrf5 series MDK SPI support
#
# Copyright (c) 2017, Intel Corp.
# Copyright (c) 2016-2017, Linaro Limited.
#
# SPDX-License-Identifier: Apache-2.0
#
# TODO add nrf51 master
menuconfig SPI_NRF5
bool "nRF5 SPI drivers"
depends on SPI && SOC_FAMILY_NRF5 && GPIO_NRF5_P0
default n
help
Enable support for nRF5 MCU series SPI drivers. Peripherals
with the same instance id can not be used together, e.g., SPIM0 and I2C_0
(TWIM0) and SPIS0. You may need to disable I2C_0 or I2C_1.
if SPI_NRF5
# nordic twiX0, spiX0, spi0 instances can not be used at the same time
if SPI_0 && !I2C_0
choice
prompt "SPI Port 0 Driver type"
optional
# TODO: rename to SPIM0_NRF5 when nRF51 SPIM driver is available.
config SPIM0_NRF52
bool "nRF52 SPIM0"
depends on SOC_SERIES_NRF52X
help
nRF52 SPI Master with EasyDMA on port 0
# On nRF51, SPI0 is SPIM-only.
config SPIS0_NRF52
bool "nRF52 SPIS0"
depends on SOC_SERIES_NRF52X
help
nRF51 and nRF52 SPI Slave with EasyDMA on port 0
endchoice
if SPIM0_NRF52
config SPIM0_NRF52_GPIO_SCK_PIN
int "SCK pin number"
range 0 31
help
GPIO pin number for SCK
config SPIM0_NRF52_GPIO_MOSI_PIN
int "MOSI pin number"
range 0 31
help
GPIO pin number to use for MOSI
config SPIM0_NRF52_GPIO_MISO_PIN
int "MISO pin number"
range 0 31
help
GPIO pin number for MISO
config SPIM0_NRF52_GPIO_SS_PIN_0
int "CS0 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM0_NRF52_GPIO_SS_PIN_1
int "CS1 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM0_NRF52_GPIO_SS_PIN_2
int "CS2 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM0_NRF52_GPIO_SS_PIN_3
int "CS3 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM0_NRF52_ORC
hex "Over Read Character"
default 0x00
range 0x00 0xff
help
This option configures what value to send when the TX char count is
less than the RX count.
endif # SPIM0_NRF52
if SPIS0_NRF52
config SPIS0_NRF52_GPIO_SCK_PIN
int "SCK pin number"
range 0 31
help
GPIO pin number for SCK
config SPIS0_NRF52_GPIO_MOSI_PIN
int "MOSI pin number"
range 0 31
help
GPIO pin number for MOSI
config SPIS0_NRF52_GPIO_MISO_PIN
int "MISO pin number"
range 0 31
help
GPIO pin number for MISO
config SPIS0_NRF52_GPIO_CSN_PIN
int "CSN pin number"
range 0 255
default 255
help
GPIO pin number for slave select (chip select). Not used value
is 255 (0xff).
config SPIS0_NRF52_DEF
hex "Default character"
default 0
help
Default character. Character clocked out in case of an ignored
transaction.
endif # SPIS0_NRF5
endif # SPI_0 && !I2C_0
# nordic twiX1, spiX1, spi1 instances can not be use at the same time
if SPI_1 && !I2C_1
choice
prompt "SPI Port 1 Driver type"
optional
config SPIM1_NRF52
bool "nRF52 SPIM1"
depends on SOC_SERIES_NRF52X
help
nRF52 SPI Master with EasyDMA on port 0
config SPIS1_NRF5
bool "nRF5 SPIS1"
depends on (SOC_SERIES_NRF52X || SOC_SERIES_NRF51X)
help
nRF51 and nRF52 SPI Slave with EasyDMA on port 1
endchoice
if SPIM1_NRF52
config SPIM1_NRF52_GPIO_SCK_PIN
int "SCK pin number"
range 0 31
help
GPIO pin number for SCK
config SPIM1_NRF52_GPIO_MOSI_PIN
int "MOSI pin number"
range 0 31
help
GPIO pin number to use for MOSI
config SPIM1_NRF52_GPIO_MISO_PIN
int "MISO pin number"
range 0 31
help
GPIO pin number for MISO
config SPIM1_NRF52_GPIO_SS_PIN_0
int "CS0 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM1_NRF52_GPIO_SS_PIN_1
int "CS1 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM1_NRF52_GPIO_SS_PIN_2
int "CS2 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM1_NRF52_GPIO_SS_PIN_3
int "CS3 pin number"
range 0 255
default 255
help
Slave Select (Chip Select) gpio pin number for line n. Not used value
is 255 (0xff).
config SPIM1_NRF52_ORC
hex "Over Read Character"
default 0x00
range 0x00 0xff
help
This option configures what value to send when the TX char count is
less than the RX count.
endif # SPIM1_NRF52
if SPIS1_NRF5
config SPIS1_NRF5_GPIO_SCK_PIN
int "SCK pin number"
range 0 31
help
GPIO pin number for SCK
config SPIS1_NRF5_GPIO_MOSI_PIN
int "MOSI pin number"
range 0 31
help
GPIO pin number for MOSI
config SPIS1_NRF5_GPIO_MISO_PIN
int "MISO pin number"
range 0 31
help
GPIO pin number for MISO
config SPIS1_NRF5_GPIO_CSN_PIN
int "CSN pin number"
range 0 255
default 255
help
GPIO pin number for slave select (chip select). Not used value
is 255 (0xff).
config SPIS1_NRF5_DEF
hex "Default character"
default 0
help
Default character. Character clocked out in case of an ignored
transaction.
endif # SPIS1_NRF5
endif # SPI_1 && !I2C_1
# hidden compile options
config SPIM_NRF52
bool
depends on !I2C_0 || !I2C_1
default y if (SPIM0_NRF52 || SPIM1_NRF52)
config SPIS_NRF5
bool
depends on !I2C_0 || !I2C_1
default y if (SPIS0_NRF52 || SPIS1_NRF5)
endif # SPI_NRF5