diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2011-12-20 15:58:05 +0100 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2015-04-17 01:10:17 +0200 |
commit | e67b2b8d0552068d5d2859c02ffb5c2e110056de (patch) | |
tree | 161f7d400a93c7d54569e8b34ceefa45fcaa0aff /c/src/lib/libbsp/sparc/shared/can/occan_pci.c | |
parent | LEON2: added support for LEON2-GRLIB systems (diff) | |
download | rtems-e67b2b8d0552068d5d2859c02ffb5c2e110056de.tar.bz2 |
LEON: updated and added PCI peripherals for LEON BSPs
The CCHIP driver is replaced with the GR_701 driver. The
RASTA driver is replaced by the GR-RASTA-IO driver.
All drivers are now compatible with both LEON2 and LEON3,
drivers were initialized directly by the PCI-board drivers
are now initialized by the driver manager and therefore
does not require the double code created by including for
example grcan.c into grcan_rasta.c. The other drivers needs
to be updated to the driver manager framework however.
Added support for:
* GR-701 (only LEON2 before)
* GR-RASTA-IO (only LEON2 before)
* GR-RASTA-ADCDAC
* GR-RASTA-TMTC
* GR-RASTA-SPW-ROUTER
* GR-TMTC-1553
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/can/occan_pci.c')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/can/occan_pci.c | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/can/occan_pci.c b/c/src/lib/libbsp/sparc/shared/can/occan_pci.c deleted file mode 100644 index 12273c99fc..0000000000 --- a/c/src/lib/libbsp/sparc/shared/can/occan_pci.c +++ /dev/null @@ -1,65 +0,0 @@ -/* PCI cannot do byte accesses to addresses aligned byte wise - * Use alternative reg map. - */ -#define OCCAN_WORD_REGS - -#include <occan_pci.h> - -/* Set registered device name */ -#define OCCAN_DEVNAME "/dev/occanpci0" -#define OCCAN_DEVNAME_NO(devstr,no) ((devstr)[13]='0'+(no)) - -/* Any non-static function will begin with */ -#define OCCAN_PREFIX(name) occanpci##name - -/* do nothing, assume that the interrupt handler is called - * setup externally calling b1553_interrupt_handler. - */ -#define OCCAN_REG_INT(handler,irq,arg) \ - if ( occan_pci_int_reg ) \ - occan_pci_int_reg(handler,irq,arg); - -void (*occan_pci_int_reg)(void *handler, int irq, void *arg) = 0; - -void occanpci_interrupt_handler(int irq, void *arg); - -/* AMBA Bus is clocked using the PCI clock (33.3MHz) */ -#define SYS_FREQ_HZ 33333333 - -/* Enable two redundant channels */ -#define REDUNDANT_CHANNELS 2 - -#define OCCAN_SET_CHANNEL(priv,channel) occanpci_set_channel(priv,channel) - -#include "occan.c" - -/* Define method that sets redundant channel - * The channel select register: - * 0x00 = byte regs - * 0x40 = channel select - * 0x80 = word regs - */ -static void inline occanpci_set_channel(occan_priv *priv, int channel){ - unsigned int *chan_sel = (unsigned int *)(((unsigned int)priv->regs & ~0xff)+0x40); - if ( channel == 0 ) - *chan_sel = 0; - else - *chan_sel = 0xffffffff; -} - -int occan_pci_register(struct ambapp_bus *bus) -{ - /* Setup configuration */ - - /* Register the driver */ - return OCCAN_PREFIX(_register)(bus); -} - - -/* Call this from PCI interrupt handler - * irq = the irq number of the HW device local to that IRQMP controller - * - */ -void occanpci_interrupt_handler(int irq, void *arg){ - occan_interrupt(arg); -} |