# GPIO configuration options

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

menuconfig GPIO
	bool "General-Purpose Input/Output (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_SHELL_INFO_CMD
	bool "GPIO Shell info command"
	default y
	depends on GPIO_SHELL
	help
	  Enable GPIO Shell information command.
	  This command provides a shell user extra information about gpio
	  controller reserved pins and line names.

config GPIO_SHELL_TOGGLE_CMD
	bool "GPIO Shell toggle command"
	default y
	depends on GPIO_SHELL
	help
	  Enable GPIO Shell toggle command.

config GPIO_SHELL_BLINK_CMD
	bool "GPIO Shell blink command"
	default y
	depends on GPIO_SHELL
	help
	  Enable GPIO Shell blink command.
	  This command provides a shell user the ability to 'blink' a pin
	  at 1Hz.

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.

config GPIO_ENABLE_DISABLE_INTERRUPT
	bool "Support for enable/disable interrupt without re-config [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables the support for enabling/disabling interrupt with
	  previous configuration, and enabling/disabling the interrupt only turns
	  on/off the interrupt signal without changing other registers, such as
	  pending register, etc. The driver must implement it to work.

# zephyr-keep-sorted-start
source "drivers/gpio/Kconfig.ad559x"
source "drivers/gpio/Kconfig.adp5585"
source "drivers/gpio/Kconfig.ads1x4s0x"
source "drivers/gpio/Kconfig.aesc"
source "drivers/gpio/Kconfig.altera"
source "drivers/gpio/Kconfig.ambiq"
source "drivers/gpio/Kconfig.ameba"
source "drivers/gpio/Kconfig.andes_atcgpio100"
source "drivers/gpio/Kconfig.aw9523b"
source "drivers/gpio/Kconfig.axp192"
source "drivers/gpio/Kconfig.b91"
source "drivers/gpio/Kconfig.bcm2711"
source "drivers/gpio/Kconfig.bd8lb600fs"
source "drivers/gpio/Kconfig.bflb"
source "drivers/gpio/Kconfig.brcmstb"
source "drivers/gpio/Kconfig.cc13xx_cc26xx"
source "drivers/gpio/Kconfig.cc23x0"
source "drivers/gpio/Kconfig.cc32xx"
source "drivers/gpio/Kconfig.cmsdk_ahb"
source "drivers/gpio/Kconfig.creg_gpio"
source "drivers/gpio/Kconfig.cy8c95xx"
source "drivers/gpio/Kconfig.davinci"
source "drivers/gpio/Kconfig.dw"
source "drivers/gpio/Kconfig.efinix_sapphire"
source "drivers/gpio/Kconfig.emul"
source "drivers/gpio/Kconfig.emul_sdl"
source "drivers/gpio/Kconfig.ene"
source "drivers/gpio/Kconfig.eos_s3"
source "drivers/gpio/Kconfig.esp32"
source "drivers/gpio/Kconfig.fxl6408"
source "drivers/gpio/Kconfig.gd32"
source "drivers/gpio/Kconfig.gecko"
source "drivers/gpio/Kconfig.grgpio"
source "drivers/gpio/Kconfig.imx"
source "drivers/gpio/Kconfig.infineon"
source "drivers/gpio/Kconfig.intel"
source "drivers/gpio/Kconfig.iproc"
source "drivers/gpio/Kconfig.it51xxx"
source "drivers/gpio/Kconfig.it8801"
source "drivers/gpio/Kconfig.it8xxx2"
source "drivers/gpio/Kconfig.litex"
source "drivers/gpio/Kconfig.lmp90xxx"
source "drivers/gpio/Kconfig.lpc11u6x"
source "drivers/gpio/Kconfig.max14906"
source "drivers/gpio/Kconfig.max14916"
source "drivers/gpio/Kconfig.max14917"
source "drivers/gpio/Kconfig.max22017"
source "drivers/gpio/Kconfig.max2219x"
source "drivers/gpio/Kconfig.max32"
source "drivers/gpio/Kconfig.mchp"
source "drivers/gpio/Kconfig.mchp_mss"
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.mcux_rgpio"
source "drivers/gpio/Kconfig.mfxstm32l152"
source "drivers/gpio/Kconfig.mmio32"
source "drivers/gpio/Kconfig.mspm0"
source "drivers/gpio/Kconfig.nct38xx"
source "drivers/gpio/Kconfig.neorv32"
source "drivers/gpio/Kconfig.npcx"
source "drivers/gpio/Kconfig.npm13xx"
source "drivers/gpio/Kconfig.npm2100"
source "drivers/gpio/Kconfig.npm6001"
source "drivers/gpio/Kconfig.nrfx"
source "drivers/gpio/Kconfig.numaker"
source "drivers/gpio/Kconfig.numicro"
source "drivers/gpio/Kconfig.nxp_siul2"
source "drivers/gpio/Kconfig.pca953x"
source "drivers/gpio/Kconfig.pca95xx"
source "drivers/gpio/Kconfig.pca_series"
source "drivers/gpio/Kconfig.pcal64xxa"
source "drivers/gpio/Kconfig.pcal9722"
source "drivers/gpio/Kconfig.pcf857x"
source "drivers/gpio/Kconfig.psoc6"
source "drivers/gpio/Kconfig.rcar"
source "drivers/gpio/Kconfig.renesas_ra_ioport"
source "drivers/gpio/Kconfig.renesas_rx"
source "drivers/gpio/Kconfig.renesas_rz"
source "drivers/gpio/Kconfig.renesas_rza2m"
source "drivers/gpio/Kconfig.rp1"
source "drivers/gpio/Kconfig.rpi_pico"
source "drivers/gpio/Kconfig.rt1718s"
source "drivers/gpio/Kconfig.rts5912"
source "drivers/gpio/Kconfig.rv32m1"
source "drivers/gpio/Kconfig.rzt2m"
source "drivers/gpio/Kconfig.sam"
source "drivers/gpio/Kconfig.sam0"
source "drivers/gpio/Kconfig.sc18im704"
source "drivers/gpio/Kconfig.sedi"
source "drivers/gpio/Kconfig.sf32lb"
source "drivers/gpio/Kconfig.si32"
source "drivers/gpio/Kconfig.sifive"
source "drivers/gpio/Kconfig.silabs"
source "drivers/gpio/Kconfig.siwx91x"
source "drivers/gpio/Kconfig.smartbond"
source "drivers/gpio/Kconfig.sn74hc595"
source "drivers/gpio/Kconfig.stellaris"
source "drivers/gpio/Kconfig.stm32"
source "drivers/gpio/Kconfig.stmpe1600"
source "drivers/gpio/Kconfig.sx1509b"
source "drivers/gpio/Kconfig.sy1xx"
source "drivers/gpio/Kconfig.tca6424a"
source "drivers/gpio/Kconfig.test"
source "drivers/gpio/Kconfig.tle9104"
source "drivers/gpio/Kconfig.wch_ch32v00x"
source "drivers/gpio/Kconfig.xec"
source "drivers/gpio/Kconfig.xlnx"
source "drivers/gpio/Kconfig.xlnx_ps"
source "drivers/gpio/Kconfig.xmc4xxx"
# zephyr-keep-sorted-stop

endif # GPIO
