# Kconfig - Pinmux Dev configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config PINMUX_DEV
	bool "Configure pinmux for early board testing"
	depends on PINMUX
	help
	  Enables the use of the pinmux_set and pinmux_get functions for early
	  prototyping on new hardware.  WARNING: When using these options, it
	  is possible to permanently damage the hardware.

config PINMUX_DEV_NAME
	string "Configure pinmux for early board testing"
	depends on PINMUX_DEV
	default "PINMUX_DEV"
	help
	  The name of the pinmux dev driver.

config PINMUX_DEV_ATMEL_SAM3X
	bool "Enable pinmux dev driver for Atmel SAM3X boards"
	depends on PINMUX_DEV && SOC_SERIES_SAM3X
	help
	  Enables the pinmux dev driver for boards based on the
	  Atmel SAM3X family of microcontrollers.

config PINMUX_DEV_STM32
	bool "Enable pinmux dev driver for the ST STM32 family."
	depends on PINMUX_DEV && SOC_FAMILY_STM32
	help
	  Enables the STM32 pinmux dev driver.

config PINMUX_DEV_ARM_V2M_BEETLE
	bool "Enable pinmux dev driver for ARM V2M Beetle boards"
	depends on PINMUX_DEV && SOC_SERIES_BEETLE
	help
	  Enables the pinmux dev driver for boards based on the
	  ARM Beetle SoC MCUs.
