# SPDX-License-Identifier: GPL-2.0-only 
 | 
menuconfig UIO 
 | 
    tristate "Userspace I/O drivers" 
 | 
    depends on MMU 
 | 
    help 
 | 
      Enable this to allow the userspace driver core code to be 
 | 
      built.  This code allows userspace programs easy access to 
 | 
      kernel interrupts and memory locations, allowing some drivers 
 | 
      to be written in userspace.  Note that a small kernel driver 
 | 
      is also required for interrupt handling to work properly. 
 | 
  
 | 
      If you don't know what to do here, say N. 
 | 
  
 | 
if UIO 
 | 
  
 | 
config UIO_CIF 
 | 
    tristate "generic Hilscher CIF Card driver" 
 | 
    depends on PCI 
 | 
    help 
 | 
      Driver for Hilscher CIF DeviceNet and Profibus cards.  This 
 | 
        driver requires a userspace component called cif that handles 
 | 
      all of the heavy lifting and can be found at: 
 | 
            <http://www.osadl.org/projects/downloads/UIO/user/> 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module 
 | 
      will be called uio_cif. 
 | 
  
 | 
config UIO_PDRV_GENIRQ 
 | 
    tristate "Userspace I/O platform driver with generic IRQ handling" 
 | 
    help 
 | 
      Platform driver for Userspace I/O devices, including generic 
 | 
      interrupt handling code. Shared interrupts are not supported. 
 | 
  
 | 
      This kernel driver requires that the matching userspace driver 
 | 
      handles interrupts in a special way. Userspace is responsible 
 | 
      for acknowledging the hardware device if needed, and re-enabling 
 | 
      interrupts in the interrupt controller using the write() syscall. 
 | 
  
 | 
      If you don't know what to do here, say N. 
 | 
  
 | 
config UIO_DMEM_GENIRQ 
 | 
    tristate "Userspace platform driver with generic irq and dynamic memory" 
 | 
    depends on HAS_DMA 
 | 
    help 
 | 
      Platform driver for Userspace I/O devices, including generic 
 | 
      interrupt handling code. Shared interrupts are not supported. 
 | 
  
 | 
      Memory regions can be specified with the same platform device 
 | 
      resources as the UIO_PDRV drivers, but dynamic regions can also 
 | 
      be specified. 
 | 
      The number and size of these regions is static, 
 | 
      but the memory allocation is not performed until 
 | 
      the associated device file is opened. The 
 | 
      memory is freed once the uio device is closed. 
 | 
  
 | 
      If you don't know what to do here, say N. 
 | 
  
 | 
config UIO_AEC 
 | 
    tristate "AEC video timestamp device" 
 | 
    depends on PCI 
 | 
    help 
 | 
  
 | 
      UIO driver for the Adrienne Electronics Corporation PCI time 
 | 
      code device. 
 | 
  
 | 
      This device differs from other UIO devices since it uses I/O 
 | 
      ports instead of memory mapped I/O. In order to make it 
 | 
      possible for UIO to work with this device a utility, uioport, 
 | 
      can be used to read and write the ports: 
 | 
  
 | 
        git clone git://ifup.org/philips/uioport.git 
 | 
  
 | 
      If you compile this as a module, it will be called uio_aec. 
 | 
  
 | 
config UIO_SERCOS3 
 | 
    tristate "Automata Sercos III PCI card driver" 
 | 
    depends on PCI 
 | 
    help 
 | 
      Userspace I/O interface for the Sercos III PCI card from 
 | 
      Automata GmbH. The userspace part of this driver will be 
 | 
      available for download from the Automata GmbH web site. 
 | 
  
 | 
      Automata GmbH:        http://www.automataweb.com 
 | 
      Sercos III interface: http://www.sercos.com 
 | 
  
 | 
      If you compile this as a module, it will be called uio_sercos3. 
 | 
  
 | 
config UIO_PCI_GENERIC 
 | 
    tristate "Generic driver for PCI 2.3 and PCI Express cards" 
 | 
    depends on PCI 
 | 
    help 
 | 
      Generic driver that you can bind, dynamically, to any 
 | 
      PCI 2.3 compliant and PCI Express card. It is useful, 
 | 
      primarily, for virtualization scenarios. 
 | 
      If you compile this as a module, it will be called uio_pci_generic. 
 | 
  
 | 
config UIO_NETX 
 | 
    tristate "Hilscher NetX Card driver" 
 | 
    depends on PCI 
 | 
    help 
 | 
      Driver for Hilscher NetX based fieldbus cards (cifX, comX). 
 | 
      This driver requires a userspace component that comes with the card 
 | 
      or is available from Hilscher (http://www.hilscher.com). 
 | 
  
 | 
      To compile this driver as a module, choose M here; the module 
 | 
      will be called uio_netx. 
 | 
  
 | 
config UIO_FSL_ELBC_GPCM 
 | 
    tristate "eLBC/GPCM driver" 
 | 
    depends on FSL_LBC 
 | 
    help 
 | 
      Generic driver for accessing a peripheral connected to an eLBC port 
 | 
      that is running in GPCM mode. GPCM is an interface for simple lower 
 | 
      performance memories and memory-mapped devices. For devices using 
 | 
      FCM or UPM eLBC modes, other device-specific drivers are available. 
 | 
  
 | 
config UIO_FSL_ELBC_GPCM_NETX5152 
 | 
    bool "eLBC/GPCM netX 51/52 support" 
 | 
    depends on UIO_FSL_ELBC_GPCM 
 | 
    help 
 | 
      This will add support for netX 51/52 devices connected via eLBC/GPCM. 
 | 
      In particular, it implements interrupt handling. This can be used 
 | 
      together with the userspace netX stack from Hilscher. 
 | 
  
 | 
      Information about this hardware can be found at: 
 | 
      http://www.hilscher.com/netx 
 | 
  
 | 
config UIO_PRUSS 
 | 
    tristate "Texas Instruments PRUSS driver" 
 | 
    select GENERIC_ALLOCATOR 
 | 
    depends on HAS_IOMEM && HAS_DMA 
 | 
    help 
 | 
      PRUSS driver for OMAPL138/DA850/AM18XX devices 
 | 
      PRUSS driver requires user space components, examples and user space 
 | 
      driver is available from below SVN repo - you may use anonymous login 
 | 
  
 | 
      https://gforge.ti.com/gf/project/pru_sw/ 
 | 
  
 | 
      More info on API is available at below wiki 
 | 
  
 | 
      http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module 
 | 
      will be called uio_pruss. 
 | 
  
 | 
config UIO_MF624 
 | 
    tristate "Humusoft MF624 DAQ PCI card driver" 
 | 
    depends on PCI 
 | 
    help 
 | 
      Userspace I/O interface for the Humusoft MF624 PCI card. 
 | 
      A sample userspace application using this driver is available 
 | 
      (among other MF624 related information and software components) 
 | 
      for download in a git repository: 
 | 
  
 | 
        git clone git://rtime.felk.cvut.cz/mf6xx.git 
 | 
  
 | 
      If you compile this as a module, it will be called uio_mf624. 
 | 
  
 | 
config UIO_HV_GENERIC 
 | 
    tristate "Generic driver for Hyper-V VMBus" 
 | 
    depends on HYPERV 
 | 
    help 
 | 
      Generic driver that you can bind, dynamically, to any 
 | 
      Hyper-V VMBus device. It is useful to provide direct access 
 | 
      to network and storage devices from userspace. 
 | 
  
 | 
      If you compile this as a module, it will be called uio_hv_generic. 
 | 
endif 
 |