# Pinmux configuration options

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

#
# PinMux options
#
menuconfig PINMUX
	bool "Enable board pinmux driver"

if PINMUX

config PINMUX_NAME
	string "Pinmux driver name"
	default "PINMUX"
	help
	  The name of the pinmux driver.

config PINMUX_INIT_PRIORITY
	int "Init priority"
	default 45
	help
	  Pinmux driver initialization priority.
	  Pinmux driver almost certainly should be initialized before the
	  rest of hardware devices (which may need specific pins already
	  configured for them), and usually after generic GPIO drivers.
	  Thus, its priority should be between KERNEL_INIT_PRIORITY_DEFAULT
	  and KERNEL_INIT_PRIORITY_DEVICE. There are exceptions to this
	  rule for particular boards. Don't change this value unless you
	  know what you are doing.

source "drivers/pinmux/Kconfig.mcux"

source "drivers/pinmux/Kconfig.mcux_lpc"

source "drivers/pinmux/Kconfig.stm32"

source "drivers/pinmux/Kconfig.beetle"

source "drivers/pinmux/Kconfig.sifive"

source "drivers/pinmux/Kconfig.cc13xx_cc26xx"

source "drivers/pinmux/Kconfig.cc2650"

source "drivers/pinmux/Kconfig.esp32"

source "drivers/pinmux/Kconfig.sam0"

source "drivers/pinmux/Kconfig.intel_s1000"

source "drivers/pinmux/Kconfig.rv32m1"

source "drivers/pinmux/Kconfig.xec"

source "drivers/pinmux/Kconfig.hsdk"

endif # PINMUX
