# GPIO configuration options

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

menuconfig GPIO
	bool "GPIO Drivers"
	help
	  Include GPIO drivers in system config

if GPIO

module = GPIO
module-str = gpio
source "subsys/logging/Kconfig.template.log_config"

config GPIO_SHELL
	bool "GPIO Shell"
	depends on SHELL
	help
	  Enable GPIO Shell for testing.

config GPIO_INIT_PRIORITY
	int "GPIO init priority"
	default KERNEL_INIT_PRIORITY_DEFAULT
	help
	  GPIO driver device initialization priority.

config GPIO_GET_DIRECTION
	bool "Support for querying GPIO direction [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  Enable this option if the application does not maintain its own GPIO
	  direction state.

	  With this option enabled, the application may query GPIO direction
	  via gpio_port_get_direction(), gpio_pin_is_input(), and
	  gpio_pin_is_output().

config GPIO_GET_CONFIG
	bool "Support for get configuration function [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables the support for getting the current configurations
	  of GPIOs. The driver must implement it to work.

source "drivers/gpio/Kconfig.b91"

source "drivers/gpio/Kconfig.dw"

source "drivers/gpio/Kconfig.pca95xx"

source "drivers/gpio/Kconfig.mcp23s17"

source "drivers/gpio/Kconfig.mcp23xxx"

source "drivers/gpio/Kconfig.mcux"

source "drivers/gpio/Kconfig.mcux_igpio"

source "drivers/gpio/Kconfig.mcux_lpc"

source "drivers/gpio/Kconfig.mmio32"

source "drivers/gpio/Kconfig.stm32"

source "drivers/gpio/Kconfig.nrfx"

source "drivers/gpio/Kconfig.cmsdk_ahb"

source "drivers/gpio/Kconfig.cc13xx_cc26xx"

source "drivers/gpio/Kconfig.cc32xx"

source "drivers/gpio/Kconfig.sifive"

source "drivers/gpio/Kconfig.esp32"

source "drivers/gpio/Kconfig.gecko"

source "drivers/gpio/Kconfig.sam0"

source "drivers/gpio/Kconfig.sam"

source "drivers/gpio/Kconfig.sx1509b"

source "drivers/gpio/Kconfig.imx"

source "drivers/gpio/Kconfig.it8xxx2"

source "drivers/gpio/Kconfig.intel"

source "drivers/gpio/Kconfig.xec"

source "drivers/gpio/Kconfig.stellaris"

source "drivers/gpio/Kconfig.rpi_pico"

source "drivers/gpio/Kconfig.rv32m1"

source "drivers/gpio/Kconfig.lmp90xxx"

source "drivers/gpio/Kconfig.litex"

source "drivers/gpio/Kconfig.lpc11u6x"

source "drivers/gpio/Kconfig.xlnx"

source "drivers/gpio/Kconfig.npcx"

source "drivers/gpio/Kconfig.emul"

source "drivers/gpio/Kconfig.psoc6"

source "drivers/gpio/Kconfig.pcal6408a"

source "drivers/gpio/Kconfig.eos_s3"

source "drivers/gpio/Kconfig.rcar"

source "drivers/gpio/Kconfig.cy8c95xx"

source "drivers/gpio/Kconfig.creg_gpio"

source "drivers/gpio/Kconfig.stmpe1600"

source "drivers/gpio/Kconfig.pca953x"

source "drivers/gpio/Kconfig.fxl6408"

source "drivers/gpio/Kconfig.andes_atcgpio100"

source "drivers/gpio/Kconfig.neorv32"

source "drivers/gpio/Kconfig.nct38xx"

source "drivers/gpio/Kconfig.test"

source "drivers/gpio/Kconfig.gd32"

source "drivers/gpio/Kconfig.xlnx_ps"

source "drivers/gpio/Kconfig.sn74hc595"

source "drivers/gpio/Kconfig.mchp_mss"

source "drivers/gpio/Kconfig.xmc4xxx"

source "drivers/gpio/Kconfig.smartbond"

endif # GPIO
