# 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.

config GPIO_HOGS
	bool "Support for GPIO hogs"
	default $(dt_gpio_hogs_enabled)
	help
	  Enable support for GPIO hogs. GPIO hogging is a mechanism for providing
	  automatic GPIO configuration via devicetree.

config GPIO_HOGS_INIT_PRIORITY
	int "GPIO hogs init priority"
	default 41
	depends on GPIO_HOGS
	help
	  GPIO hogs initialization priority. GPIO hogs must be initialized after the
	  GPIO controller drivers.

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.emul_sdl"

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.pcf8574"

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"

source "drivers/gpio/Kconfig.nxp_s32"

source "drivers/gpio/Kconfig.tca6424a"

source "drivers/gpio/Kconfig.npm6001"

source "drivers/gpio/Kconfig.rt1718s"

source "drivers/gpio/Kconfig.numicro"

source "drivers/gpio/Kconfig.zephyr"

endif # GPIO
