mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00

Toradex SMARC iMX8MP and SMARC iMX95 SoM modules use a small Embedded Controller (EC) to manage power and reset functions and related SMARC signals. This driver implements power-off and reboot handlers, communicating with the EC via I2C to issue the appropriate power management commands. During probe, the driver logs the Embedded Controller ID (unique ID for each SMARC board supported) in hex format along with the firmware version. Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Link: https://lore.kernel.org/r/20250414171455.155155-3-francesco@dolcini.it Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
332 lines
9.5 KiB
Plaintext
332 lines
9.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
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_SAM9X60 || SOC_SAM9X7 || 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_SAM9X60 || SOC_SAM9X7 || 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_ATC260X
|
|
tristate "Actions Semi ATC260x PMIC power-off driver"
|
|
depends on MFD_ATC260X
|
|
help
|
|
This driver provides power-off and restart support for a system
|
|
through Actions Semi ATC260x series PMICs.
|
|
|
|
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 ARCH_BRCMSTB || BMIPS_GENERIC || 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_EP93XX
|
|
bool "Cirrus EP93XX reset driver" if COMPILE_TEST
|
|
depends on MFD_SYSCON
|
|
default ARCH_EP93XX
|
|
select AUXILIARY_BUS
|
|
help
|
|
This driver provides restart support for Cirrus EP93XX SoC.
|
|
|
|
Say Y here if you have a Cirrus EP93XX SoC 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_LINKSTATION
|
|
tristate "Buffalo LinkStation power-off driver"
|
|
depends on ARCH_MVEBU || COMPILE_TEST
|
|
depends on OF_MDIO && PHYLIB
|
|
help
|
|
This driver supports turning off some Buffalo LinkStations by
|
|
setting an output pin at the ethernet PHY to the correct state.
|
|
It also makes the device compatible with the WoL function.
|
|
|
|
Say Y here if you have a Buffalo LinkStation LS421D/E.
|
|
|
|
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 || ARCH_SPARX5 || COMPILE_TEST
|
|
select MFD_SYSCON
|
|
help
|
|
This driver supports restart for Microsemi Ocelot SoC and similar.
|
|
|
|
config POWER_RESET_ODROID_GO_ULTRA_POWEROFF
|
|
bool "Odroid Go Ultra power-off driver"
|
|
depends on ARCH_MESON || COMPILE_TEST
|
|
depends on I2C=y && OF
|
|
help
|
|
This driver supports Power off for Odroid Go Ultra device.
|
|
|
|
config POWER_RESET_PIIX4_POWEROFF
|
|
tristate "Intel PIIX4 power-off driver"
|
|
depends on PCI
|
|
depends on HAS_IOPORT
|
|
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_MT6323
|
|
bool "MediaTek MT6323 power-off driver"
|
|
depends on MFD_MT6397
|
|
help
|
|
The power-off driver is responsible for externally shutdown down
|
|
the power of a remote MediaTek SoC MT6323 is connected to through
|
|
controlling a tiny circuit BBPU inside MT6323 RTC.
|
|
|
|
Say Y if you have a board where MT6323 could be found.
|
|
|
|
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_REGULATOR
|
|
bool "Regulator subsystem power-off driver"
|
|
depends on OF && REGULATOR
|
|
help
|
|
This driver supports turning off your board by disabling a
|
|
power regulator defined in the devicetree.
|
|
|
|
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_TORADEX_EC
|
|
tristate "Toradex Embedded Controller power-off and reset driver"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports power-off and reset for SMARC Toradex SoMs,
|
|
for example the SMARC iMX8MP and SMARC iMX95, using Toradex
|
|
Embedded Controller (EC).
|
|
|
|
Say Y here if you have a Toradex SMARC SoM.
|
|
|
|
If unsure, say N.
|
|
|
|
config POWER_RESET_TPS65086
|
|
bool "TPS65086 restart driver"
|
|
depends on MFD_TPS65086
|
|
help
|
|
This driver adds support for resetting the TPS65086 PMIC on restart.
|
|
|
|
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=y
|
|
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 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
|
|
tristate "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.
|
|
|
|
config NVMEM_REBOOT_MODE
|
|
tristate "Generic NVMEM reboot mode driver"
|
|
depends on OF
|
|
select REBOOT_MODE
|
|
help
|
|
Say y here will enable reboot mode driver. This will
|
|
get reboot mode arguments and store it in a NVMEM cell,
|
|
then the bootloader can read it and take different
|
|
action according to the mode.
|
|
|
|
config POWER_MLXBF
|
|
tristate "Mellanox BlueField power handling driver"
|
|
depends on (GPIO_MLXBF2 || GPIO_MLXBF3) && ACPI
|
|
help
|
|
This driver supports reset or low power mode handling for Mellanox BlueField.
|
|
|
|
endif
|