menuconfig POWER_RESET
	bool "Board level reset or power off"
	help
	  Provides a number of drivers which either reset a complete board
	  or shut it down, by manipulating the main power supply on the board.

	  Say Y here to enable board reset and power off

if POWER_RESET

config POWER_RESET_AS3722
	bool "ams AS3722 power-off driver"
	depends on MFD_AS3722
	help
	  This driver supports turning off board via a ams AS3722 power-off.

config POWER_RESET_AT91_POWEROFF
	tristate "Atmel AT91 poweroff driver"
	depends on ARCH_AT91
	default SOC_AT91SAM9 || SOC_SAMA5
	help
	  This driver supports poweroff for Atmel AT91SAM9 and SAMA5
	  SoCs

config POWER_RESET_AT91_RESET
	tristate "Atmel AT91 reset driver"
	depends on ARCH_AT91
	default SOC_AT91SAM9 || SOC_SAMA5
	help
	  This driver supports restart for Atmel AT91SAM9 and SAMA5
	  SoCs

config POWER_RESET_AT91_SAMA5D2_SHDWC
	tristate "Atmel AT91 SAMA5D2-Compatible shutdown controller driver"
	depends on ARCH_AT91
	default SOC_SAMA5
	help
	  This driver supports the alternate shutdown controller for some Atmel
	  SAMA5 SoCs. It is present for example on SAMA5D2 SoC.

config POWER_RESET_AXXIA
	bool "LSI Axxia reset driver"
	depends on ARCH_AXXIA
	help
	  This driver supports restart for Axxia SoC.

	  Say Y if you have an Axxia family SoC.

config POWER_RESET_BRCMKONA
	bool "Broadcom Kona reset driver"
	depends on ARM || COMPILE_TEST
	default ARCH_BCM_MOBILE
	help
	  This driver provides restart support for Broadcom Kona chips.

	  Say Y here if you have a Broadcom Kona-based board and you wish
	  to have restart support.

config POWER_RESET_BRCMSTB
	bool "Broadcom STB reset driver"
	depends on ARM || ARM64 || MIPS || COMPILE_TEST
	depends on MFD_SYSCON
	default ARCH_BRCMSTB || BMIPS_GENERIC
	help
	  This driver provides restart support for Broadcom STB boards.

	  Say Y here if you have a Broadcom STB board and you wish
	  to have restart support.

config POWER_RESET_GEMINI_POWEROFF
	bool "Cortina Gemini power-off driver"
	depends on ARCH_GEMINI || COMPILE_TEST
	depends on OF && HAS_IOMEM
	default ARCH_GEMINI
	help
	  This driver supports turning off the Cortina Gemini SoC.
	  Select this if you're building a kernel with Gemini SoC support.

config POWER_RESET_GPIO
	bool "GPIO power-off driver"
	depends on OF_GPIO
	help
	  This driver supports turning off your board via a GPIO line.
	  If your board needs a GPIO high/low to power down, say Y and
	  create a binding in your devicetree.

config POWER_RESET_GPIO_RESTART
	bool "GPIO restart driver"
	depends on OF_GPIO
	help
	  This driver supports restarting your board via a GPIO line.
	  If your board needs a GPIO high/low to restart, say Y and
	  create a binding in your devicetree.

config POWER_RESET_HISI
	bool "Hisilicon power-off driver"
	depends on ARCH_HISI
	help
	  Reboot support for Hisilicon boards.

config POWER_RESET_MSM
	bool "Qualcomm MSM power-off driver"
	depends on ARCH_QCOM
	help
	  Power off and restart support for Qualcomm boards.

config POWER_RESET_QCOM_PON
	tristate "Qualcomm power-on driver"
	depends on ARCH_QCOM
	depends on MFD_SPMI_PMIC
	select REBOOT_MODE
	help
	  Power On support for Qualcomm boards.
	  If you have a Qualcomm platform and need support for
	  power-on and reboot reason, Say Y.
	  If unsure, Say N.

config POWER_RESET_OCELOT_RESET
	bool "Microsemi Ocelot reset driver"
	depends on MSCC_OCELOT || COMPILE_TEST
	select MFD_SYSCON
	help
	  This driver supports restart for Microsemi Ocelot SoC.

config POWER_RESET_PIIX4_POWEROFF
	tristate "Intel PIIX4 power-off driver"
	depends on PCI
	depends on MIPS || COMPILE_TEST
	help
	  This driver supports powering off a system using the Intel PIIX4
	  southbridge, for example the MIPS Malta development board. The
	  southbridge SOff state is entered in response to a request to
	  power off the system.

config POWER_RESET_LTC2952
	bool "LTC2952 PowerPath power-off driver"
	depends on OF_GPIO
	help
	  This driver supports an external powerdown trigger and board power
	  down via the LTC2952. Bindings are made in the device tree.

config POWER_RESET_QNAP
	bool "QNAP power-off driver"
	depends on OF_GPIO && PLAT_ORION
	help
	  This driver supports turning off QNAP NAS devices by sending
	  commands to the microcontroller which controls the main power.

	  Say Y if you have a QNAP NAS.

config POWER_RESET_RESTART
	bool "Restart power-off driver"
	help
	  Some boards don't actually have the ability to power off.
	  Instead they restart, and u-boot holds the SoC until the
	  user presses a key. u-boot then boots into Linux.

config POWER_RESET_ST
	bool "ST restart driver"
	depends on ARCH_STI
	help
	  Reset support for STMicroelectronics boards.

config POWER_RESET_VERSATILE
	bool "ARM Versatile family reboot driver"
	depends on ARM
	depends on MFD_SYSCON
	depends on OF
	help
	  Power off and restart support for ARM Versatile family of
	  reference boards.

config POWER_RESET_VEXPRESS
	bool "ARM Versatile Express power-off and reset driver"
	depends on ARM || ARM64
	depends on VEXPRESS_CONFIG
	help
	  Power off and reset support for the ARM Ltd. Versatile
	  Express boards.

config POWER_RESET_XGENE
	bool "APM SoC X-Gene reset driver"
	depends on ARM64
	help
	  Reboot support for the APM SoC X-Gene Eval boards.

config POWER_RESET_KEYSTONE
	bool "Keystone reset driver"
	depends on ARCH_KEYSTONE || COMPILE_TEST
	depends on HAS_IOMEM
	select MFD_SYSCON
	help
	  Reboot support for the KEYSTONE SoCs.

config POWER_RESET_SYSCON
	bool "Generic SYSCON regmap reset driver"
	depends on OF
	depends on HAS_IOMEM
	select MFD_SYSCON
	help
	  Reboot support for generic SYSCON mapped register reset.

config POWER_RESET_SYSCON_POWEROFF
	bool "Generic SYSCON regmap poweroff driver"
	depends on OF
	depends on HAS_IOMEM
	select MFD_SYSCON
	help
	  Poweroff support for generic SYSCON mapped register poweroff.

config POWER_RESET_RMOBILE
	tristate "Renesas R-Mobile reset driver"
	depends on ARCH_RMOBILE || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Reboot support for Renesas R-Mobile and SH-Mobile SoCs.

config POWER_RESET_ZX
	tristate "ZTE SoCs reset driver"
	depends on ARCH_ZX || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Reboot support for ZTE SoCs.

config REBOOT_MODE
	tristate

config SYSCON_REBOOT_MODE
	tristate "Generic SYSCON regmap reboot mode driver"
	depends on OF
	depends on MFD_SYSCON
	select REBOOT_MODE
	help
	  Say y here will enable reboot mode driver. This will
	  get reboot mode arguments and store it in SYSCON mapped
	  register, then the bootloader can read it to take different
	  action according to the mode.

config POWER_RESET_SC27XX
	bool "Spreadtrum SC27xx PMIC power-off driver"
	depends on MFD_SC27XX_PMIC || COMPILE_TEST
	help
	  This driver supports powering off a system through
	  Spreadtrum SC27xx series PMICs. The SC27xx series
	  PMICs includes the SC2720, SC2721, SC2723, SC2730
	  and SC2731 chips.

endif

