# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Antmicro <www.antmicro.com>
# Copyright (c) 2025, Ambiq Micro Inc. <www.ambiq.com>
# Copyright (c) 2025, Linumiz GmbH
#
config AMBIQ_HAL
	bool "Ambiq HAL drivers support"
	depends on SOC_SERIES_APOLLO2X || SOC_SERIES_APOLLO3X || SOC_SERIES_APOLLO4X || SOC_SERIES_APOLLO5X
	help
	  Use the Ambiq HAL

if AMBIQ_HAL

config AMBIQ_HAL_USE_ADC
	bool
	help
	  Use the ADC driver from Ambiq HAL

config AMBIQ_HAL_USE_ITM
	bool
	help
	  Use the ITM HAL from Ambiq

config AMBIQ_HAL_USE_TPIU
	bool
	help
	  Use the TPIU HAL from Ambiq

config AMBIQ_HAL_USE_DCU
	bool
	help
	  Use the DCU HAL from Ambiq

config AMBIQ_HAL_USE_GPIO
	bool
	help
	  Use the GPIO driver from Ambiq HAL

config AMBIQ_HAL_USE_STIMER
	bool
	help
	  Use the STIMER driver from Ambiq HAL

config AMBIQ_HAL_USE_TIMER
	bool
	help
	  Use the TIMER driver from Ambiq HAL

config AMBIQ_HAL_USE_WDT
	bool
	help
	  Use the WDT driver from Ambiq HAL

config AMBIQ_HAL_USE_UART
	bool
	help
	  Use the UART driver from Ambiq HAL

config AMBIQ_HAL_USE_I2C
	bool
	help
	  Use the I2C driver from Ambiq HAL

config AMBIQ_HAL_USE_SPIC
	bool
	help
	  Use the SPI Controller driver from Ambiq HAL

config AMBIQ_HAL_USE_SPID
	bool
	help
	  Use the SPI Device driver from Ambiq HAL

config AMBIQ_HAL_USE_MSPI
	bool
	help
	  Use the MSPI driver from Ambiq HAL

config AMBIQ_HAL_USE_HWINFO
	bool
	help
	  Use the HWINFO driver from Ambiq HAL

config AMBIQ_HAL_USE_BLEIF
	bool
	help
	  Use the BLEIF driver from Ambiq HAL

config AMBIQ_HAL_USE_ADC
	bool
	help
	  Use the ADC driver from Ambiq HAL

config AMBIQ_HAL_USE_USB
	bool
	help
	  Use the USB driver from Ambiq HAL

config AMBIQ_HAL_USE_SDIO
	bool
	help
	  Use the SDIO driver from Ambiq HAL

config AMBIQ_HAL_USE_ADC
	bool
	help
	  Use the ADC driver from Ambiq HAL

config AMBIQ_HAL_USE_DSI
	bool
	help
	  Use the DSI driver from Ambiq HAL

config AMBIQ_HAL_USE_USB
	bool
	help
	  Use the USB driver from Ambiq HAL

config AMBIQ_HAL_USE_PDM
	bool
	help
	  Use the PDM driver from Ambiq HAL

config AMBIQ_HAL_USE_I2S
	bool
	help
	  Use the I2S driver from Ambiq HAL

endif # AMBIQ_HAL
