# nRF52840 PCA10090 board configuration

# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52840_PCA10090

config BOARD_ENABLE_DCDC
	bool "Enable DCDC mode"
	select SOC_DCDC_NRF52X
	default y

choice
	prompt "nRF9160 UART0 routing"
	default BOARD_PCA10090_UART0_VCOM

config BOARD_PCA10090_UART0_VCOM
	bool "Route to VCOM0"

config BOARD_PCA10090_UART0_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "nRF9160 UART1 routing"
	default BOARD_PCA10090_UART1_VCOM

config BOARD_PCA10090_UART1_VCOM
	bool "Route to VCOM2"

config BOARD_PCA10090_UART1_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "LED 1 routing"
	default BOARD_PCA10090_LED0_PHY

config BOARD_PCA10090_LED0_PHY
	bool "Route to LED on the kit"

config BOARD_PCA10090_LED0_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "LED 2 routing"
	default BOARD_PCA10090_LED1_PHY

config BOARD_PCA10090_LED1_PHY
	bool "Route to LED on the kit"

config BOARD_PCA10090_LED1_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "LED 3 routing"
	default BOARD_PCA10090_LED2_PHY

config BOARD_PCA10090_LED2_PHY
	bool "Route to LED on the kit"

config BOARD_PCA10090_LED2_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "LED 4 routing"
	default BOARD_PCA10090_LED3_PHY

config BOARD_PCA10090_LED3_PHY
	bool "Route to LED on the kit"

config BOARD_PCA10090_LED3_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "Button 1 routing"
	default BOARD_PCA10090_BUTTON0_PHY

config BOARD_PCA10090_BUTTON0_PHY
	bool "Route to buttons on the kit"

config BOARD_PCA10090_BUTTON0_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "Button 2 routing"
	default BOARD_PCA10090_BUTTON1_PHY

config BOARD_PCA10090_BUTTON1_PHY
	bool "Route to buttons on the kit"

config BOARD_PCA10090_BUTTON1_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "Switch 1 routing"
	default BOARD_PCA10090_SWITCH0_PHY

config BOARD_PCA10090_SWITCH0_PHY
	bool "Route to switches on the kit"

config BOARD_PCA10090_SWITCH0_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "Switch 2 routing"
	default BOARD_PCA10090_SWITCH1_PHY

config BOARD_PCA10090_SWITCH1_PHY
	bool "Route to switches on the kit"

config BOARD_PCA10090_SWITCH1_ARDUINO
	bool "Route to Arduino pins"

endchoice

choice
	prompt "Interface pins 0-2"
	default BOARD_PCA10090_INTERFACE0_ARDUINO

config BOARD_PCA10090_INTERFACE0_ARDUINO
	bool "Route to Arduino pins"
	help
	  Pin 0: nRF9160 P0.17 connects to A3
	  Pin 1: nRF9160 P0.18 connects to A4
	  Pin 2: nRF9160 P0.19 connects to A5

config BOARD_PCA10090_INTERFACE0_MCU
	bool "Route to nRF52840"
	help
	  This connects the following pins on the nRF9160 to pins on the nRF52840:
	  Pin 0: nRF9160 P0.17 connects to nRF52840 P0.17
	  Pin 1: nRF9160 P0.18 connects to nRF52840 P0.20
	  Pin 2: nRF9160 P0.19 connects to nRF52840 P0.15

endchoice

choice
	prompt "Interface pins 3-5"
	default BOARD_PCA10090_INTERFACE1_TRACE

config BOARD_PCA10090_INTERFACE1_TRACE
	bool "Route to TRACE interface"
	help
	  Pin 3: nRF9160 P0.21 connects to TRACECLK
	  Pin 4: nRF9160 P0.22 connects to TRACEDATA0
	  Pin 5: nRF9160 P0.23 connects to TRACEDATA1

config BOARD_PCA10090_INTERFACE1_MCU
	bool "Route to nRF52840"
	help
	  Pin 3: nRF9160 P0.21 connects to nRF52840 P0.22
	  Pin 4: nRF9160 P0.22 connects to nRF52840 P1.04
	  Pin 5: nRF9160 P0.23 connects to nRF52840 P1.02

endchoice

choice
	prompt "Interface pins 6-8"
	default BOARD_PCA10090_INTERFACE2_COEX

config BOARD_PCA10090_INTERFACE2_COEX
	bool "Route to COEX interface"
	help
	  Pin 6: nRF9160 COEX0 connects to COEX0_PH
	  Pin 7: nRF9160 COEX1 connects to COEX1_PH
	  Pin 8: nRF9160 COEX2 connects to COEX2_PH

config BOARD_PCA10090_INTERFACE2_MCU
	bool "Route to nRF52840"
	help
	  Pin 6: nRF9160 COEX0 connects to nRF52840 P1.13
	  Pin 7: nRF9160 COEX1 connects to nRF52840 P1.11
	  Pin 8: nRF9160 COEX2 connects to nRF52840 P1.15

endchoice

config BOARD_PCA10090_NRF52840_RESET
	bool "Enable GPIO reset line"
	help
	  Let the nRF52840 be reset from the nRF9160 via a GPIO line.
	  The GPIO line may only be one of the first 6 MCU interface pins.
	  The line is active high.

choice
	prompt "Pin used for reset"
	depends on BOARD_PCA10090_NRF52840_RESET

comment "nRF52840 pins"

config BOARD_PCA10090_NRF52840_RESET_P0_17
	bool "P0.17"
	depends on BOARD_PCA10090_INTERFACE0_MCU
	help
	  Pin P0.17 on nRF52840,
	  connected to P0.17 on the nRF9160.

config BOARD_PCA10090_NRF52840_RESET_P0_20
	bool "P0.20"
	depends on BOARD_PCA10090_INTERFACE0_MCU
	help
	  Pin P0.20 on nRF52840,
	  connected to P0.18 on the nRF9160.

config BOARD_PCA10090_NRF52840_RESET_P0_15
	bool "P0.15"
	depends on BOARD_PCA10090_INTERFACE0_MCU
	help
	  Pin P0.15 on nRF52840,
	  connected to P0.19 on the nRF9160.

config BOARD_PCA10090_NRF52840_RESET_P0_22
	bool "P0.22"
	depends on BOARD_PCA10090_INTERFACE1_MCU
	help
	  Pin P0.22 on nRF52840,
	  connected to P0.21 on the nRF9160.

config BOARD_PCA10090_NRF52840_RESET_P1_04
	bool "P1.04"
	depends on BOARD_PCA10090_INTERFACE1_MCU
	help
	  Pin P1.04 on nRF52840,
	  connected to P0.22 on the nRF9160.

config BOARD_PCA10090_NRF52840_RESET_P1_02
	bool "P1.02"
	depends on BOARD_PCA10090_INTERFACE1_MCU
	help
	  Pin P1.02 on nRF52840,
	  connected to P0.23 on the nRF9160.

endchoice

module = BOARD_PCA10090
module-str = Board Control
source "subsys/logging/Kconfig.template.log_config"

endif # BOARD_NRF52840_PCA10090
