# SPDX-License-Identifier: GPL-2.0-only
#
# Open Coherent Accelerator (OCXL) compatible devices
#

config OCXL_BASE
	bool
	select PPC_COPRO_BASE

config OCXL
	tristate "OpenCAPI coherent accelerator support"
	depends on PPC_POWERNV && PCI && EEH
	select OCXL_BASE
	default m
	help
	  Select this option to enable the ocxl driver for Open
	  Coherent Accelerator Processor Interface (OpenCAPI) devices.

	  OpenCAPI allows FPGA and ASIC accelerators to be coherently
	  attached to a CPU over an OpenCAPI link.

	  The ocxl driver enables userspace programs to access these
	  accelerators through devices in /dev/ocxl/.

	  For more information, see http://opencapi.org.

	  This is not to be confused with the support for IBM CAPI
	  accelerators (CONFIG_CXL), which are PCI-based instead of a
	  dedicated OpenCAPI link, and don't follow the same protocol.

	  If unsure, say N.
