config ARCH_HAS_RESET_CONTROLLER
	bool

menuconfig RESET_CONTROLLER
	bool "Reset Controller Support"
	default y if ARCH_HAS_RESET_CONTROLLER
	help
	  Generic Reset Controller support.

	  This framework is designed to abstract reset handling of devices
	  via GPIOs or SoC-internal reset controller modules.

	  If unsure, say no.

if RESET_CONTROLLER

config RESET_ATH79
	bool "AR71xx Reset Driver" if COMPILE_TEST
	default ATH79
	help
	  This enables the ATH79 reset controller driver that supports the
	  AR71xx SoC reset controller.

config RESET_BERLIN
	bool "Berlin Reset Driver" if COMPILE_TEST
	default ARCH_BERLIN
	help
	  This enables the reset controller driver for Marvell Berlin SoCs.

config RESET_IMX7
	bool "i.MX7 Reset Driver" if COMPILE_TEST
	default SOC_IMX7D
	select MFD_SYSCON
	help
	  This enables the reset controller driver for i.MX7 SoCs.

config RESET_LPC18XX
	bool "LPC18xx/43xx Reset Driver" if COMPILE_TEST
	default ARCH_LPC18XX
	help
	  This enables the reset controller driver for NXP LPC18xx/43xx SoCs.

config RESET_MESON
	bool "Meson Reset Driver" if COMPILE_TEST
	default ARCH_MESON
	help
	  This enables the reset driver for Amlogic Meson SoCs.

config RESET_OXNAS
	bool

config RESET_PISTACHIO
	bool "Pistachio Reset Driver" if COMPILE_TEST
	default MACH_PISTACHIO
	help
	  This enables the reset driver for ImgTec Pistachio SoCs.

config RESET_SOCFPGA
	bool "SoCFPGA Reset Driver" if COMPILE_TEST
	default ARCH_SOCFPGA
	help
	  This enables the reset controller driver for Altera SoCFPGAs.

config RESET_STM32
	bool "STM32 Reset Driver" if COMPILE_TEST
	default ARCH_STM32
	help
	  This enables the RCC reset controller driver for STM32 MCUs.

config RESET_SUNXI
	bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI
	default ARCH_SUNXI
	help
	  This enables the reset driver for Allwinner SoCs.

config TI_SYSCON_RESET
	tristate "TI SYSCON Reset Driver"
	depends on HAS_IOMEM
	select MFD_SYSCON
	help
	  This enables the reset driver support for TI devices with
	  memory-mapped reset registers as part of a syscon device node. If
	  you wish to use the reset framework for such memory-mapped devices,
	  say Y here. Otherwise, say N.

config RESET_UNIPHIER
	tristate "Reset controller driver for UniPhier SoCs"
	depends on ARCH_UNIPHIER || COMPILE_TEST
	depends on OF && MFD_SYSCON
	default ARCH_UNIPHIER
	help
	  Support for reset controllers on UniPhier SoCs.
	  Say Y if you want to control reset signals provided by System Control
	  block, Media I/O block, Peripheral Block.

config RESET_ZX2967
	bool "ZTE ZX2967 Reset Driver"
	depends on ARCH_ZX || COMPILE_TEST
	help
	  This enables the reset controller driver for ZTE's zx2967 family.

config RESET_ZYNQ
	bool "ZYNQ Reset Driver" if COMPILE_TEST
	default ARCH_ZYNQ
	help
	  This enables the reset controller driver for Xilinx Zynq SoCs.

source "drivers/reset/sti/Kconfig"
source "drivers/reset/hisilicon/Kconfig"
source "drivers/reset/tegra/Kconfig"

endif
