# Atmel SAM SPI

# Copyright (c) 2019 Gerson Fernando Budke
# Copyright (c) 2018 qianfan Zhao
# SPDX-License-Identifier: Apache-2.0

menuconfig SPI_SAM
	bool "Atmel SAM series SPI driver"
	default y
	depends on SOC_FAMILY_SAM
	help
	  Enable support for the SAM SPI driver.

config SPI_SAM_PORT_0
	bool "Enable SPI0"
	depends on SPI_SAM
	select SPI_0
	help
	  Enable SPI0 at boot

if SPI_SAM_PORT_0

choice SPI_SAM_PORT_0_PIN_CS0
	bool "CS0 pin"
	optional
	depends on SOC_SERIES_SAM4S || \
		   SOC_SERIES_SAM4E || \
		   SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_0_PIN_CS0_PA11
		bool "PA11"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS0_PB2
		bool "PB2"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_0_PIN_CS1
	bool "CS1 pin"
	optional
	depends on SOC_SERIES_SAM4S || \
		   SOC_SERIES_SAM4E || \
		   SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_0_PIN_CS1_PA9
		bool "PA9"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS1_PA31
		bool "PA31"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E || \
			   SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_0_PIN_CS1_PB14
		bool "PB14"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS1_PC4
		bool "PC4"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS1_PD25
		bool "PD25"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_0_PIN_CS2
	bool "CS2 pin"
	optional
	depends on SOC_SERIES_SAM4S || \
		   SOC_SERIES_SAM4E || \
		   SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_0_PIN_CS2_PA10
		bool "PA10"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS2_PA30
		bool "PA30"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS2_PB2
		bool "PB2"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS2_PD12
		bool "PD12"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_0_PIN_CS3
	bool "CS3 pin"
	optional
	depends on SOC_SERIES_SAM4S || \
		   SOC_SERIES_SAM4E || \
		   SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_0_PIN_CS3_PA3
		bool "PA3"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS3_PA5
		bool "PA5"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS3_PA22
		bool "PA22"
		depends on SOC_SERIES_SAM4S || \
			   SOC_SERIES_SAM4E

	config SPI_SAM_PORT_0_PIN_CS3_PD27
		bool "PD27"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

endif # SPI_SAM_PORT_0

config SPI_SAM_PORT_1
	bool "Enable SPI1"
	depends on SPI_SAM && \
		   (SOC_SERIES_SAME70 || \
		    SOC_SERIES_SAMV71)
	select SPI_1
	help
	  Enable SPI1 at boot

if SPI_SAM_PORT_1

choice SPI_SAM_PORT_1_PIN_CS0
	bool "CS0 pin"
	optional
	depends on SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS0_PC25
		bool "PC25"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_1_PIN_CS1
	prompt "CS1 pin"
	optional
	depends on SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS1_PC28
		bool "PC28"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS1_PD0
		bool "PD0"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_1_PIN_CS2
	prompt "CS2 pin"
	optional
	depends on SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS2_PC29
		bool "PC29"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS2_PD1
		bool "PD1"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

choice SPI_SAM_PORT_1_PIN_CS3
	prompt "CS3 pin"
	optional
	depends on SOC_SERIES_SAME70 || \
		   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS3_PC30
		bool "PC30"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

	config SPI_SAM_PORT_1_PIN_CS3_PD2
		bool "PD2"
		depends on SOC_SERIES_SAME70 || \
			   SOC_SERIES_SAMV71

endchoice

endif # SPI_SAM_PORT_1
