sysreset: diverge GPIO reset and poweroff configs per-phase

GPIO reset and power-off functionality depends on device tree data, which
is often absent in SPL or TPL. To address this, incorporate PHASE_ into the
config option and add Kconfig option or each phase.

Adjust SYSRESET_GPIO and POWEROFF_GPIO uses to address possible
regressions.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
diff --git a/board/sifive/unleashed/Kconfig b/board/sifive/unleashed/Kconfig
index 5d842c3..bf4a00d 100644
--- a/board/sifive/unleashed/Kconfig
+++ b/board/sifive/unleashed/Kconfig
@@ -49,6 +49,7 @@
 	imply SPI_FLASH_ISSI
 	imply SYSRESET
 	imply SYSRESET_GPIO
+	imply SPL_SYSRESET_GPIO if SPL
 	imply CMD_I2C
 
 endif
diff --git a/board/sifive/unmatched/Kconfig b/board/sifive/unmatched/Kconfig
index bc1f33b..991dd23 100644
--- a/board/sifive/unmatched/Kconfig
+++ b/board/sifive/unmatched/Kconfig
@@ -48,6 +48,7 @@
 	imply PHY_MSCC
 	imply SYSRESET
 	imply SYSRESET_GPIO
+	imply SPL_SYSRESET_GPIO if SPL
 	imply CMD_I2C
 
 endif
diff --git a/configs/ge_b1x5v2_defconfig b/configs/ge_b1x5v2_defconfig
index fec4b67..b8cca3c 100644
--- a/configs/ge_b1x5v2_defconfig
+++ b/configs/ge_b1x5v2_defconfig
@@ -116,6 +116,7 @@
 CONFIG_SYSRESET=y
 CONFIG_SYSRESET_CMD_POWEROFF=y
 CONFIG_POWEROFF_GPIO=y
+CONFIG_SPL_POWEROFF_GPIO=y
 CONFIG_SYSRESET_WATCHDOG=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig
index 08f8bdb..7497d20 100644
--- a/configs/microblaze-generic_defconfig
+++ b/configs/microblaze-generic_defconfig
@@ -97,6 +97,7 @@
 CONFIG_XILINX_UARTLITE=y
 CONFIG_XILINX_SPI=y
 CONFIG_SYSRESET_GPIO=y
+CONFIG_SPL_SYSRESET_GPIO=y
 CONFIG_SYSRESET_MICROBLAZE=y
 CONFIG_WDT=y
 CONFIG_XILINX_TB_WATCHDOG=y
diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
index 475540f..4972905 100644
--- a/drivers/sysreset/Kconfig
+++ b/drivers/sysreset/Kconfig
@@ -71,6 +71,27 @@
 	  Support for system poweroff using a GPIO pin. This can be used
 	  for systems having a single GPIO to trigger a system poweroff.
 
+config SPL_POWEROFF_GPIO
+	bool "Enable support for GPIO poweroff driver in SPL"
+	depends on DM_GPIO && SPL
+	help
+	  Support for system poweroff using a GPIO pin in SPL. This can be used
+	  for systems having a single GPIO to trigger a system poweroff.
+
+config TPL_POWEROFF_GPIO
+	bool "Enable support for GPIO poweroff driver in TPL"
+	depends on DM_GPIO && TPL
+	help
+	  Support for system poweroff using a GPIO pin in TPL. This can be used
+	  for systems having a single GPIO to trigger a system poweroff.
+
+config VPL_POWEROFF_GPIO
+	bool "Enable support for GPIO poweroff driver in VPL"
+	depends on DM_GPIO && VPL
+	help
+	  Support for system poweroff using a GPIO pin in VPL. This can be used
+	  for systems having a single GPIO to trigger a system poweroff.
+
 config SYSRESET_GPIO
 	bool "Enable support for GPIO reset driver"
 	depends on DM_GPIO
@@ -79,6 +100,30 @@
 	  example on Microblaze where reset logic can be controlled via GPIO
 	  pin which triggers cpu reset.
 
+config SPL_SYSRESET_GPIO
+	bool "Enable support for GPIO reset driver in SPL"
+	depends on DM_GPIO && SPL
+	help
+	  Reset support via GPIO pin connected reset logic in SPL. This is used
+	  for example on Microblaze where reset logic can be controlled via
+	  GPIO pin which triggers cpu reset.
+
+config TPL_SYSRESET_GPIO
+	bool "Enable support for GPIO reset driver in TPL"
+	depends on DM_GPIO && TPL
+	help
+	  Reset support via GPIO pin connected reset logic in TPL. This is used
+	  for example on Microblaze where reset logic can be controlled via
+	  GPIO pin which triggers cpu reset.
+
+config VPL_SYSRESET_GPIO
+	bool "Enable support for GPIO reset driver in VPL"
+	depends on DM_GPIO && VPL
+	help
+	  Reset support via GPIO pin connected reset logic in VPL. This is used
+	  for example on Microblaze where reset logic can be controlled via
+	  GPIO pin which triggers cpu reset.
+
 config SYSRESET_MAX77663
 	bool "Enable support for MAX77663 PMIC System Reset"
 	depends on DM_PMIC_MAX77663
diff --git a/drivers/sysreset/Makefile b/drivers/sysreset/Makefile
index 796fc9e..ded91a4 100644
--- a/drivers/sysreset/Makefile
+++ b/drivers/sysreset/Makefile
@@ -8,8 +8,8 @@
 obj-$(CONFIG_ARCH_STI) += sysreset_sti.o
 obj-$(CONFIG_SANDBOX) += sysreset_sandbox.o
 obj-$(CONFIG_SYSRESET_CV1800B) += sysreset_cv1800b.o
-obj-$(CONFIG_POWEROFF_GPIO) += poweroff_gpio.o
-obj-$(CONFIG_SYSRESET_GPIO) += sysreset_gpio.o
+obj-$(CONFIG_$(PHASE_)POWEROFF_GPIO) += poweroff_gpio.o
+obj-$(CONFIG_$(PHASE_)SYSRESET_GPIO) += sysreset_gpio.o
 obj-$(CONFIG_$(PHASE_)SYSRESET_MAX77663) += sysreset_max77663.o
 obj-$(CONFIG_SYSRESET_MPC83XX) += sysreset_mpc83xx.o
 obj-$(CONFIG_SYSRESET_MICROBLAZE) += sysreset_microblaze.o