OCXL_BASE triggers the platform support needed by the driver.
Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
 source "drivers/misc/genwqe/Kconfig"
 source "drivers/misc/echo/Kconfig"
 source "drivers/misc/cxl/Kconfig"
+source "drivers/misc/ocxl/Kconfig"
 endmenu
 
 obj-$(CONFIG_ASPEED_LPC_CTRL)  += aspeed-lpc-ctrl.o
 obj-$(CONFIG_ASPEED_LPC_SNOOP) += aspeed-lpc-snoop.o
 obj-$(CONFIG_PCI_ENDPOINT_TEST)        += pci_endpoint_test.o
+obj-$(CONFIG_OCXL)             += ocxl/
 
 lkdtm-$(CONFIG_LKDTM)          += lkdtm_core.o
 lkdtm-$(CONFIG_LKDTM)          += lkdtm_bugs.o
 
--- /dev/null
+#
+# Open Coherent Accelerator (OCXL) compatible devices
+#
+
+config OCXL_BASE
+       bool
+       default n
+       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.
 
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0+
+ccflags-$(CONFIG_PPC_WERROR)   += -Werror
+
+ocxl-y                         += main.o pci.o config.o file.o pasid.o
+ocxl-y                         += link.o context.o afu_irq.o sysfs.o trace.o
+obj-$(CONFIG_OCXL)             += ocxl.o
+
+# For tracepoints to include our trace.h from tracepoint infrastructure:
+CFLAGS_trace.o := -I$(src)
+
+# ccflags-y += -DDEBUG