# NXP S32K1XX MCUs line

# Copyright 2023 NXP
# SPDX-License-Identifier: Apache-2.0

choice
	prompt "NXP S32K1XX MCU selection"
	depends on SOC_SERIES_S32K1XX

config SOC_S32K116
	bool "S32K116"
	select CPU_CORTEX_M0PLUS

config SOC_S32K118
	bool "S32K118"
	select CPU_CORTEX_M0PLUS

config SOC_S32K142
	bool "S32K142"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

config SOC_S32K142W
	bool "S32K142W"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

config SOC_S32K144
	bool "S32K144"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

config SOC_S32K144W
	bool "S32K144W"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

config SOC_S32K146
	bool "S32K146"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

config SOC_S32K148
	bool "S32K148"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_MCUX_CACHE

endchoice

if SOC_SERIES_S32K1XX

config SOC_PART_NUMBER_FS32K116LAT0MFMT
	bool

config SOC_PART_NUMBER_FS32K116LAT0MLFR
	bool

config SOC_PART_NUMBER_FS32K116LAT0MLFT
	bool

config SOC_PART_NUMBER_FS32K116LIT0VFMT
	bool

config SOC_PART_NUMBER_FS32K116LIT0VLFT
	bool

config SOC_PART_NUMBER_FS32K118LAT0MLFR
	bool

config SOC_PART_NUMBER_FS32K118LAT0MLFT
	bool

config SOC_PART_NUMBER_FS32K118LAT0MLHR
	bool

config SOC_PART_NUMBER_FS32K118LAT0MLHT
	bool

config SOC_PART_NUMBER_FS32K118LIT0VLFT
	bool

config SOC_PART_NUMBER_FS32K142HAT0MLFT
	bool

config SOC_PART_NUMBER_FS32K142HAT0MLHT
	bool

config SOC_PART_NUMBER_FS32K142HAT0MLLR
	bool

config SOC_PART_NUMBER_FS32K142HAT0MLLT
	bool

config SOC_PART_NUMBER_FS32K142HVT0VLHT
	bool

config SOC_PART_NUMBER_FS32K142UAT0VLFT
	bool

config SOC_PART_NUMBER_FS32K142UAT0VLHR
	bool

config SOC_PART_NUMBER_FS32K142UAT0VLHT
	bool

config SOC_PART_NUMBER_FS32K142UAT0VLLR
	bool

config SOC_PART_NUMBER_FS32K142UAT0VLLT
	bool

config SOC_PART_NUMBER_FS32K142UIT0VLHT
	bool

config SOC_PART_NUMBER_FS32K142WAT0WLFT
	bool

config SOC_PART_NUMBER_FS32K142WAT0WLHT
	bool

config SOC_PART_NUMBER_FS32K144HAT0MLFT
	bool

config SOC_PART_NUMBER_FS32K144HAT0MLHR
	bool

config SOC_PART_NUMBER_FS32K144HAT0MLHT
	bool

config SOC_PART_NUMBER_FS32K144HAT0MLLR
	bool

config SOC_PART_NUMBER_FS32K144HAT0MLLT
	bool

config SOC_PART_NUMBER_FS32K144HAT0MMHR
	bool

config SOC_PART_NUMBER_FS32K144HAT0MMHT
	bool

config SOC_PART_NUMBER_FS32K144HVT0VLHR
	bool

config SOC_PART_NUMBER_FS32K144HVT0VLHT
	bool

config SOC_PART_NUMBER_FS32K144HXT0VLHT
	bool

config SOC_PART_NUMBER_FS32K144HXT0VLLT
	bool

config SOC_PART_NUMBER_FS32K144UAT0VLFT
	bool

config SOC_PART_NUMBER_FS32K144UAT0VLHR
	bool

config SOC_PART_NUMBER_FS32K144UAT0VLHT
	bool

config SOC_PART_NUMBER_FS32K144UAT0VLLT
	bool

config SOC_PART_NUMBER_FS32K144UAT0VMHR
	bool

config SOC_PART_NUMBER_FS32K144UAT0VMHT
	bool

config SOC_PART_NUMBER_FS32K144UIT0VLHT
	bool

config SOC_PART_NUMBER_FS32K144ULT0VLHT
	bool

config SOC_PART_NUMBER_FS32K144ULT0VLLR
	bool

config SOC_PART_NUMBER_FS32K144ULT0VLLT
	bool

config SOC_PART_NUMBER_FS32K144WAT0WLFT
	bool

config SOC_PART_NUMBER_FS32K144WAT0WLHT
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLHR
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLHT
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLLR
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLLT
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLQR
	bool

config SOC_PART_NUMBER_FS32K146HAT0MLQT
	bool

config SOC_PART_NUMBER_FS32K146HAT0MMHR
	bool

config SOC_PART_NUMBER_FS32K146HAT0MMHT
	bool

config SOC_PART_NUMBER_FS32K146HVT0VLHT
	bool

config SOC_PART_NUMBER_FS32K146HXT0VLLT
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLHR
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLHT
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLLR
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLLT
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLQR
	bool

config SOC_PART_NUMBER_FS32K146UAT0VLQT
	bool

config SOC_PART_NUMBER_FS32K146UAT0VMHR
	bool

config SOC_PART_NUMBER_FS32K146UAT0VMHT
	bool

config SOC_PART_NUMBER_FS32K146UIT0VLLT
	bool

config SOC_PART_NUMBER_FS32K146ULT0VLLT
	bool

config SOC_PART_NUMBER_FS32K148HAT0MLLR
	bool

config SOC_PART_NUMBER_FS32K148HAT0MLLT
	bool

config SOC_PART_NUMBER_FS32K148HAT0MLQR
	bool

config SOC_PART_NUMBER_FS32K148HAT0MLQT
	bool

config SOC_PART_NUMBER_FS32K148HAT0MLUT
	bool

config SOC_PART_NUMBER_FS32K148HAT0MMHT
	bool

config SOC_PART_NUMBER_FS32K148UGT0VLQT
	bool

config SOC_PART_NUMBER_FS32K148UIT0VLQT
	bool

config SOC_PART_NUMBER_FS32K148UJT0VLLT
	bool

config SOC_PART_NUMBER_FS32K148UJT0VLQT
	bool

config SOC_PART_NUMBER_FS32K148UJT0VLUT
	bool

config SOC_PART_NUMBER_FS32K148UJT0VMHR
	bool

config SOC_PART_NUMBER_FS32K148UJT0VMHT
	bool

config SOC_PART_NUMBER_S32K1XX
	string
	default "FS32K116LAT0MFMT" if SOC_PART_NUMBER_FS32K116LAT0MFMT
	default "FS32K116LAT0MLFR" if SOC_PART_NUMBER_FS32K116LAT0MLFR
	default "FS32K116LAT0MLFT" if SOC_PART_NUMBER_FS32K116LAT0MLFT
	default "FS32K116LIT0VFMT" if SOC_PART_NUMBER_FS32K116LIT0VFMT
	default "FS32K116LIT0VLFT" if SOC_PART_NUMBER_FS32K116LIT0VLFT
	default "FS32K118LAT0MLFR" if SOC_PART_NUMBER_FS32K118LAT0MLFR
	default "FS32K118LAT0MLFT" if SOC_PART_NUMBER_FS32K118LAT0MLFT
	default "FS32K118LAT0MLHR" if SOC_PART_NUMBER_FS32K118LAT0MLHR
	default "FS32K118LAT0MLHT" if SOC_PART_NUMBER_FS32K118LAT0MLHT
	default "FS32K118LIT0VLFT" if SOC_PART_NUMBER_FS32K118LIT0VLFT
	default "FS32K142HAT0MLFT" if SOC_PART_NUMBER_FS32K142HAT0MLFT
	default "FS32K142HAT0MLHT" if SOC_PART_NUMBER_FS32K142HAT0MLHT
	default "FS32K142HAT0MLLR" if SOC_PART_NUMBER_FS32K142HAT0MLLR
	default "FS32K142HAT0MLLT" if SOC_PART_NUMBER_FS32K142HAT0MLLT
	default "FS32K142HVT0VLHT" if SOC_PART_NUMBER_FS32K142HVT0VLHT
	default "FS32K142UAT0VLFT" if SOC_PART_NUMBER_FS32K142UAT0VLFT
	default "FS32K142UAT0VLHR" if SOC_PART_NUMBER_FS32K142UAT0VLHR
	default "FS32K142UAT0VLHT" if SOC_PART_NUMBER_FS32K142UAT0VLHT
	default "FS32K142UAT0VLLR" if SOC_PART_NUMBER_FS32K142UAT0VLLR
	default "FS32K142UAT0VLLT" if SOC_PART_NUMBER_FS32K142UAT0VLLT
	default "FS32K142UIT0VLHT" if SOC_PART_NUMBER_FS32K142UIT0VLHT
	default "FS32K142WAT0WLFT" if SOC_PART_NUMBER_FS32K142WAT0WLFT
	default "FS32K142WAT0WLHT" if SOC_PART_NUMBER_FS32K142WAT0WLHT
	default "FS32K144HAT0MLFT" if SOC_PART_NUMBER_FS32K144HAT0MLFT
	default "FS32K144HAT0MLHR" if SOC_PART_NUMBER_FS32K144HAT0MLHR
	default "FS32K144HAT0MLHT" if SOC_PART_NUMBER_FS32K144HAT0MLHT
	default "FS32K144HAT0MLLR" if SOC_PART_NUMBER_FS32K144HAT0MLLR
	default "FS32K144HAT0MLLT" if SOC_PART_NUMBER_FS32K144HAT0MLLT
	default "FS32K144HAT0MMHR" if SOC_PART_NUMBER_FS32K144HAT0MMHR
	default "FS32K144HAT0MMHT" if SOC_PART_NUMBER_FS32K144HAT0MMHT
	default "FS32K144HVT0VLHR" if SOC_PART_NUMBER_FS32K144HVT0VLHR
	default "FS32K144HVT0VLHT" if SOC_PART_NUMBER_FS32K144HVT0VLHT
	default "FS32K144HXT0VLHT" if SOC_PART_NUMBER_FS32K144HXT0VLHT
	default "FS32K144HXT0VLLT" if SOC_PART_NUMBER_FS32K144HXT0VLLT
	default "FS32K144UAT0VLFT" if SOC_PART_NUMBER_FS32K144UAT0VLFT
	default "FS32K144UAT0VLHR" if SOC_PART_NUMBER_FS32K144UAT0VLHR
	default "FS32K144UAT0VLHT" if SOC_PART_NUMBER_FS32K144UAT0VLHT
	default "FS32K144UAT0VLLT" if SOC_PART_NUMBER_FS32K144UAT0VLLT
	default "FS32K144UAT0VMHR" if SOC_PART_NUMBER_FS32K144UAT0VMHR
	default "FS32K144UAT0VMHT" if SOC_PART_NUMBER_FS32K144UAT0VMHT
	default "FS32K144UIT0VLHT" if SOC_PART_NUMBER_FS32K144UIT0VLHT
	default "FS32K144ULT0VLHT" if SOC_PART_NUMBER_FS32K144ULT0VLHT
	default "FS32K144ULT0VLLR" if SOC_PART_NUMBER_FS32K144ULT0VLLR
	default "FS32K144ULT0VLLT" if SOC_PART_NUMBER_FS32K144ULT0VLLT
	default "FS32K144WAT0WLFT" if SOC_PART_NUMBER_FS32K144WAT0WLFT
	default "FS32K144WAT0WLHT" if SOC_PART_NUMBER_FS32K144WAT0WLHT
	default "FS32K146HAT0MLHR" if SOC_PART_NUMBER_FS32K146HAT0MLHR
	default "FS32K146HAT0MLHT" if SOC_PART_NUMBER_FS32K146HAT0MLHT
	default "FS32K146HAT0MLLR" if SOC_PART_NUMBER_FS32K146HAT0MLLR
	default "FS32K146HAT0MLLT" if SOC_PART_NUMBER_FS32K146HAT0MLLT
	default "FS32K146HAT0MLQR" if SOC_PART_NUMBER_FS32K146HAT0MLQR
	default "FS32K146HAT0MLQT" if SOC_PART_NUMBER_FS32K146HAT0MLQT
	default "FS32K146HAT0MMHR" if SOC_PART_NUMBER_FS32K146HAT0MMHR
	default "FS32K146HAT0MMHT" if SOC_PART_NUMBER_FS32K146HAT0MMHT
	default "FS32K146HVT0VLHT" if SOC_PART_NUMBER_FS32K146HVT0VLHT
	default "FS32K146HXT0VLLT" if SOC_PART_NUMBER_FS32K146HXT0VLLT
	default "FS32K146UAT0VLHR" if SOC_PART_NUMBER_FS32K146UAT0VLHR
	default "FS32K146UAT0VLHT" if SOC_PART_NUMBER_FS32K146UAT0VLHT
	default "FS32K146UAT0VLLR" if SOC_PART_NUMBER_FS32K146UAT0VLLR
	default "FS32K146UAT0VLLT" if SOC_PART_NUMBER_FS32K146UAT0VLLT
	default "FS32K146UAT0VLQR" if SOC_PART_NUMBER_FS32K146UAT0VLQR
	default "FS32K146UAT0VLQT" if SOC_PART_NUMBER_FS32K146UAT0VLQT
	default "FS32K146UAT0VMHR" if SOC_PART_NUMBER_FS32K146UAT0VMHR
	default "FS32K146UAT0VMHT" if SOC_PART_NUMBER_FS32K146UAT0VMHT
	default "FS32K146UIT0VLLT" if SOC_PART_NUMBER_FS32K146UIT0VLLT
	default "FS32K146ULT0VLLT" if SOC_PART_NUMBER_FS32K146ULT0VLLT
	default "FS32K148HAT0MLLR" if SOC_PART_NUMBER_FS32K148HAT0MLLR
	default "FS32K148HAT0MLLT" if SOC_PART_NUMBER_FS32K148HAT0MLLT
	default "FS32K148HAT0MLQR" if SOC_PART_NUMBER_FS32K148HAT0MLQR
	default "FS32K148HAT0MLQT" if SOC_PART_NUMBER_FS32K148HAT0MLQT
	default "FS32K148HAT0MLUT" if SOC_PART_NUMBER_FS32K148HAT0MLUT
	default "FS32K148HAT0MMHT" if SOC_PART_NUMBER_FS32K148HAT0MMHT
	default "FS32K148UGT0VLQT" if SOC_PART_NUMBER_FS32K148UGT0VLQT
	default "FS32K148UIT0VLQT" if SOC_PART_NUMBER_FS32K148UIT0VLQT
	default "FS32K148UJT0VLLT" if SOC_PART_NUMBER_FS32K148UJT0VLLT
	default "FS32K148UJT0VLQT" if SOC_PART_NUMBER_FS32K148UJT0VLQT
	default "FS32K148UJT0VLUT" if SOC_PART_NUMBER_FS32K148UJT0VLUT
	default "FS32K148UJT0VMHR" if SOC_PART_NUMBER_FS32K148UJT0VMHR
	default "FS32K148UJT0VMHT" if SOC_PART_NUMBER_FS32K148UJT0VMHT
	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 WDOG_INIT
	bool
	default y

config NXP_S32_FLASH_CONFIG
	bool "NXP S32 flash configuration field"
	default y if XIP && !BOOTLOADER_MCUBOOT
	help
	  Include the 16-byte flash configuration field that stores default
	  protection settings (loaded on reset) and security information that
	  allows the MCU to restrict access to the FTFx module.

if NXP_S32_FLASH_CONFIG

config NXP_S32_FLASH_CONFIG_OFFSET
	hex "NXP S32 flash configuration field offset"
	default 0x400

config NXP_S32_FLASH_CONFIG_FSEC
	hex "Flash security byte (FSEC)"
	range 0 0xff
	default 0xfe
	help
	  Configures the reset value of the FSEC register, which includes
	  backdoor key access, mass erase, factory access, and flash security
	  options.

config NXP_S32_FLASH_CONFIG_FOPT
	hex "Flash nonvolatile option byte (FOPT)"
	range 0 0xff
	default 0xff
	help
	  Configures the reset value of the FOPT register, which includes boot,
	  NMI, and EzPort options.

config NXP_S32_FLASH_CONFIG_FEPROT
	hex "EEPROM protection byte (FEPROT)"
	range 0 0xff
	default 0xff
	help
	  Configures the reset value of the FEPROT register for FlexNVM
	  devices. For program flash only devices, this byte is reserved.

config NXP_S32_FLASH_CONFIG_FDPROT
	hex "Data flash protection byte (FDPROT)"
	range 0 0xff
	default 0xff
	help
	  Configures the reset value of the FDPROT register for FlexNVM
	  devices. For program flash only devices, this byte is reserved.

endif # NXP_S32_FLASH_CONFIG

config NXP_S32_ENABLE_CODE_CACHE
	bool "Code cache"
	default y
	depends on HAS_MCUX_CACHE

endif # SOC_SERIES_S32K1XX
