kconfig: untangle ordering and dependencies

There are two major issues with the kconfig:

() Some of the config options have incorrect dependencies inside help
   under menuconfig. For example, CONFIG_GPIO depends on BOARD_GALILEO.

() Since the SoC and board specific kconfig files are parsed first,
   the help screen would say, for example, CONFIG_SPI is defined at
   arch/arm/soc/fsl_frdm_k64f/Kconfig. This is incorrect because
   the actual config is defined in drivers/spi/Kconfig.

These cause great confusion to users of menuconfig/xconfig.

To fix these, the SoC and board defaults are now to be parsed last.

Note that the position swapping of defaults in this patch is due to
the fact the the default parsed last will be used.

And, spi_test is broken due to the fact that it requires
CONFIG_SPI_INTEL_PORT_1, but never enables it anywhere. This is
bypassed for now.

Origin: refactored and edited from existing files
Change-Id: I2a4b1ae5be4d27e68c960aa47d91ef350f2d500f
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
Daniel Leung 2016-03-25 14:30:50 -07:00 committed by Anas Nashif
commit 8df10d4584
42 changed files with 1287 additions and 934 deletions

View file

@ -17,27 +17,6 @@
#
if SOC_FSL_FRDM_K64F
config SOC
default fsl_frdm_k64f
config SRAM_BASE_ADDRESS
default 0x20000000
config FLASH_BASE_ADDRESS
default 0x00000000
config NUM_IRQ_PRIO_BITS
int
default 4
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 86
config SYS_CLOCK_HW_CYCLES_PER_SEC
int
default 120000000
config K64_CORE_CLOCK_DIVIDER
int
@ -79,214 +58,6 @@ config WDOG_INIT
upon reset. Therefore, this requires that the watchdog be configured
during reset handling.
config KERNEL_INIT_PRIORITY_DEFAULT
default 40
config KERNEL_INIT_PRIORITY_DEVICE
default 50
config UART_CONSOLE_PRIORITY
default 60
if UART_K20
config UART_K20_PORT_0
def_bool y
if UART_K20_PORT_0
config UART_K20_PORT_0_BASE_ADDR
default 0x4006A000
config UART_K20_PORT_0_IRQ
default 31
config UART_K20_PORT_0_IRQ_PRI
default 3
config UART_K20_PORT_0_BAUD_RATE
default 115200
config UART_K20_PORT_0_CLK_FREQ
default 120000000
endif
config UART_K20_PORT_1
def_bool y
if UART_K20_PORT_1
config UART_K20_PORT_1_BASE_ADDR
default 0x4006B000
config UART_K20_PORT_1_IRQ
default 33
config UART_K20_PORT_1_IRQ_PRI
default 3
config UART_K20_PORT_1_BAUD_RATE
default 115200
config UART_K20_PORT_1_CLK_FREQ
default 120000000
endif
config UART_K20_PORT_2
def_bool y
if UART_K20_PORT_2
config UART_K20_PORT_2_BASE_ADDR
default 0x4006C000
config UART_K20_PORT_2_IRQ
default 35
config UART_K20_PORT_2_IRQ_PRI
default 3
config UART_K20_PORT_2_BAUD_RATE
default 115200
config UART_K20_PORT_2_CLK_FREQ
default 120000000
endif
config UART_K20_PORT_3
def_bool y
if UART_K20_PORT_3
config UART_K20_PORT_3_BASE_ADDR
default 0x4006D000
config UART_K20_PORT_3_IRQ
default 37
config UART_K20_PORT_3_IRQ_PRI
default 3
config UART_K20_PORT_3_BAUD_RATE
default 115200
config UART_K20_PORT_3_CLK_FREQ
default 120000000
endif
config UART_K20_PORT_4
def_bool y
if UART_K20_PORT_4
config UART_K20_PORT_4_BASE_ADDR
default 0x400EA000
config UART_K20_PORT_4_IRQ
default 66
config UART_K20_PORT_4_IRQ_PRI
default 3
config UART_K20_PORT_4_BAUD_RATE
default 115200
config UART_K20_PORT_4_CLK_FREQ
default 120000000
endif
endif # UART_K20
if UART_CONSOLE
config UART_CONSOLE_ON_DEV_NAME
default "UART_0"
endif
if BLUETOOTH_UART
config BLUETOOTH_UART_ON_DEV_NAME
default "UART_1"
endif
config GPIO
def_bool y
config PINMUX
def_bool y
if GPIO
config GPIO_K64
def_bool y
if GPIO_K64
config GPIO_K64_A
def_bool y
config GPIO_K64_B
def_bool y
config GPIO_K64_C
def_bool y
config GPIO_K64_D
def_bool y
config GPIO_K64_E
def_bool y
endif # GPIO_K64
if GPIO_K64_A
config GPIO_K64_A_BASE_ADDR
default 0x400FF000
config PORT_K64_A_BASE_ADDR
default 0x40049000
endif # GPIO_K64_A
if GPIO_K64_B
config GPIO_K64_B_BASE_ADDR
default 0x400FF040
config PORT_K64_B_BASE_ADDR
default 0x4004A000
endif # GPIO_K64_B
if GPIO_K64_C
config GPIO_K64_C_BASE_ADDR
default 0x400FF080
config PORT_K64_C_BASE_ADDR
default 0x4004B000
endif # GPIO_K64_C
if GPIO_K64_D
config GPIO_K64_D_BASE_ADDR
default 0x400FF0C0
config PORT_K64_D_BASE_ADDR
default 0x4004C000
endif # GPIO_K64_D
if GPIO_K64_E
config GPIO_K64_E_BASE_ADDR
default 0x400FF100
config PORT_K64_E_BASE_ADDR
default 0x4004D000
endif # GPIO_K64_E
endif # if GPIO
if PINMUX
config PINMUX_K64
def_bool y
config PINMUX_BASE
default 0x00000000
config PINMUX_NUM_PINS
default 160
if PINMUX_K64
config PINMUX_K64_GPIO_A_NAME
default GPIO_K64_A_DEV_NAME
config PINMUX_K64_GPIO_B_NAME
default GPIO_K64_B_DEV_NAME
config PINMUX_K64_GPIO_C_NAME
default GPIO_K64_C_DEV_NAME
config PINMUX_K64_GPIO_D_NAME
default GPIO_K64_D_DEV_NAME
config PINMUX_K64_GPIO_E_NAME
default GPIO_K64_E_DEV_NAME
config PRESERVE_JTAG_IO_PINS
bool "Freescale FRDM-K64F JTAG pin usage"
depends on PINMUX
@ -297,45 +68,4 @@ config PRESERVE_JTAG_IO_PINS
the Arduino header as D8, D3 and D5, respectively.
Enable this option to preserve these pins for the debug interface.
endif # PINMUX_K64
endif # PINMUX
if PWM
config PWM_K64_FTM
def_bool y
if PWM_K64_FTM
config PWM_K64_FTM_0
def_bool y
endif # PWM_K64_FTM
endif
config SPI
def_bool n
if SPI
config SPI_K64
def_bool y
if SPI_K64
config SPI_K64_0
def_bool y
config SPI_K64_1
def_bool n
config SPI_K64_2
def_bool n
endif # SPI_K64
endif
endif # SOC_FSL_FRDM_K64F