root/arch/m68k/include/asm/m54xxpci.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /****************************************************************************/
   2 
   3 /*
   4  *      m54xxpci.h -- ColdFire 547x and 548x PCI bus support
   5  *
   6  *      (C) Copyright 2011,  Greg Ungerer <gerg@uclinux.org>
   7  *
   8  * This file is subject to the terms and conditions of the GNU General Public
   9  * License.  See the file COPYING in the main directory of this archive
  10  * for more details.
  11  */
  12 
  13 /****************************************************************************/
  14 #ifndef M54XXPCI_H
  15 #define M54XXPCI_H
  16 /****************************************************************************/
  17 
  18 /*
  19  *      The core set of PCI support registers are mapped into the MBAR region.
  20  */
  21 #define PCIIDR          (CONFIG_MBAR + 0xb00)   /* PCI device/vendor ID */
  22 #define PCISCR          (CONFIG_MBAR + 0xb04)   /* PCI status/command */
  23 #define PCICCRIR        (CONFIG_MBAR + 0xb08)   /* PCI class/revision */
  24 #define PCICR1          (CONFIG_MBAR + 0xb0c)   /* PCI configuration 1 */
  25 #define PCIBAR0         (CONFIG_MBAR + 0xb10)   /* PCI base address 0 */
  26 #define PCIBAR1         (CONFIG_MBAR + 0xb14)   /* PCI base address 1 */
  27 #define PCICCPR         (CONFIG_MBAR + 0xb28)   /* PCI cardbus CIS pointer */
  28 #define PCISID          (CONFIG_MBAR + 0xb2c)   /* PCI subsystem IDs */
  29 #define PCIERBAR        (CONFIG_MBAR + 0xb30)   /* PCI expansion ROM */
  30 #define PCICPR          (CONFIG_MBAR + 0xb34)   /* PCI capabilities pointer */
  31 #define PCICR2          (CONFIG_MBAR + 0xb3c)   /* PCI configuration 2 */
  32 
  33 #define PCIGSCR         (CONFIG_MBAR + 0xb60)   /* Global status/control */
  34 #define PCITBATR0       (CONFIG_MBAR + 0xb64)   /* Target base translation 0 */
  35 #define PCITBATR1       (CONFIG_MBAR + 0xb68)   /* Target base translation 1 */
  36 #define PCITCR          (CONFIG_MBAR + 0xb6c)   /* Target control */
  37 #define PCIIW0BTAR      (CONFIG_MBAR + 0xb70)   /* Initiator window 0 */
  38 #define PCIIW1BTAR      (CONFIG_MBAR + 0xb74)   /* Initiator window 1 */
  39 #define PCIIW2BTAR      (CONFIG_MBAR + 0xb78)   /* Initiator window 2 */
  40 #define PCIIWCR         (CONFIG_MBAR + 0xb80)   /* Initiator window config */
  41 #define PCIICR          (CONFIG_MBAR + 0xb84)   /* Initiator control */
  42 #define PCIISR          (CONFIG_MBAR + 0xb88)   /* Initiator status */
  43 #define PCICAR          (CONFIG_MBAR + 0xbf8)   /* Configuration address */
  44 
  45 #define PCITPSR         (CONFIG_MBAR + 0x8400)  /* TX packet size */
  46 #define PCITSAR         (CONFIG_MBAR + 0x8404)  /* TX start address */
  47 #define PCITTCR         (CONFIG_MBAR + 0x8408)  /* TX transaction control */
  48 #define PCITER          (CONFIG_MBAR + 0x840c)  /* TX enables */
  49 #define PCITNAR         (CONFIG_MBAR + 0x8410)  /* TX next address */
  50 #define PCITLWR         (CONFIG_MBAR + 0x8414)  /* TX last word */
  51 #define PCITDCR         (CONFIG_MBAR + 0x8418)  /* TX done counts */
  52 #define PCITSR          (CONFIG_MBAR + 0x841c)  /* TX status */
  53 #define PCITFDR         (CONFIG_MBAR + 0x8440)  /* TX FIFO data */
  54 #define PCITFSR         (CONFIG_MBAR + 0x8444)  /* TX FIFO status */
  55 #define PCITFCR         (CONFIG_MBAR + 0x8448)  /* TX FIFO control */
  56 #define PCITFAR         (CONFIG_MBAR + 0x844c)  /* TX FIFO alarm */
  57 #define PCITFRPR        (CONFIG_MBAR + 0x8450)  /* TX FIFO read pointer */
  58 #define PCITFWPR        (CONFIG_MBAR + 0x8454)  /* TX FIFO write pointer */
  59 
  60 #define PCIRPSR         (CONFIG_MBAR + 0x8480)  /* RX packet size */
  61 #define PCIRSAR         (CONFIG_MBAR + 0x8484)  /* RX start address */
  62 #define PCIRTCR         (CONFIG_MBAR + 0x8488)  /* RX transaction control */
  63 #define PCIRER          (CONFIG_MBAR + 0x848c)  /* RX enables */
  64 #define PCIRNAR         (CONFIG_MBAR + 0x8490)  /* RX next address */
  65 #define PCIRDCR         (CONFIG_MBAR + 0x8498)  /* RX done counts */
  66 #define PCIRSR          (CONFIG_MBAR + 0x849c)  /* RX status */
  67 #define PCIRFDR         (CONFIG_MBAR + 0x84c0)  /* RX FIFO data */
  68 #define PCIRFSR         (CONFIG_MBAR + 0x84c4)  /* RX FIFO status */
  69 #define PCIRFCR         (CONFIG_MBAR + 0x84c8)  /* RX FIFO control */
  70 #define PCIRFAR         (CONFIG_MBAR + 0x84cc)  /* RX FIFO alarm */
  71 #define PCIRFRPR        (CONFIG_MBAR + 0x84d0)  /* RX FIFO read pointer */
  72 #define PCIRFWPR        (CONFIG_MBAR + 0x84d4)  /* RX FIFO write pointer */
  73 
  74 #define PACR            (CONFIG_MBAR + 0xc00)   /* PCI arbiter control */
  75 #define PASR            (CONFIG_MBAR + 0xc04)   /* PCI arbiter status */
  76 
  77 /*
  78  *      Definitions for the Global status and control register.
  79  */
  80 #define PCIGSCR_PE      0x20000000              /* Parity error detected */
  81 #define PCIGSCR_SE      0x10000000              /* System error detected */
  82 #define PCIGSCR_XCLKBIN 0x07000000              /* XLB2CLKIN mask */
  83 #define PCIGSCR_PEE     0x00002000              /* Parity error intr enable */
  84 #define PCIGSCR_SEE     0x00001000              /* System error intr enable */
  85 #define PCIGSCR_RESET   0x00000001              /* Reset bit */
  86 
  87 /*
  88  *      Bit definitions for the PCICAR configuration address register.
  89  */
  90 #define PCICAR_E        0x80000000              /* Enable config space */
  91 #define PCICAR_BUSN     16                      /* Move bus bits */
  92 #define PCICAR_DEVFNN   8                       /* Move devfn bits */
  93 #define PCICAR_DWORDN   0                       /* Move dword bits */
  94 
  95 /*
  96  *      The initiator windows hold the memory and IO mapping information.
  97  *      This macro creates the register values from the desired addresses.
  98  */
  99 #define WXBTAR(hostaddr, pciaddr, size) \
 100                         (((hostaddr) & 0xff000000) | \
 101                         ((((size) - 1) & 0xff000000) >> 8) | \
 102                         (((pciaddr) & 0xff000000) >> 16))
 103 
 104 #define PCIIWCR_W0_MEM  0x00000000              /* Window 0 is memory */
 105 #define PCIIWCR_W0_IO   0x08000000              /* Window 0 is IO */
 106 #define PCIIWCR_W0_MRD  0x00000000              /* Window 0 memory read */
 107 #define PCIIWCR_W0_MRDL 0x02000000              /* Window 0 memory read line */
 108 #define PCIIWCR_W0_MRDM 0x04000000              /* Window 0 memory read mult */
 109 #define PCIIWCR_W0_E    0x01000000              /* Window 0 enable */
 110 
 111 #define PCIIWCR_W1_MEM  0x00000000              /* Window 0 is memory */
 112 #define PCIIWCR_W1_IO   0x00080000              /* Window 0 is IO */
 113 #define PCIIWCR_W1_MRD  0x00000000              /* Window 0 memory read */
 114 #define PCIIWCR_W1_MRDL 0x00020000              /* Window 0 memory read line */
 115 #define PCIIWCR_W1_MRDM 0x00040000              /* Window 0 memory read mult */
 116 #define PCIIWCR_W1_E    0x00010000              /* Window 0 enable */
 117 
 118 /*
 119  *      Bit definitions for the PCIBATR registers.
 120  */
 121 #define PCITBATR0_E     0x00000001              /* Enable window 0 */
 122 #define PCITBATR1_E     0x00000001              /* Enable window 1 */
 123 
 124 /*
 125  *      PCI arbiter support definitions and macros.
 126  */
 127 #define PACR_INTMPRI    0x00000001
 128 #define PACR_EXTMPRI(x) (((x) & 0x1f) << 1)
 129 #define PACR_INTMINTE   0x00010000
 130 #define PACR_EXTMINTE(x) (((x) & 0x1f) << 17)
 131 #define PACR_PKMD       0x40000000
 132 #define PACR_DS         0x80000000
 133 
 134 #define PCICR1_CL(x)    ((x) & 0xf)             /* Cacheline size field */
 135 #define PCICR1_LT(x)    (((x) & 0xff) << 8)     /* Latency timer field */
 136 
 137 /****************************************************************************/
 138 #endif  /* M54XXPCI_H */

/* [<][>][^][v][top][bottom][index][help] */