# Kconfig - LPC LPC54XXX MCU line
#
# Copyright (c) 2017, NXP
#
# SPDX-License-Identifier: Apache-2.0
#

choice
prompt "LPC LPC54XXX MCU Selection"
depends on SOC_SERIES_LPC54XXX

config SOC_LPC54114_M4
	bool "SOC_LPC54114_M4"
	select CPU_CORTEX_M4
	select PLATFORM_SPECIFIC_INIT

config SOC_LPC54114_M0
	bool "SOC_LPC54114_M0"
	select CPU_CORTEX_M0PLUS
	select CPU_CORTEX_M_HAS_VTOR

endchoice

if SOC_SERIES_LPC54XXX

config SOC_PART_NUMBER_LPC54114J256BD64
	bool

config SOC_PART_NUMBER_LPC54XXX
	string
	default "LPC54114J256BD64" if SOC_PART_NUMBER_LPC54114J256BD64

	help
	  This string holds the full part number of the SoC. It is a hidden
	  option that you should not set directly. The part number selection
	  choice defines the default value for this string.

config SLAVE_CORE_MCUX
	bool "Enable LPC54114 Cortex-M0 slave core"
	depends on HAS_MCUX
	help
	  Driver for slave core startup

config SLAVE_IMAGE_MCUX
	depends on SLAVE_CORE_MCUX
	string "Binary image of slave core's code"
	help
	  This points to the image file for the the binary code that will be
	  used by the slave core.

config SLAVE_BOOT_ADDRESS_MCUX
	depends on SLAVE_CORE_MCUX
	hex "Address the slave core will boot at"
	default 0x20010000
	help
	  This is the address the slave core will boot from.  Additionally this
	  address is where we will copy the SLAVE_IMAGE to.  We default this to
	  the base of SRAM1

endif # SOC_SERIES_LPC54XXX
