misc: Add CARMA DATA-FPGA Access Driver

This driver allows userspace to access the data processing FPGAs on the
OVRO CARMA board. It has two modes of operation:

1) random access

This allows users to poke any DATA-FPGA registers by using mmap to map
the address region directly into their memory map.

2) correlation dumping

When correlating, the DATA-FPGA's have special requirements for getting
the data out of their memory before the next correlation. This nominally
happens at 64Hz (every 15.625ms). If the data is not dumped before the
next correlation, data is lost.

The data dumping driver handles buffering up to 1 second worth of
correlation data from the FPGAs. This lowers the realtime scheduling
requirements for the userspace process reading the device.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Ira Snyder 2011-02-11 13:34:29 +00:00 committed by Benjamin Herrenschmidt
parent 41fb5e6260
commit c186f0e177
5 changed files with 1445 additions and 0 deletions

View File

@ -481,5 +481,6 @@ source "drivers/misc/cb710/Kconfig"
source "drivers/misc/iwmc3200top/Kconfig" source "drivers/misc/iwmc3200top/Kconfig"
source "drivers/misc/ti-st/Kconfig" source "drivers/misc/ti-st/Kconfig"
source "drivers/misc/lis3lv02d/Kconfig" source "drivers/misc/lis3lv02d/Kconfig"
source "drivers/misc/carma/Kconfig"
endif # MISC_DEVICES endif # MISC_DEVICES

View File

@ -44,3 +44,4 @@ obj-$(CONFIG_PCH_PHUB) += pch_phub.o
obj-y += ti-st/ obj-y += ti-st/
obj-$(CONFIG_AB8500_PWM) += ab8500-pwm.o obj-$(CONFIG_AB8500_PWM) += ab8500-pwm.o
obj-y += lis3lv02d/ obj-y += lis3lv02d/
obj-y += carma/

View File

@ -0,0 +1,9 @@
config CARMA_FPGA
tristate "CARMA DATA-FPGA Access Driver"
depends on FSL_SOC && PPC_83xx && MEDIA_SUPPORT && HAS_DMA && FSL_DMA
select VIDEOBUF_DMA_SG
default n
help
Say Y here to include support for communicating with the data
processing FPGAs on the OVRO CARMA board.

View File

@ -0,0 +1 @@
obj-$(CONFIG_CARMA_FPGA) += carma-fpga.o

File diff suppressed because it is too large Load Diff