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

config SOC_RENESAS_RZT2M
	bool

if SOC_RENESAS_RZT2M

config SOC_PART_NUMBER_R9A07G075
	bool

config SOC_PART_NUMBER
	default SOC_PART_NUMBER_R9A07G075

endif # SOC_RENESAS_RZT2M
