summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/include/spictrl.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/spictrl.h')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/spictrl.h126
1 files changed, 0 insertions, 126 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/spictrl.h b/c/src/lib/libbsp/sparc/shared/include/spictrl.h
deleted file mode 100644
index 98922fbd30..0000000000
--- a/c/src/lib/libbsp/sparc/shared/include/spictrl.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * SPICTRL SPI Driver interface.
- *
- * COPYRIGHT (c) 2009.
- * Cobham Gaisler AB.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __SPICTRL_H__
-#define __SPICTRL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void spictrl_register_drv (void);
-
-/*** REGISTER LAYOUT ***/
-struct spictrl_regs {
- volatile unsigned int capability; /* 0x00 */
- volatile unsigned int resv[7]; /* 0x04 */
- volatile unsigned int mode; /* 0x20 */
- volatile unsigned int event; /* 0x24 */
- volatile unsigned int mask; /* 0x28 */
- volatile unsigned int command; /* 0x2c */
- volatile unsigned int tx; /* 0x30 */
- volatile unsigned int rx; /* 0x34 */
- volatile unsigned int slvsel; /* 0x38 */
- volatile unsigned int am_slvsel; /* 0x3c */
- volatile unsigned int am_cfg; /* 0x40 */
- volatile unsigned int am_period; /* 0x44 */
- int reserved0[2];
- volatile unsigned int am_mask[4]; /* 0x50-0x5C */
- int reserved1[(0x200-0x60)/4];
- volatile unsigned int am_tx[128]; /* 0x200-0x3FC */
- volatile unsigned int am_rx[128]; /* 0x400-0x5FC */
-};
-
-/* -- About automated periodic transfer mode --
- *
- * Core must support this feature.
- *
- * The SPI core must be configured in periodic mode before
- * writing the data into the transfer FIFO which will be used
- * mutiple times in different transfers, it will also make
- * the receive FIFO to be updated.
- *
- * In periodic mode the following sequence is performed,
- * 1. start()
- * 2. ioctl(CONFIG, &config) - Enable periodic mode
- * 3. set_address()
- * 4. write() - Fills TX FIFO, this has some constraints
- * 5. ioctl(START) - Starts the periodic transmission of the TX FIFO
- * 6. read() - Read one response of the tranistted data. It will
- * hang until data is available. If hanging is not an
- * options use ioctl(STATUS)
- * 7. go back to 6.
- *
- * 8. ioctl(STOP) - Stop to set up a new periodic or normal transfer
- * 9. stop()
- *
- * Note that the the read length must equal the total write length.
- */
-
-/* Custom SPICTRL driver ioctl commands */
-#define SPICTRL_IOCTL_PERIOD_START 5000 /* Start automated periodic transfer mode */
-#define SPICTRL_IOCTL_PERIOD_STOP 5001 /* Stop to SPI core from doing periodic transfers */
-#define SPICTRL_IOCTL_CONFIG 5002 /* Configure Periodic transfer mode (before calling write() and START) */
-#define SPICTRL_IOCTL_STATUS 5003 /* Get status */
-
-#define SPICTRL_IOCTL_PERIOD_READ 5005 /* Write transmit registers and mask register
- * (only in automatic periodic mode)
- * Note that it is probably prefferred to read
- * the received words using the read() using
- * operations instead.
- */
-#define SPICTRL_IOCTL_PERIOD_WRITE 5006 /* Read receive registers and mask register
- * (only in automatic periodic mode) */
-#define SPICTRL_IOCTL_REGS 5007 /* Get SPICTRL Register */
-
-/* SPICTRL_IOCTL_CONFIG argument */
-struct spictrl_ioctl_config {
- int clock_gap; /* Clock GAP between */
- unsigned int flags; /* Normal mode flags */
- int periodic_mode; /* 1=Enables Automated periodic transfers if supported by hardware */
- unsigned int period; /* Number of clocks between automated transfers are started */
- unsigned int period_flags; /* Options */
- unsigned int period_slvsel; /* Slave Select when transfer is not active, default is 0xffffffff */
-};
-#define SPICTRL_FLAGS_TAC 0x10
-
-#define SPICTRL_PERIOD_FLAGS_ERPT 0x80 /* Trigger start-period from external signal */
-#define SPICTRL_PERIOD_FLAGS_SEQ 0x40
-#define SPICTRL_PERIOD_FLAGS_STRICT 0x20
-#define SPICTRL_PERIOD_FLAGS_OVTB 0x10
-#define SPICTRL_PERIOD_FLAGS_OVDB 0x08
-#define SPICTRL_PERIOD_FLAGS_ASEL 0x04
-#define SPICTRL_PERIOD_FLAGS_EACT 0x01
-
-/* SPICTRL_IOCTL_PERIOD_READ and SPICTRL_IOCTL_PERIOD_WRITE Argument data structure
- *
- * Note that the order of reading the mask registers are different for read/write
- * operation. See options notes.
- */
-struct spictrl_period_io {
- int options; /* READ: bit0=Read Mask Registers into masks[].
- * bit1=Read Receive registers according to masks[]
- * (after reading masks).
- *
- * WRITE: bit0=Update Mask accoring to masks[].
- * bit1=Update Transmit registers according to masks[].
- * (before reading masks)
- */
- unsigned int masks[4];
-
- void *data; /* Data read sequentially according to masks[] bit. */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif