summaryrefslogtreecommitdiff
path: root/release/src/linux/linux/include/asm-cris/etraxvirtex.h
blob: b485d45fa9732142e0105680df72e91c250ad143 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* $Id: etraxvirtex.h,v 1.1.1.4 2003/10/14 08:09:09 sparq Exp $ */

#ifndef _LINUX_ETRAXVIRTEX_FPGA_H
#define _LINUX_ETRAXVIRTEX_FPGA_H

/* etraxvirtex_fpga _IOC_TYPE, bits 8 to 15 in ioctl cmd */

#define ETRAXVIRTEX_FPGA_IOCTYPE 45

/* supported ioctl _IOC_NR's */

/* in write operations, the argument contains both virtex
 * register and value.
 */

#define VIRTEX_FPGA_WRITEARG(reg, value) (((reg) << 16) | (value))
#define VIRTEX_FPGA_READARG(reg) ((reg) << 16)

#define VIRTEX_FPGA_ARGREG(arg) (((arg) >> 16) & 0x0fff)
#define VIRTEX_FPGA_ARGVALUE(arg) ((arg) & 0xffff)

#define VIRTEX_FPGA_WRITEREG 0x1   /* write to an (FPGA implemented) register */
#define VIRTEX_FPGA_READREG  0x2   /* read from an (FPGA implemented register */

/*
EXAMPLE usage:

    virtex_arg = VIRTEX_FPGA_WRITEARG( reg, val);
    ioctl(fd, _IO(ETRAXVIRTEX_FPGA_IOCTYPE, VIRTEX_FPGA_WRITEREG), virtex_arg);

    virtex_arg = VIRTEX_FPGA_READARG( reg);
    val = ioctl(fd, _IO(ETRAXVIRTEX_FPGA_IOCTYPE, VIRTEX_FPGA_READREG), virtex_arg);

*/
#endif