I'm working on mainlining a driver for some PCIe devices that use an Altera FPGA and Configuration via Protocol (CvP) to load the necessary firmware when the driver loads. An RFC patch of this implementation can be seen here: https://lore.kernel.org/netdev/20241028223509.935-1-robert_joslyn@xxxxxxxxxx/T/#t This is implemented as an MFD driver called selpvmf that loads for the PCIe device, which then creates MFD cells for the different functional components within the FPGA. The MFD driver has a CvP implementation to load firmware to the FPGA. It was suggested by the MFD maintainer that this CvP implementation probably belongs elsewhere. This CvP functionality also exists within drivers/fpga/altera-cvp.c, but it's not exposed in a way that I can use from a separate driver. If I understand correctly, the FPGA manager system is designed to create an abstract interface for loading FPGA firmware from userspace. The altera-cvp driver in particular will bind to any device with an Altera vendor ID and let userspace load firmware via CvP. In the selpvmf case, we have our own vendor ID and we're not trying to let userspace load arbitrary firmware. We're really only trying to facilitate our driver loading the necessary firmware for the device to work. Would it be acceptable for me to create a library driver for CvP that is used by both? Or is there some other preferred option? Thanks, Robert