# Kconfig - Galileo Pinmux configuration options

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

if PINMUX && BOARD_GALILEO

comment "Galileo Pinmux Options"

config PINMUX_GALILEO_EXP0_NAME
	string "Name of the GPIO expander 0"
	default "EXP0"
	help
	  The name of the GPIO expander labeled as EXP0 in the schematic.

config PINMUX_GALILEO_EXP1_NAME
	string "Name of the GPIO expander 1"
	default "EXP1"
	help
	  The name of the GPIO expander labeled as EXP1 in the schematic.

config PINMUX_GALILEO_EXP2_NAME
	string "Name of the GPIO expander 2"
	default "EXP2"
	help
	  The name of the GPIO expander labeled as EXP2 in the schematic.

config PINMUX_GALILEO_PWM0_NAME
	string "Name of the PWM LED expander 0"
	default "PWM0"
	help
	  The name of the PWM LED expander labeled as PWM0 in the schematic.

config PINMUX_GALILEO_GPIO_DW_NAME
	string "Name of the DesignWare GPIO"
	default "GPIO_0"
	help
	  The name of the DesignWare GPIO with GPIO<0>..GPIO<7> in the schematic.

config PINMUX_GALILEO_GPIO_INTEL_CW_NAME
	string "Name of the Legacy Bridge Core Well GPIO"
	default "GPIO_M0"
	help
	  The name of the Legacy Bridge Core Well GPIO with GPIO<8>..GPIO<9>
	  in the schematic.

config PINMUX_GALILEO_GPIO_INTEL_RW_NAME
	string "Name of the Legacy Bridge Resume Well GPIO"
	default "GPIO_M1"
	help
	  The name of the Legacy Bridge Resume Well GPIO with
	  GPIO_SUS<0>..GPIO_SUS<5> in the schematic.

endif
