# Copyright (c) 2023 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0

config SOC_RENESAS_RZT2M
	select ARM
	select CPU_CORTEX_R52
	select CPU_HAS_ARM_MPU
	select GIC_V3
	select GIC_SINGLE_SECURITY_STATE
	select ARM_ARCH_TIMER
	select SYSCON
