# 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_RISCV32

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.
