# MCUXpresso SDK pinmux

# Copyright (c) 2016, Freescale Semiconductor, Inc.
# SPDX-License-Identifier: Apache-2.0

menuconfig PINMUX_MCUX
	bool "MCUX pinmux driver"
	depends on HAS_MCUX
	help
	  Enable the MCUX pinmux driver.

if PINMUX_MCUX

config PINMUX_MCUX_PORTA
	bool "Port A"
	help
	  Enable Port A.

config PINMUX_MCUX_PORTA_NAME
	string "Pinmux Port A driver name"
	depends on PINMUX_MCUX_PORTA
	default "porta"

config PINMUX_MCUX_PORTB
	bool "Port B"
	help
	  Enable Port B.

config PINMUX_MCUX_PORTB_NAME
	string "Pinmux Port B driver name"
	depends on PINMUX_MCUX_PORTB
	default "portb"

config PINMUX_MCUX_PORTC
	bool "Port C"
	help
	  Enable Port C.

config PINMUX_MCUX_PORTC_NAME
	string "Pinmux Port C driver name"
	depends on PINMUX_MCUX_PORTC
	default "portc"

config PINMUX_MCUX_PORTD
	bool "Port D"
	help
	  Enable Port D.

config PINMUX_MCUX_PORTD_NAME
	string "Pinmux Port D driver name"
	depends on PINMUX_MCUX_PORTD
	default "portd"

config PINMUX_MCUX_PORTE
	bool "Port E"
	help
	  Enable Port E.

config PINMUX_MCUX_PORTE_NAME
	string "Pinmux Port E driver name"
	depends on PINMUX_MCUX_PORTE
	default "porte"

endif # PINMUX_MCUX
