# Copyright (c) 2019 Lexmark International, Inc.
# Copyright (c) 2019 Stephanos Ioannidis <root@stephanos.io>
# SPDX-License-Identifier: Apache-2.0

if SOC_XILINX_ZYNQMP

config SOC
	default "xilinx_zynqmp"

if SOC_XILINX_ZYNQMP_RPU

config NUM_IRQS
	# must be >= the highest interrupt number used
	# - include the UART interrupts
	default 220

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 5000000

endif # SOC_XILINX_ZYNQMP_RPU

# Workaround for not being able to have commas in macro arguments
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))

endif # SOC_XILINX_ZYNQMP
