# MIMX8ML8 SoC defconfig

# Copyright (c) 2021, Laird Connectivity
# SPDX-License-Identifier: Apache-2.0

if SOC_MIMX8ML8

config SOC
	string
	default "mimx8ml8"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	int
	default 800000000

if CLOCK_CONTROL

config CLOCK_CONTROL_MCUX_CCM
	default y if HAS_MCUX_CCM

endif # CLOCK_CONTROL

if PINMUX

config PINMUX_MCUX
	default y

endif # PINMUX

config GPIO
	default y

if SERIAL

config UART_MCUX_IUART
	default y

endif # SERIAL

config IPM_IMX_REV2
	default y
	depends on IPM

if CODE_ITCM

config FLASH_SIZE
	default $(dt_node_reg_size_int,/soc/itcm@0,0,K)

config FLASH_BASE_ADDRESS
	default $(dt_node_reg_addr_hex,/soc/itcm@0)

endif # CODE_ITCM

if CODE_DDR

config FLASH_SIZE
	default $(dt_node_reg_size_int,/soc/code@80000000,0,K)

config FLASH_BASE_ADDRESS
	default $(dt_node_reg_addr_hex,/soc/code@80000000)

endif # CODE_DDR

endif # SOC_MIMX8ML8
