Linux v5.4-rc3 - fsi

# SPDX-License-Identifier: GPL-2.0-only
# FSI subsystem

menuconfig FSI
	tristate "FSI support"
	depends on OF
	select CRC4
	  FSI - the FRU Support Interface - is a simple bus for low-level
	  access to POWER-based hardware.

if FSI

	bool "Create '/dev/fsi' directory for char devices"
	default n
	This option causes char devices created for FSI devices to be
	located under a common /dev/fsi/ directory. Set to N unless your
	userspace has been updated to handle the new location.

	Additionally, it also causes the char device names to be offset
	by one so that chip 0 will have /dev/scom1 and chip1 /dev/scom2
	to match old userspace expectations.

	New userspace will use udev rules to generate predictable access
	symlinks in /dev/fsi/by-path when this option is enabled.

	tristate "GPIO-based FSI master"
	depends on GPIOLIB
	select CRC4
	This option enables a FSI master driver using GPIO lines.

	tristate "FSI hub master"
	This option enables a FSI hub master driver.  Hub is a type of FSI
	master that is connected to the upstream master via a slave.  Hubs
	allow chaining of FSI links to an arbitrary depth.  This allows for
	a high target device fanout.

	tristate "FSI master based on Aspeed ColdFire coprocessor"
	depends on GPIOLIB
	depends on GPIO_ASPEED
	This option enables a FSI master using the AST2400 and AST2500 GPIO
	lines driven by the internal ColdFire coprocessor. This requires
	the corresponding machine specific ColdFire firmware to be available.

config FSI_SCOM
	tristate "SCOM FSI client device driver"
	This option enables an FSI based SCOM device driver.

	tristate "SBEFIFO FSI client device driver"
	depends on OF_ADDRESS
	This option enables an FSI based SBEFIFO device driver. The SBEFIFO is
	a pipe-like FSI device for communicating with the self boot engine
	(SBE) on POWER processors.

config FSI_OCC
	tristate "OCC SBEFIFO client device driver"
	depends on FSI_SBEFIFO
	This option enables an SBEFIFO based On-Chip Controller (OCC) device
	driver. The OCC is a device embedded on a POWER processor that collects
	and aggregates sensor data from the processor and system. The OCC can
	provide the raw sensor data as well as perform thermal and power
	management on the system.