sysreset: diverge GPIO reset and poweroff configs per-phase
authorSvyatoslav Ryhel <clamor95@gmail.com>
Sat, 29 Mar 2025 11:02:03 +0000 (13:02 +0200)
committerSvyatoslav Ryhel <clamor95@gmail.com>
Sat, 12 Apr 2025 06:42:36 +0000 (09:42 +0300)
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>
board/sifive/unleashed/Kconfig
board/sifive/unmatched/Kconfig
configs/ge_b1x5v2_defconfig
configs/microblaze-generic_defconfig
drivers/sysreset/Kconfig
drivers/sysreset/Makefile

index 5d842c3..bf4a00d 100644 (file)
@@ -49,6 +49,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        imply SPI_FLASH_ISSI
        imply SYSRESET
        imply SYSRESET_GPIO
+       imply SPL_SYSRESET_GPIO if SPL
        imply CMD_I2C
 
 endif
index bc1f33b..991dd23 100644 (file)
@@ -48,6 +48,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        imply PHY_MSCC
        imply SYSRESET
        imply SYSRESET_GPIO
+       imply SPL_SYSRESET_GPIO if SPL
        imply CMD_I2C
 
 endif
index fec4b67..b8cca3c 100644 (file)
@@ -116,6 +116,7 @@ CONFIG_MXC_SPI=y
 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
index 08f8bdb..7497d20 100644 (file)
@@ -97,6 +97,7 @@ CONFIG_SYS_NS16550=y
 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
index 475540f..4972905 100644 (file)
@@ -71,6 +71,27 @@ config POWEROFF_GPIO
          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 @@ config SYSRESET_GPIO
          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
index 796fc9e..ded91a4 100644 (file)
@@ -8,8 +8,8 @@ obj-$(CONFIG_ARCH_ROCKCHIP) += sysreset_rockchip.o
 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