# 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"
	default n
	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
