# Copyright 2023 NXP
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

config MCUX_USE_SOC_LPC55S28
    bool
    select MCUX_CPU_ARCH_ARM_CM33
    select MCUX_CPU_HAS_SP_FPU
    select MCUX_CPU_ARM_HAS_DSP
if MCUX_USE_SOC_LPC55S28

# Part Number
config MCUX_SOC_PART_LPC55S28
    bool

config MCUX_DEVICE
    default "LPC55S28"

config MCUX_DEVICE_ID
    default "LPC55S28" if MCUX_SOC_PART_LPC55S28


# Select supported components
config MCUX_USE_SOC_LPC55S28
    select MCUX_HAS_CMSIS_DSP_Include
    select MCUX_HAS_CMSIS_DSP_Source
    select MCUX_HAS_CMSIS_Device_API_OSTick
    select MCUX_HAS_CMSIS_Device_API_RTOS2
    select MCUX_HAS_CMSIS_Driver_Include_CAN
    select MCUX_HAS_CMSIS_Driver_Include_Ethernet
    select MCUX_HAS_CMSIS_Driver_Include_Ethernet_MAC
    select MCUX_HAS_CMSIS_Driver_Include_Ethernet_PHY
    select MCUX_HAS_CMSIS_Driver_Include_Flash
    select MCUX_HAS_CMSIS_Driver_Include_I2C
    select MCUX_HAS_CMSIS_Driver_Include_MCI
    select MCUX_HAS_CMSIS_Driver_Include_NAND
    select MCUX_HAS_CMSIS_Driver_Include_SAI
    select MCUX_HAS_CMSIS_Driver_Include_SPI
    select MCUX_HAS_CMSIS_Driver_Include_USART
    select MCUX_HAS_CMSIS_Driver_Include_USB_Device
    select MCUX_HAS_CMSIS_Driver_Include_USB_Host
    select MCUX_HAS_CMSIS_Driver_Include_WiFi
    select MCUX_HAS_CMSIS_Include_core_cm
    select MCUX_HAS_CMSIS_NN_Source
    select MCUX_HAS_CMSIS_RTOS2_NonSecure
    select MCUX_HAS_CMSIS_RTOS2_Secure
    select MCUX_HAS_component_ctimer_adapter
    select MCUX_HAS_component_flexcomm_i2c_adapter
    select MCUX_HAS_component_flexcomm_spi_adapter
    select MCUX_HAS_component_gint_adapter
    select MCUX_HAS_component_lists
    select MCUX_HAS_component_lpc_gpio_adapter
    select MCUX_HAS_component_mrt_adapter
    select MCUX_HAS_component_ostimer_adapter
    select MCUX_HAS_component_serial_manager
    select MCUX_HAS_component_serial_manager_spi
    select MCUX_HAS_component_serial_manager_swo if (MCUX_CPU_ARCH_ARM_CM33)
    select MCUX_HAS_component_serial_manager_uart
    select MCUX_HAS_component_usart_adapter
    select MCUX_HAS_component_usart_dma_adapter
    select MCUX_HAS_driver_anactrl
    select MCUX_HAS_driver_casper
    select MCUX_HAS_driver_cmp_1
    select MCUX_HAS_driver_cmsis_flexcomm_i2c
    select MCUX_HAS_driver_cmsis_flexcomm_spi
    select MCUX_HAS_driver_cmsis_flexcomm_usart
    select MCUX_HAS_driver_common
    select MCUX_HAS_driver_ctimer
    select MCUX_HAS_driver_flexcomm
    select MCUX_HAS_driver_flexcomm_i2c
    select MCUX_HAS_driver_flexcomm_i2c_dma
    select MCUX_HAS_driver_flexcomm_i2c_freertos
    select MCUX_HAS_driver_flexcomm_i2s
    select MCUX_HAS_driver_flexcomm_i2s_dma
    select MCUX_HAS_driver_flexcomm_spi
    select MCUX_HAS_driver_flexcomm_spi_dma
    select MCUX_HAS_driver_flexcomm_spi_freertos
    select MCUX_HAS_driver_flexcomm_usart
    select MCUX_HAS_driver_flexcomm_usart_dma
    select MCUX_HAS_driver_flexcomm_usart_freertos
    select MCUX_HAS_driver_gint
    select MCUX_HAS_driver_hashcrypt
    select MCUX_HAS_driver_iap1
    select MCUX_HAS_driver_inputmux
    select MCUX_HAS_driver_lpadc
    select MCUX_HAS_driver_lpc_crc
    select MCUX_HAS_driver_lpc_dma
    select MCUX_HAS_driver_lpc_gpio
    select MCUX_HAS_driver_lpc_iocon
    select MCUX_HAS_driver_lpc_rtc
    select MCUX_HAS_driver_mrt
    select MCUX_HAS_driver_ostimer
    select MCUX_HAS_driver_pint
    select MCUX_HAS_driver_plu
    select MCUX_HAS_driver_prince
    select MCUX_HAS_driver_puf
    select MCUX_HAS_driver_rng_1
    select MCUX_HAS_driver_sctimer
    select MCUX_HAS_driver_sdif
    select MCUX_HAS_driver_sysctl
    select MCUX_HAS_driver_utick
    select MCUX_HAS_driver_wwdt
    select MCUX_HAS_utilities_misc_utilities
    select MCUX_HAS_utility_assert
    select MCUX_HAS_utility_assert_lite
    select MCUX_HAS_utility_debug_console
    select MCUX_HAS_utility_debug_console_lite
    select MCUX_HAS_utility_notifier
    select MCUX_HAS_utility_shell
    select MCUX_HAS_utility_str

#### SOC specific dependency ####
config MCUX_USE_RTE_Device
    bool
    select MCUX_USE_driver_lpc_dma

config MCUX_USE_component_serial_manager_uart
    bool
    select MCUX_USE_component_usart_adapter

config MCUX_USE_driver_flexcomm_i2c_dma
    bool
    select MCUX_USE_driver_lpc_dma

config MCUX_USE_driver_flexcomm_i2s_dma
    bool
    select MCUX_USE_driver_lpc_dma

config MCUX_USE_driver_flexcomm_spi_dma
    bool
    select MCUX_USE_driver_lpc_dma

config MCUX_USE_driver_flexcomm_usart_dma
    bool
    select MCUX_USE_driver_lpc_dma

config MCUX_USE_driver_prince
    bool
    select MCUX_USE_driver_iap1
    select MCUX_USE_driver_puf

config MCUX_USE_utility_debug_console_lite
    bool
    select MCUX_USE_component_usart_adapter


#### SOC level drivers ####
# device_LPC55S28_CMSIS
config MCUX_USE_device_LPC55S28_CMSIS
    bool "Device LPC55S28_cmsis"
    select MCUX_USE_CMSIS_Include_core_cm
    help
      Device LPC55S28_cmsis

# device_LPC55S28_startup
config MCUX_USE_device_LPC55S28_startup
    bool "Device LPC55S28_startup"
    help
      Device LPC55S28_startup

# device_LPC55S28_system
config MCUX_USE_device_LPC55S28_system
    bool "Device LPC55S28_system"
    help
      Device LPC55S28_system

# driver_fro_calib
config MCUX_USE_driver_fro_calib
    bool "Driver fro_calib"
    select MCUX_USE_driver_common
    help
      FRO calibration Lib

rsource "drivers/Kconfig"

endif # MCUX_USE_SOC_LPC55S28