# Texas Instruments Sitara AM62x-SK-M4 EVM
#
# Copyright (c) 2023 Texas Instruments Incorporated
# Copyright (c) 2023 L Lakshmanan
#
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_AM62X_M4

source "soc/arm/ti_k3/am62x_m4/Kconfig.defconfig.am62xm4*"

config SOC_SERIES
	default "am62x_m4"

DT_CHOSEN_Z_FLASH := zephyr,flash

config FLASH_SIZE
	default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_FLASH),0,K)

config FLASH_BASE_ADDRESS
	default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH))

config NUM_IRQS
	default 64

config SYS_CLOCK_HW_CYCLES_PER_SEC
	int
	default 400000000

config PINCTRL
	default y

if SERIAL

config UART_NS16550
	default y

config UART_NS16550_TI_K3
	default y

choice UART_NS16550_VARIANT
	default UART_NS16550_VARIANT_NS16750
endchoice

endif # SERIAL

config BUILD_OUTPUT_BIN
	default n

source "soc/arm/ti_k3/am62x_m4/Kconfig.defconfig.am62*"

endif # SOC_SERIES_AM62X_M4
