s5j/Kconfig: reorganize hierarchy of Kconfig entries
authorHeesub Shin <heesub.shin@samsung.com>
Wed, 26 Apr 2017 10:00:05 +0000 (19:00 +0900)
committerHeesub Shin <heesub.shin@samsung.com>
Sat, 6 May 2017 14:00:38 +0000 (23:00 +0900)
To follow the convention that other BSPs are using, this commit
redefines several configuration knobs and reorganizes relationship
between them.

Change-Id: Ie0cbd5d6c861a221881322e0688621f66dcaf901
Signed-off-by: Heesub Shin <heesub.shin@samsung.com>
os/arch/arm/src/s5j/Kconfig

index 3a55ab1..c074d38 100644 (file)
 # see kconfig-language at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
 #
 
-comment "Samsung S5J Chip Configuration Options"
+comment "S5J Configuration Options"
 
 choice
-       prompt "Samsung Chip Selection"
+       prompt "S5J Chip Selection"
        default ARCH_CHIP_S5JT200
+       depends on ARCH_CHIP_S5J
 
 config ARCH_CHIP_S5JT200
        bool "S5JT200"
-       depends on ARCH_CHIP_S5J
-       select S5J_S5JT200
        select ARCH_CORTEXR4
        select ARMV7A_HAVE_GICv2
        select ARMV7R_ICACHE
        select ARMV7R_DCACHE
+       select S5J_S5JT200
 
 endchoice
 
 config S5J_S5JT200
        bool
-       default y
-       select S5J_UARTDBG
-       select S5J_UART0
-       select S5J_UART1
-       select S5J_UART2
-       select S5J_UART3
+       default n
+       select S5J_HAVE_ADC
+       select S5J_HAVE_DMA
+       select S5J_HAVE_I2C
+       select S5J_HAVE_PWM
+       select S5J_HAVE_PWR
+       select S5J_HAVE_RTC
+       select S5J_HAVE_SFLASH
+       select S5J_HAVE_SPI
+       select S5J_HAVE_SSS
+       select S5J_HAVE_UARTDBG
+       select S5J_HAVE_UART0
+       select S5J_HAVE_UART1
+       select S5J_HAVE_UART2
+       select S5J_HAVE_UART3
+       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_PWM
+       bool
+       default n
+
+config S5J_HAVE_PWR
+       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
 
-menu "S5J DEBUG UART Configuration"
 config S5J_HAVE_UARTDBG
        bool
-       default y
+       default n
 
 config S5J_HAVE_UART0
        bool
-       default y
+       default n
 
 config S5J_HAVE_UART1
        bool
-       default y
+       default n
 
 config S5J_HAVE_UART2
        bool
-       default y
+       default n
 
 config S5J_HAVE_UART3
        bool
+       default n
+
+config S5J_HAVE_WATCHDOG
+       bool
+       default n
+
+config S5J_SERIALDRIVER
+       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
+
+config S5J_I2C
+       bool "I2C"
+       default n
+       depends on S5J_HAVE_I2C
+
+config S5J_UART0
+       bool "UART0"
+       default n
+       depends on S5J_HAVE_UART0
+       select S5J_SERIALDRIVER
+       select ARCH_HAVE_UART0
+       select ARCH_HAVE_SERIAL_TERMIOS
+
+config S5J_UART1
+       bool "UART1"
+       default n
+       depends on S5J_HAVE_UART1
+       select S5J_SERIALDRIVER
+       select ARCH_HAVE_UART1
+       select ARCH_HAVE_SERIAL_TERMIOS
+
+config S5J_UART2
+       bool "UART2"
+       default n
+       depends on S5J_HAVE_UART2
+       select S5J_SERIALDRIVER
+       select ARCH_HAVE_UART2
+       select ARCH_HAVE_SERIAL_TERMIOS
+
+config S5J_UART3
+       bool "UART3"
+       default n
+       depends on S5J_HAVE_UART3
+       select S5J_SERIALDRIVER
+       select ARCH_HAVE_UART3
+       select ARCH_HAVE_SERIAL_TERMIOS
+
+config S5J_UARTDBG
+       bool "Debug UART"
        default y
+       depends on S5J_HAVE_UARTDBG
+       select S5J_SERIALDRIVER
+       select ARCH_HAVE_UART4
+       select ARCH_HAVE_SERIAL_TERMIOS
+
+menu "Debug UART Configuration"
+       depends on S5J_UARTDBG
 
-if S5J_HAVE_UARTDBG
 config UARTDBG_RXBUFSIZE
        int "uartdbg rx buffer size"
        default 256
@@ -74,62 +196,32 @@ config UARTDBG_PARITY
 config UARTDBG_2STOP
        int "stop bit"
        default 0
-endif
-
-config S5J_UARTDBG
-       bool
-       default n
-       select S5J_HAVE_UARTDBG
-       select UART0_SERIAL_CONSOLE
 
-config S5J_UART0
-       bool
-       default n
-       select ARCH_HAVE_UART0
-       select UART0_SERIAL_CONSOLE
-
-config S5J_UART1
-       bool
-       default n
-       select ARCH_HAVE_UART1
-       select S5J_HAVE_UART1
-       select UART1_SERIAL_CONSOLE
-
-config S5J_UART2
-       bool
-       default n
-       select ARCH_HAVE_UART2
-       select S5J_HAVE_UART2
-       select UART2_SERIAL_CONSOLE
-
-config S5J_UART3
-       bool
-       default n
-       select ARCH_HAVE_UART3
-       select S5J_HAVE_UART3
-       select UART2_SERIAL_CONSOLE
-
-endmenu #"S5J UART Configuration"
+endmenu
 
 config S5J_PWM
-       bool "S5J PWM support"
+       bool "PWM"
+       depends on S5J_HAVE_PWM
        default n
 
 config S5J_SSS
-       bool "S5J SSS support"
+       bool "SSS"
+       depends on S5J_HAVE_SSS
        default y
 
-menu "S5J SPI(Serial Peripheral Interface Bus)"
 config S5J_SPI
-       bool "S5J SPI support"
+       bool "SPI"
+       depends on S5J_HAVE_SPI
        default y
-endmenu
 
-menu "S5J WDT(Watch Dog Timer)"
 config S5J_WATCHDOG
-       bool "S5J WDT support"
+       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
@@ -149,38 +241,21 @@ config S5J_WDT_DEFTIMEOUT
        int "S5J Watchdog Timeout(in msec)"
        default 7000
        depends on S5J_WATCHDOG
-endmenu
 
-config S5J_ADC
-       bool "ADC"
-       default n
-       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.
-
-menu "S5J I2C"
-config S5J_I2C
-       bool "S5J I2C support"
-       default n
 endmenu
 
 config S5J_SFLASH
-       bool "S5J Serial Flash support"
+       bool "SFLASH"
        default y
+       depends on S5J_HAVE_SFLASH
 
-config S5J_DEBUG_BREAK
-       bool "S5J debug break on boot process"
-       help
-               this enable break during booting, on s5j_boot.c before os_start()
-
-menu "S5J PMU Config"
 config S5J_PWR
-       bool "S5J PMU feature"
+       bool "PMU"
        default n
+       depends on S5J_HAVE_PWR
+
+menu "PMU Configuration"
+       depends on S5J_PWR
 
 config S5J_PWR_DSTOP
        bool "S5J DSTOP Power Mode"
@@ -189,8 +264,12 @@ config S5J_PWR_DSTOP
 config S5J_PWR_SLEEP
        bool "S5J SLEEP Power Mode"
        default n
+
 endmenu
 
-config S5J_DMA
-       bool "S5J DMA enable"
-       default n
+endmenu
+
+config S5J_DEBUG_BREAK
+       bool "S5J debug break on boot process"
+       help
+               this enable break during booting, on s5j_boot.c before os_start()