# SPDX-License-Identifier: GPL-2.0-only
#
# Plug and Play configuration
#

menuconfig PNP
	bool "Plug and Play support"
	depends on HAS_IOMEM
	depends on ISA || ACPI
	help
	  Plug and Play (PnP) is a standard for peripherals which allows those
	  peripherals to be configured by software, e.g. assign IRQ's or other
	  parameters. No jumpers on the cards are needed, instead the values
	  are provided to the cards from the BIOS, from the operating system,
	  or using a user-space utility.

	  Say Y here if you would like Linux to configure your Plug and Play
	  devices. You should then also say Y to all of the protocols below.
	  Alternatively, you can say N here and configure your PnP devices
	  using user space utilities such as the isapnptools package.

	  If unsure, say Y.

config PNP_DEBUG_MESSAGES
	default y
	bool "PNP debugging messages"
	depends on PNP
	help
	  Say Y here if you want the PNP layer to be able to produce debugging
	  messages if needed.  The messages can be enabled at boot-time with
	  the pnp.debug kernel parameter.

	  This option allows you to save a bit of space if you do not want
	  the messages to even be built into the kernel.

	  If you have any doubts about this, say Y here.

if PNP

comment "Protocols"

source "drivers/pnp/isapnp/Kconfig"

source "drivers/pnp/pnpbios/Kconfig"

source "drivers/pnp/pnpacpi/Kconfig"

endif # PNP
