# 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_FTFX
	bool
	help
	  Set if the flash memory (FTFA, FTFE, or FTFL) module is present in
	  the SoC.
