#
# For a description of the syntax of this configuration file,
# see kconfig-language at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
#

comment "S5J Configuration Options"

choice
	prompt "S5J Chip Selection"
	default ARCH_CHIP_S5JT200
	depends on ARCH_CHIP_S5J

config ARCH_CHIP_S5JT200
	bool "S5JT200"
	select ARCH_CORTEXR4
	select ARMV7A_HAVE_GICv2
	select ARMV7R_ICACHE
	select ARMV7R_DCACHE
	select S5J_S5JT200
	select ARCH_HAVE_RESET

endchoice

config S5J_S5JT200
	bool
	default n
	select S5J_HAVE_ADC
	select S5J_HAVE_DMA
	select S5J_HAVE_I2C
	select S5J_HAVE_I2S
	select S5J_HAVE_MCT
	select S5J_HAVE_PWM0
	select S5J_HAVE_PWM1
	select S5J_HAVE_PWM2
	select S5J_HAVE_PWM3
	select S5J_HAVE_PWM4
	select S5J_HAVE_PWM5
	select S5J_HAVE_RTC
	select S5J_HAVE_SFLASH
	select S5J_HAVE_SPI
	select S5J_HAVE_SSS
	select S5J_HAVE_UART0
	select S5J_HAVE_UART1
	select S5J_HAVE_UART2
	select S5J_HAVE_UART3
	select S5J_HAVE_UART4
	select S5J_HAVE_WATCHDOG

menu "S5J Peripheral Support"

# These "hidden" settings determine peripheral options that are available for
# the selection MCU.

config S5J_HAVE_ADC
	bool
	default n

config S5J_HAVE_DMA
	bool
	default n

config S5J_HAVE_I2C
	bool
	default n

config S5J_HAVE_I2S
	bool
	default n

config S5J_HAVE_MCT
	bool
	default n

config S5J_HAVE_PWM0
	bool
	default n

config S5J_HAVE_PWM1
	bool
	default n

config S5J_HAVE_PWM2
	bool
	default n

config S5J_HAVE_PWM3
	bool
	default n

config S5J_HAVE_PWM4
	bool
	default n

config S5J_HAVE_PWM5
	bool
	default n

config S5J_HAVE_RTC
	bool
	default n

config S5J_HAVE_SFLASH
	bool
	default n

config S5J_HAVE_SPI
	bool
	default n

config S5J_HAVE_SSS
	bool
	default n

config S5J_HAVE_UART0
	bool
	default n

config S5J_HAVE_UART1
	bool
	default n

config S5J_HAVE_UART2
	bool
	default n

config S5J_HAVE_UART3
	bool
	default n

config S5J_HAVE_UART4
	bool
	default n

config S5J_HAVE_WATCHDOG
	bool
	default n

config S5J_ADC
	bool "ADC"
	default n
	depends on S5J_HAVE_ADC
	select ANALOG
	select ADC
	select SCHED_WORKQUEUE
	select SCHED_LPWORK
	---help---
		S5J has 12-bits ADC with 4 channels. Say Y here, if you want
		to use it.

config S5J_DMA
	bool "DMA"
	default n
	depends on S5J_HAVE_DMA
	select ARCH_DMA

config S5J_I2C
	bool "I2C"
	default n
	depends on S5J_HAVE_I2C

config S5J_I2S
	bool "I2S"
	default n
	depends on S5J_HAVE_I2S
	select I2S
	select AUDIO
	select S5J_DMA

config S5J_I2S_RX
	bool "S5J I2S RX support"
	default n
	depends on S5J_I2S

config S5J_I2S_TX_P
	bool "S5J I2S TX Prime support"
	default n
	depends on S5J_I2S

config S5J_I2S_TX_S
	bool "S5J I2S TX Secondary support"
	default n
	depends on S5J_I2S

config S5J_I2S_MAXINFLIGHT
	int "I2S queue size"
	default 16
	depends on S5J_I2S
	---help---
		This is the total number of transfers, both RX and TX, that can be
		enqueue before the caller is required to wait.  This setting
		determines the number certain queue data structures that will be
		pre-allocated.

config S5J_MCT
	bool
	default n

config S5J_TIMER0
	bool "TIMER0"
	default n
	depends on S5J_HAVE_MCT
	select S5J_MCT

config S5J_TIMER1
	bool "TIMER1"
	default n
	depends on S5J_HAVE_MCT
	select S5J_MCT

config S5J_TIMER2
	bool "TIMER2"
	default n
	depends on S5J_HAVE_MCT
	select S5J_MCT

config S5J_TIMER3
	bool "TIMER3"
	default n
	depends on S5J_HAVE_MCT
	select S5J_MCT

config S5J_UART_FLOWCONTROL
	bool
	default n

config S5J_UART0
	bool "UART0"
	default n
	depends on S5J_HAVE_UART0
	select ARCH_HAVE_UART0
	select ARCH_HAVE_SERIAL_TERMIOS

config S5J_UART1
	bool "UART1"
	default n
	depends on S5J_HAVE_UART1
	select ARCH_HAVE_UART1
	select ARCH_HAVE_SERIAL_TERMIOS

config S5J_UART2
	bool "UART2"
	default n
	depends on S5J_HAVE_UART2
	select ARCH_HAVE_UART2
	select ARCH_HAVE_SERIAL_TERMIOS

config S5J_UART2_FLOWCONTROL
	bool "UART2 Flow Control"
	default n
	depends on S5J_UART2
	depends on !S5J_UART1
	select S5J_UART_FLOWCONTROL

config S5J_UART3
	bool "UART3"
	default n
	depends on S5J_HAVE_UART3
	select ARCH_HAVE_UART3
	select ARCH_HAVE_SERIAL_TERMIOS

config S5J_UART3_FLOWCONTROL
	bool "UART3 Flow Control"
	default n
	depends on S5J_UART3
	depends on !S5J_PWM0
	depends on !S5J_PWM1
	select S5J_UART_FLOWCONTROL

config S5J_UART4
	bool "UART4 (Debug UART)"
	default y
	depends on S5J_HAVE_UART4
	select ARCH_HAVE_UART4
	select ARCH_HAVE_SERIAL_TERMIOS

config S5J_PWM
	bool
	default n

config S5J_PWM0
	bool "PWM0"
	depends on S5J_HAVE_PWM0
	select S5J_PWM
	default n

config S5J_PWM1
	bool "PWM1"
	depends on S5J_HAVE_PWM1
	select S5J_PWM
	default n

config S5J_PWM2
	bool "PWM2"
	depends on S5J_HAVE_PWM2
	select S5J_PWM
	default n

config S5J_PWM3
	bool "PWM3"
	depends on S5J_HAVE_PWM3
	select S5J_PWM
	default n

config S5J_PWM4
	bool "PWM4"
	depends on S5J_HAVE_PWM4
	select S5J_PWM
	default n

config S5J_PWM5
	bool "PWM5"
	depends on S5J_HAVE_PWM5
	select S5J_PWM
	default n

config S5J_SSS
	bool "SSS"
	depends on S5J_HAVE_SSS
	default y

config S5J_SPI
	bool "SPI"
	depends on S5J_HAVE_SPI
	default y

config S5J_WATCHDOG
	bool "Watchdog"
	depends on S5J_HAVE_WATCHDOG
	default n

menu "Watchdog driver configuration"
	depends on S5J_WATCHDOG

config S5J_WATCHDOG_DEBUG
	bool "S5J Watchdog debug"
	default n
	depends on S5J_WATCHDOG

config S5J_WATCHDOG_INT
	bool "S5J Watchdog interrupt enable"
	default n
	depends on S5J_WATCHDOG

config S5J_WATCHDOG_RESET
	bool "S5J Watchdog reset enable"
	default n
	depends on S5J_WATCHDOG

config S5J_WDT_DEFTIMEOUT
	int "S5J Watchdog Timeout(in msec)"
	default 7000
	depends on S5J_WATCHDOG

endmenu

config S5J_SFLASH
	bool "SFLASH"
	default y
	depends on S5J_HAVE_SFLASH

config S5J_SENSOR_PPD42NS
	bool "PPD42NS Dust Sensor"
	default n

endmenu
