Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Kconfig.dw - DesignWare SPI driver configuration options
#
#
# Copyright (c) 2015-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

menuconfig SPI_DW
	bool
	prompt "Designware SPI controller driver"
	depends on SPI
	default n
	help
	  Enable support for Designware's SPI controllers.

if SPI_DW

config SPI_DW_ARC_AUX_REGS
	bool "Registers are part of ARC auxiliary registers"
	depends on SPI_DW && ARC
	default y
	help
	  SPI IP block registers are part of user extended auxiliary
	  registers and thus their access is different than memory
	  mapped registers.

config SPI_DW_CS_GPIO
	bool "SPI port CS pin is controlled via a GPIO port"
	depends on SPI_DW && GPIO
	default n

config SPI_DW_INIT_PRIORITY
	int "Init priority"
	depends on SPI_DW
	default 70
	help
	  Device driver initialization priority.

choice
depends on SPI_DW && (IOAPIC || MVIC)
prompt "DesignWare SPI interrupt trigger condition"
default SPI_DW_RISING_EDGE

config SPI_DW_FALLING_EDGE
	bool "Falling edge"
	help
	  "DesignWare SPI uses falling edge interrupt"

config SPI_DW_RISING_EDGE
	bool "Rising edge"
	help
	  "DesignWare SPI uses rising edge interrupt"

config SPI_DW_LEVEL_HIGH
	bool "Level high"
	help
	  "DesignWare SPI uses level high interrupt"

config SPI_DW_LEVEL_LOW
	bool "Level low"
	help
	  "DesignWare SPI uses level low interrupt"
endchoice

choice
depends on SPI_DW
prompt "DesignWare SPI interrupt management logic"
default SPI_DW_INTERRUPT_SINGLE_LINE

config SPI_DW_INTERRUPT_SINGLE_LINE
	bool "Single interrupt line for all interrupts"
	help
	  Only one line is used to trigger interrupts: RX, TX and ERROR
	  interrupt go all through that line, undifferentiated.
config SPI_DW_INTERRUPT_SEPARATED_LINES
	bool "One line per-interrupt type (RX, TX and ERROR)"
	help
	  Each interrupt gets a dedicated line
endchoice

config  SPI_DW_CLOCK_GATE
	bool "Enable glock gating"
	depends on SPI_DW && SOC_QUARK_SE
	select CLOCK_CONTROL
	default n

config	SPI_DW_CLOCK_GATE_DRV_NAME
	string
	depends on SPI_DW_CLOCK_GATE
	default ""

config	SPI_DW_PORT_0
	bool
	prompt "Designware SPI port 0"
	depends on SPI_DW
	default n
	help
	  Enable Designware SPI controller port 0.

config  SPI_DW_PORT_0_CLOCK_GATE_SUBSYS
	int "Clock controller's subsystem"
	depends on SPI_DW_CLOCK_GATE

config  SPI_DW_PORT_0_CS_GPIO_PORT
	string
	prompt "The GPIO port which is used to control CS"
	depends on SPI_DW_PORT_0 && SPI_DW_CS_GPIO
	default GPIO_DW_0_NAME

config  SPI_DW_PORT_0_CS_GPIO_PIN
	int "The GPIO PIN which is used to act as a CS pin"
	depends on SPI_DW_PORT_0 && SPI_DW_CS_GPIO
	default 0

config  SPI_DW_PORT_0_DRV_NAME
	string
	prompt "Designware SPI port 0 device name"
	depends on SPI_DW_PORT_0
	default "SPI_0"

config  SPI_DW_PORT_0_REGS
	hex
	prompt "Port 0 registers address"
	depends on SPI_DW_PORT_0

config  SPI_DW_PORT_0_IRQ
	int "Port 0 interrupt"
	depends on SPI_DW_PORT_0 && SPI_DW_INTERRUPT_SINGLE_LINE
	help
	  Interrupt number dedicated to the controller. Valid if only the
	  controller routes all interrupt through a unique line.

config SPI_DW_PORT_0_ERROR_IRQ
	int "Port 0 ERROR Interrupt"
	depends on SPI_DW_PORT_0 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the ERROR interrupt only. RX and TX
	  interrupt numbers need to be set as well.

config SPI_DW_PORT_0_RX_IRQ
	int "Port 0 RX Interrupt"
	depends on SPI_DW_PORT_0 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the RX interrupt only. TX and ERROR
	  interrupt numbers need to be set as well.

config SPI_DW_PORT_0_TX_IRQ
	int "Port 0 TX Interrupt"
	depends on SPI_DW_PORT_0 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the TX interrupt only. RX and ERROR
	  interrupt numbers need to be set as well.

config  SPI_DW_PORT_0_PRI
	int
	prompt "Port 0 interrupt priority"
	depends on SPI_DW_PORT_0

config  SPI_DW_PORT_1
	bool
	prompt "Designware SPI port 1"
	depends on SPI_DW
	default n
	help
	  Enable Designware SPI controller port 1.

config  SPI_DW_PORT_1_CLOCK_GATE_SUBSYS
	int "Clock controller's subsystem"
	depends on SPI_DW_CLOCK_GATE

config  SPI_DW_PORT_1_CS_GPIO_PORT
	string
	prompt "The GPIO port which is used to control CS"
	depends on SPI_DW_PORT_0 && SPI_DW_CS_GPIO
	default GPIO_DW_0_NAME

config  SPI_DW_PORT_1_CS_GPIO_PIN
	int "The GPIO PIN which is used to act as a CS pin"
	depends on SPI_DW_PORT_0 && SPI_DW_CS_GPIO
	default 0

config  SPI_DW_PORT_1_DRV_NAME
	string
	prompt "Designware SPI port 1 device name"
	depends on SPI_DW_PORT_1
	default "SPI_1"

config  SPI_DW_PORT_1_REGS
	hex
	prompt "Port 1 registers address"
	depends on SPI_DW_PORT_1

config  SPI_DW_PORT_1_IRQ
	int "Port 1 interrupt"
	depends on SPI_DW_PORT_1 && SPI_DW_INTERRUPT_SINGLE_LINE
	help
	  Interrupt number dedicated to the controller. Valid if only the
	  controller routes all interrupt through a unique line.

config SPI_DW_PORT_1_ERROR_IRQ
	int "Port 1 ERROR Interrupt"
	depends on SPI_DW_PORT_1 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the ERROR interrupt only. RX and TX
	  interrupt numbers need to be set as well.

config SPI_DW_PORT_1_RX_IRQ
	int "Port 1 RX Interrupt"
	depends on SPI_DW_PORT_1 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the RX interrupt only. TX and ERROR
	  interrupt numbers need to be set as well.

config SPI_DW_PORT_1_TX_IRQ
	int "Port 1 TX Interrupt"
	depends on SPI_DW_PORT_1 && SPI_DW_INTERRUPT_SEPARATED_LINES
	help
	  Interrupt number dedicated to the TX interrupt only. RX and ERROR
	  interrupt numbers need to be set as well.

config  SPI_DW_PORT_1_PRI
	int
	prompt "Port 1 interrupt priority"
	depends on SPI_DW_PORT_1

endif # SPI_DW