# Atmel SAM SPI

# 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
	help
	  Enable SPI0 at boot

if SPI_SAM_PORT_0

config SPI_SAME70_PORT_0_PIN_CS0
	bool "CS0 pin"
	depends on SOC_SERIES_SAME70

choice SPI_SAME70_PORT_0_PIN_CS1
	bool "CS1 pin"
	optional
	depends on SOC_SERIES_SAME70

	config SPI_SAME70_PORT_0_PIN_CS1_PA31
		bool "PA31"

	config SPI_SAME70_PORT_0_PIN_CS1_PD25
		bool "PD25"

endchoice

config SPI_SAME70_PORT_0_PIN_CS2
	bool "CS2 pin"
	depends on SOC_SERIES_SAME70

config SPI_SAME70_PORT_0_PIN_CS3
	bool "CS3 pin"
	depends on SOC_SERIES_SAME70

endif # SPI_SAM_PORT_0

config SPI_SAM_PORT_1
	bool "Enable SPI1"
	depends on SPI_SAM
	help
	  Enable SPI1 at boot

if SPI_SAM_PORT_1

config SPI_SAME70_PORT_1_PIN_CS0
	bool "CS0 pin"
	depends on SOC_SERIES_SAME70

choice SPI_SAME70_PORT_1_PIN_CS1
	prompt "CS1 pin"
	optional
	depends on SOC_SERIES_SAME70

	config SPI_SAME70_PORT_1_PIN_CS1_PC28
		bool "PC28"

	config SPI_SAME70_PORT_1_PIN_CS1_PD0
		bool "PD0"

endchoice

choice SPI_SAME70_PORT_1_PIN_CS2
	prompt "CS2 pin"
	optional
	depends on SOC_SERIES_SAME70

	config SPI_SAME70_PORT_1_PIN_CS2_PC29
		bool "PC29"

	config SPI_SAME70_PORT_1_PIN_CS2_PD1
		bool "PD1"

endchoice

choice SPI_SAME70_PORT_1_PIN_CS3
	prompt "CS3 pin"
	optional
	depends on SOC_SERIES_SAME70

	config SPI_SAME70_PORT_1_PIN_CS3_PC30
		bool "PC30"

	config SPI_SAME70_PORT_1_PIN_CS3_PD2
		bool "PD2"

endchoice
endif # SPI_SAM_PORT_1
