# Copyright (c) 2023 TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
# SPDX-License-Identifier: Apache-2.0

config SOC_SERIES_RA4M1
	select ARM
	select CPU_CORTEX_M4
	select CPU_HAS_ARM_MPU
	select CPU_CORTEX_M_HAS_SYSTICK
	select DYNAMIC_INTERRUPTS
	select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME
	select XIP
