mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
453ed4283b
The Sparx5 Switch SoC has a number of components that can be reset indiviually, but at least the Switch Core needs to be in a well defined state at power on, when any of the Sparx5 drivers starts to access the Switch Core, this reset driver is available. The reset driver is loaded early via the postcore_initcall interface, and will then be available for the other Sparx5 drivers (SGPIO, SwitchDev etc) that are loaded next, and the first of them to be loaded can perform the one-time Switch Core reset that is needed. The driver has protection so that the system busses, DDR controller, PCI-E and ARM A53 CPU and a few other subsystems are not touched by the reset. Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com> Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
280 lines
8.4 KiB
Plaintext
280 lines
8.4 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
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_A10SR
|
|
tristate "Altera Arria10 System Resource Reset"
|
|
depends on MFD_ALTERA_A10SR
|
|
help
|
|
This option enables support for the external reset functions for
|
|
peripheral PHYs on the Altera Arria10 System Resource Chip.
|
|
|
|
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_AXS10X
|
|
bool "AXS10x Reset Driver" if COMPILE_TEST
|
|
default ARC_PLAT_AXS10X
|
|
help
|
|
This enables the reset controller driver for AXS10x.
|
|
|
|
config RESET_BCM6345
|
|
bool "BCM6345 Reset Controller"
|
|
depends on BMIPS_GENERIC || COMPILE_TEST
|
|
default BMIPS_GENERIC
|
|
help
|
|
This enables the reset controller driver for BCM6345 SoCs.
|
|
|
|
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_BRCMSTB
|
|
tristate "Broadcom STB reset controller"
|
|
depends on ARCH_BRCMSTB || COMPILE_TEST
|
|
default ARCH_BRCMSTB
|
|
help
|
|
This enables the reset controller driver for Broadcom STB SoCs using
|
|
a SUN_TOP_CTRL_SW_INIT style controller.
|
|
|
|
config RESET_BRCMSTB_RESCAL
|
|
bool "Broadcom STB RESCAL reset controller"
|
|
depends on HAS_IOMEM
|
|
default ARCH_BRCMSTB || COMPILE_TEST
|
|
help
|
|
This enables the RESCAL reset controller for SATA, PCIe0, or PCIe1 on
|
|
BCM7216.
|
|
|
|
config RESET_HSDK
|
|
bool "Synopsys HSDK Reset Driver"
|
|
depends on HAS_IOMEM
|
|
depends on ARC_SOC_HSDK || COMPILE_TEST
|
|
help
|
|
This enables the reset controller driver for HSDK board.
|
|
|
|
config RESET_IMX7
|
|
tristate "i.MX7/8 Reset Driver"
|
|
depends on HAS_IOMEM
|
|
depends on SOC_IMX7D || (ARM64 && ARCH_MXC) || COMPILE_TEST
|
|
default y if SOC_IMX7D
|
|
select MFD_SYSCON
|
|
help
|
|
This enables the reset controller driver for i.MX7 SoCs.
|
|
|
|
config RESET_INTEL_GW
|
|
bool "Intel Reset Controller Driver"
|
|
depends on OF && HAS_IOMEM
|
|
select REGMAP_MMIO
|
|
help
|
|
This enables the reset controller driver for Intel Gateway SoCs.
|
|
Say Y to control the reset signals provided by reset controller.
|
|
Otherwise, say N.
|
|
|
|
config RESET_K210
|
|
bool "Reset controller driver for Canaan Kendryte K210 SoC"
|
|
depends on (SOC_CANAAN || COMPILE_TEST) && OF
|
|
select MFD_SYSCON
|
|
default SOC_CANAAN
|
|
help
|
|
Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
|
|
Say Y if you want to control reset signals provided by this
|
|
controller.
|
|
|
|
config RESET_LANTIQ
|
|
bool "Lantiq XWAY Reset Driver" if COMPILE_TEST
|
|
default SOC_TYPE_XWAY
|
|
help
|
|
This enables the reset controller driver for Lantiq / Intel XWAY 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_MCHP_SPARX5
|
|
bool "Microchip Sparx5 reset driver"
|
|
depends on HAS_IOMEM || COMPILE_TEST
|
|
default y if SPARX5_SWITCH
|
|
select MFD_SYSCON
|
|
help
|
|
This driver supports switch core reset for the Microchip Sparx5 SoC.
|
|
|
|
config RESET_MESON
|
|
tristate "Meson Reset Driver"
|
|
depends on ARCH_MESON || COMPILE_TEST
|
|
default ARCH_MESON
|
|
help
|
|
This enables the reset driver for Amlogic Meson SoCs.
|
|
|
|
config RESET_MESON_AUDIO_ARB
|
|
tristate "Meson Audio Memory Arbiter Reset Driver"
|
|
depends on ARCH_MESON || COMPILE_TEST
|
|
help
|
|
This enables the reset driver for Audio Memory Arbiter of
|
|
Amlogic's A113 based SoCs
|
|
|
|
config RESET_NPCM
|
|
bool "NPCM BMC Reset Driver" if COMPILE_TEST
|
|
default ARCH_NPCM
|
|
help
|
|
This enables the reset controller driver for Nuvoton NPCM
|
|
BMC 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_QCOM_AOSS
|
|
tristate "Qcom AOSS Reset Driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
help
|
|
This enables the AOSS (always on subsystem) reset driver
|
|
for Qualcomm SDM845 SoCs. Say Y if you want to control
|
|
reset signals provided by AOSS for Modem, Venus, ADSP,
|
|
GPU, Camera, Wireless, Display subsystem. Otherwise, say N.
|
|
|
|
config RESET_QCOM_PDC
|
|
tristate "Qualcomm PDC Reset Driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
help
|
|
This enables the PDC (Power Domain Controller) reset driver
|
|
for Qualcomm Technologies Inc SDM845 SoCs. Say Y if you want
|
|
to control reset signals provided by PDC for Modem, Compute,
|
|
Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS.
|
|
|
|
config RESET_RASPBERRYPI
|
|
tristate "Raspberry Pi 4 Firmware Reset Driver"
|
|
depends on RASPBERRYPI_FIRMWARE || (RASPBERRYPI_FIRMWARE=n && COMPILE_TEST)
|
|
default USB_XHCI_PCI
|
|
help
|
|
Raspberry Pi 4's co-processor controls some of the board's HW
|
|
initialization process, but it's up to Linux to trigger it when
|
|
relevant. This driver provides a reset controller capable of
|
|
interfacing with RPi4's co-processor and model these firmware
|
|
initialization routines as reset lines.
|
|
|
|
config RESET_SCMI
|
|
tristate "Reset driver controlled via ARM SCMI interface"
|
|
depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
|
|
default ARM_SCMI_PROTOCOL
|
|
help
|
|
This driver provides support for reset signal/domains that are
|
|
controlled by firmware that implements the SCMI interface.
|
|
|
|
This driver uses SCMI Message Protocol to interact with the
|
|
firmware controlling all the reset signals.
|
|
|
|
config RESET_SIMPLE
|
|
bool "Simple Reset Controller Driver" if COMPILE_TEST
|
|
default ARCH_ASPEED || ARCH_BCM4908 || ARCH_BITMAIN || ARCH_REALTEK || ARCH_STM32 || (ARCH_INTEL_SOCFPGA && ARM64) || ARCH_SUNXI || ARC
|
|
help
|
|
This enables a simple reset controller driver for reset lines that
|
|
that can be asserted and deasserted by toggling bits in a contiguous,
|
|
exclusive register space.
|
|
|
|
Currently this driver supports:
|
|
- Altera SoCFPGAs
|
|
- ASPEED BMC SoCs
|
|
- Bitmain BM1880 SoC
|
|
- Realtek SoCs
|
|
- RCC reset controller in STM32 MCUs
|
|
- Allwinner SoCs
|
|
- ZTE's zx2967 family
|
|
- SiFive FU740 SoCs
|
|
|
|
config RESET_STM32MP157
|
|
bool "STM32MP157 Reset Driver" if COMPILE_TEST
|
|
default MACH_STM32MP157
|
|
help
|
|
This enables the RCC reset controller driver for STM32 MPUs.
|
|
|
|
config RESET_SOCFPGA
|
|
bool "SoCFPGA Reset Driver" if COMPILE_TEST && (!ARM || !ARCH_INTEL_SOCFPGA)
|
|
default ARM && ARCH_INTEL_SOCFPGA
|
|
select RESET_SIMPLE
|
|
help
|
|
This enables the reset driver for the SoCFPGA ARMv7 platforms. This
|
|
driver gets initialized early during platform init calls.
|
|
|
|
config RESET_SUNXI
|
|
bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI
|
|
default ARCH_SUNXI
|
|
select RESET_SIMPLE
|
|
help
|
|
This enables the reset driver for Allwinner SoCs.
|
|
|
|
config RESET_TI_SCI
|
|
tristate "TI System Control Interface (TI-SCI) reset driver"
|
|
depends on TI_SCI_PROTOCOL
|
|
help
|
|
This enables the reset driver support over TI System Control Interface
|
|
available on some new TI's SoCs. If you wish to use reset resources
|
|
managed by the TI System Controller, say Y here. Otherwise, say N.
|
|
|
|
config RESET_TI_SYSCON
|
|
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_UNIPHIER_GLUE
|
|
tristate "Reset driver in glue layer for UniPhier SoCs"
|
|
depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
|
|
default ARCH_UNIPHIER
|
|
select RESET_SIMPLE
|
|
help
|
|
Support for peripheral core reset included in its own glue layer
|
|
on UniPhier SoCs. Say Y if you want to control reset signals
|
|
provided by the glue layer.
|
|
|
|
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
|