# Intel SoC GPIO configuration options

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

menuconfig GPIO_INTEL_APL
	bool "Intel Apollo Lake SoC GPIO"
	help
	  Enable driver for Intel Apollo Lake SoC GPIO

config GPIO_INTEL_APL_CHECK_PERMS
	bool "Check permissions before manipulating GPIO"
	default y
	depends on GPIO_INTEL_APL
	help
	  This option enables the checks to make sure the GPIO
	  pin can be manipulated. Only if the pin is owned by
	  the host software and its functioning as GPIO, then
	  the driver allows manipulating the pin.

	  Say y if unsure.
