# Kconfig -HW Info driver configuration options

#
# Copyright (c) 2019 Alexander Wachter
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig HWINFO
	bool "Hardware Information driver"
	help
	  Enable hwinfo driver.

if HWINFO

config HWINFO_SHELL
	bool "Enable HWINFO Shell"
	help
	  Enable hwinfo Shell for testing.

config HWINFO_STM32
	bool "STM32 hwinfo"
	default y
	depends on (SOC_SERIES_STM32F0X || SOC_SERIES_STM32F3X || \
		    SOC_SERIES_STM32L4X || SOC_SERIES_STM32F7X)
	help
	  Enable STM32 hwinfo driver.

config HWINFO_NRF
	bool "NRF device ID"
	default y
	depends on (SOC_SERIES_NRF52X || SOC_SERIES_NRF51X)
	help
	  Enable Nordic NRF hwinfo driver.

config HWINFO_MCUX_SIM
	bool "NXP kinetis device ID"
	default y
	depends on HAS_MCUX_SIM
	help
	  Enable NXP kinetis mcux hwinfo driver.

config HWINFO_IMXRT
	bool "NXP i.mx RT device ID"
	default y
	depends on SOC_SERIES_IMX_RT
	help
	  Enable NXP i.mx RT hwinfo driver.

endif
