# 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 HOTPLUG_PCI_POWERNV
	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 https://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.
