# Copyright (c) 2018 Foundries.io
# SPDX-License-Identifier: Apache-2.0

config VEGA_SDK_HAL
	bool "RV32M1 VEGA SDK support"
	depends on SOC_OPENISA_RV32M1

config HAS_RV32M1_LPUART
	bool
	help
	  Set if the low power uart (LPUART) module is present in the SoC.

config HAS_RV32M1_LPI2C
	bool
	help
	  Set if the low power i2c (LPI2C) module is present in the SoC.

config HAS_RV32M1_LPSPI
	bool
	help
	  Set if the low power spi (LPSPI) module is present in the SoC.

config HAS_RV32M1_TPM
	bool
	help
	  Set if the Timer/PWM (TPM) module is present in the SoC.

config HAS_RV32M1_FTFX
	bool
	help
	  Set if the flash memory (FTFA, FTFE, or FTFL) module is present in
	  the SoC.
