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