linux/include/asm-sparc/ebus.h
<<
>>
Prefs
   1/* $Id: ebus.h,v 1.2 1999/09/11 23:05:55 zaitcev Exp $
   2 * ebus.h: PCI to Ebus pseudo driver software state.
   3 *
   4 * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be) 
   5 *
   6 * Adopted for sparc by V. Roganov and G. Raiko.
   7 */
   8
   9#ifndef __SPARC_EBUS_H
  10#define __SPARC_EBUS_H
  11
  12#ifndef _LINUX_IOPORT_H
  13#include <linux/ioport.h>
  14#endif
  15#include <asm/oplib.h>
  16#include <asm/prom.h>
  17#include <asm/of_device.h>
  18
  19struct linux_ebus_child {
  20        struct linux_ebus_child         *next;
  21        struct linux_ebus_device        *parent;
  22        struct linux_ebus               *bus;
  23        struct device_node              *prom_node;
  24        struct resource                  resource[PROMREG_MAX];
  25        int                              num_addrs;
  26        unsigned int                     irqs[PROMINTR_MAX];
  27        int                              num_irqs;
  28};
  29
  30struct linux_ebus_device {
  31        struct of_device                ofdev;
  32        struct linux_ebus_device        *next;
  33        struct linux_ebus_child         *children;
  34        struct linux_ebus               *bus;
  35        struct device_node              *prom_node;
  36        struct resource                  resource[PROMREG_MAX];
  37        int                              num_addrs;
  38        unsigned int                     irqs[PROMINTR_MAX];
  39        int                              num_irqs;
  40};
  41#define to_ebus_device(d) container_of(d, struct linux_ebus_device, ofdev.dev)
  42
  43struct linux_ebus {
  44        struct of_device                ofdev;
  45        struct linux_ebus               *next;
  46        struct linux_ebus_device        *devices;
  47        struct linux_pbm_info           *parent;
  48        struct pci_dev                  *self;
  49        struct device_node              *prom_node;
  50};
  51#define to_ebus(d) container_of(d, struct linux_ebus, ofdev.dev)
  52
  53struct linux_ebus_dma {
  54        unsigned int dcsr;
  55        unsigned int dacr;
  56        unsigned int dbcr;
  57};
  58
  59#define EBUS_DCSR_INT_PEND      0x00000001
  60#define EBUS_DCSR_ERR_PEND      0x00000002
  61#define EBUS_DCSR_DRAIN         0x00000004
  62#define EBUS_DCSR_INT_EN        0x00000010
  63#define EBUS_DCSR_RESET         0x00000080
  64#define EBUS_DCSR_WRITE         0x00000100
  65#define EBUS_DCSR_EN_DMA        0x00000200
  66#define EBUS_DCSR_CYC_PEND      0x00000400
  67#define EBUS_DCSR_DIAG_RD_DONE  0x00000800
  68#define EBUS_DCSR_DIAG_WR_DONE  0x00001000
  69#define EBUS_DCSR_EN_CNT        0x00002000
  70#define EBUS_DCSR_TC            0x00004000
  71#define EBUS_DCSR_DIS_CSR_DRN   0x00010000
  72#define EBUS_DCSR_BURST_SZ_MASK 0x000c0000
  73#define EBUS_DCSR_BURST_SZ_1    0x00080000
  74#define EBUS_DCSR_BURST_SZ_4    0x00000000
  75#define EBUS_DCSR_BURST_SZ_8    0x00040000
  76#define EBUS_DCSR_BURST_SZ_16   0x000c0000
  77#define EBUS_DCSR_DIAG_EN       0x00100000
  78#define EBUS_DCSR_DIS_ERR_PEND  0x00400000
  79#define EBUS_DCSR_TCI_DIS       0x00800000
  80#define EBUS_DCSR_EN_NEXT       0x01000000
  81#define EBUS_DCSR_DMA_ON        0x02000000
  82#define EBUS_DCSR_A_LOADED      0x04000000
  83#define EBUS_DCSR_NA_LOADED     0x08000000
  84#define EBUS_DCSR_DEV_ID_MASK   0xf0000000
  85
  86extern struct linux_ebus                *ebus_chain;
  87
  88extern void ebus_init(void);
  89
  90#define for_each_ebus(bus)                                              \
  91        for((bus) = ebus_chain; (bus); (bus) = (bus)->next)
  92
  93#define for_each_ebusdev(dev, bus)                                      \
  94        for((dev) = (bus)->devices; (dev); (dev) = (dev)->next)
  95
  96#define for_each_edevchild(dev, child)                                  \
  97        for((child) = (dev)->children; (child); (child) = (child)->next)
  98
  99#endif /* !(__SPARC_EBUS_H) */
 100
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.