0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef __ASM_MIPS_BOARDS_MSC01_PCI_H
0013 #define __ASM_MIPS_BOARDS_MSC01_PCI_H
0014
0015
0016
0017
0018
0019 #define MSC01_PCI_ID_OFS 0x0000
0020 #define MSC01_PCI_SC2PMBASL_OFS 0x0208
0021 #define MSC01_PCI_SC2PMMSKL_OFS 0x0218
0022 #define MSC01_PCI_SC2PMMAPL_OFS 0x0228
0023 #define MSC01_PCI_SC2PIOBASL_OFS 0x0248
0024 #define MSC01_PCI_SC2PIOMSKL_OFS 0x0258
0025 #define MSC01_PCI_SC2PIOMAPL_OFS 0x0268
0026 #define MSC01_PCI_P2SCMSKL_OFS 0x0308
0027 #define MSC01_PCI_P2SCMAPL_OFS 0x0318
0028 #define MSC01_PCI_INTCFG_OFS 0x0600
0029 #define MSC01_PCI_INTSTAT_OFS 0x0608
0030 #define MSC01_PCI_CFGADDR_OFS 0x0610
0031 #define MSC01_PCI_CFGDATA_OFS 0x0618
0032 #define MSC01_PCI_IACK_OFS 0x0620
0033 #define MSC01_PCI_HEAD0_OFS 0x2000
0034 #define MSC01_PCI_HEAD1_OFS 0x2008
0035 #define MSC01_PCI_HEAD2_OFS 0x2010
0036 #define MSC01_PCI_HEAD3_OFS 0x2018
0037 #define MSC01_PCI_HEAD4_OFS 0x2020
0038 #define MSC01_PCI_HEAD5_OFS 0x2028
0039 #define MSC01_PCI_HEAD6_OFS 0x2030
0040 #define MSC01_PCI_HEAD7_OFS 0x2038
0041 #define MSC01_PCI_HEAD8_OFS 0x2040
0042 #define MSC01_PCI_HEAD9_OFS 0x2048
0043 #define MSC01_PCI_HEAD10_OFS 0x2050
0044 #define MSC01_PCI_HEAD11_OFS 0x2058
0045 #define MSC01_PCI_HEAD12_OFS 0x2060
0046 #define MSC01_PCI_HEAD13_OFS 0x2068
0047 #define MSC01_PCI_HEAD14_OFS 0x2070
0048 #define MSC01_PCI_HEAD15_OFS 0x2078
0049 #define MSC01_PCI_BAR0_OFS 0x2220
0050 #define MSC01_PCI_CFG_OFS 0x2380
0051 #define MSC01_PCI_SWAP_OFS 0x2388
0052
0053
0054
0055
0056
0057
0058 #define MSC01_PCI_ID_ID_SHF 16
0059 #define MSC01_PCI_ID_ID_MSK 0x00ff0000
0060 #define MSC01_PCI_ID_ID_HOSTBRIDGE 82
0061 #define MSC01_PCI_ID_MAR_SHF 8
0062 #define MSC01_PCI_ID_MAR_MSK 0x0000ff00
0063 #define MSC01_PCI_ID_MIR_SHF 0
0064 #define MSC01_PCI_ID_MIR_MSK 0x000000ff
0065
0066 #define MSC01_PCI_SC2PMBASL_BAS_SHF 24
0067 #define MSC01_PCI_SC2PMBASL_BAS_MSK 0xff000000
0068
0069 #define MSC01_PCI_SC2PMMSKL_MSK_SHF 24
0070 #define MSC01_PCI_SC2PMMSKL_MSK_MSK 0xff000000
0071
0072 #define MSC01_PCI_SC2PMMAPL_MAP_SHF 24
0073 #define MSC01_PCI_SC2PMMAPL_MAP_MSK 0xff000000
0074
0075 #define MSC01_PCI_SC2PIOBASL_BAS_SHF 24
0076 #define MSC01_PCI_SC2PIOBASL_BAS_MSK 0xff000000
0077
0078 #define MSC01_PCI_SC2PIOMSKL_MSK_SHF 24
0079 #define MSC01_PCI_SC2PIOMSKL_MSK_MSK 0xff000000
0080
0081 #define MSC01_PCI_SC2PIOMAPL_MAP_SHF 24
0082 #define MSC01_PCI_SC2PIOMAPL_MAP_MSK 0xff000000
0083
0084 #define MSC01_PCI_P2SCMSKL_MSK_SHF 24
0085 #define MSC01_PCI_P2SCMSKL_MSK_MSK 0xff000000
0086
0087 #define MSC01_PCI_P2SCMAPL_MAP_SHF 24
0088 #define MSC01_PCI_P2SCMAPL_MAP_MSK 0xff000000
0089
0090 #define MSC01_PCI_INTCFG_RST_SHF 10
0091 #define MSC01_PCI_INTCFG_RST_MSK 0x00000400
0092 #define MSC01_PCI_INTCFG_RST_BIT 0x00000400
0093 #define MSC01_PCI_INTCFG_MWE_SHF 9
0094 #define MSC01_PCI_INTCFG_MWE_MSK 0x00000200
0095 #define MSC01_PCI_INTCFG_MWE_BIT 0x00000200
0096 #define MSC01_PCI_INTCFG_DTO_SHF 8
0097 #define MSC01_PCI_INTCFG_DTO_MSK 0x00000100
0098 #define MSC01_PCI_INTCFG_DTO_BIT 0x00000100
0099 #define MSC01_PCI_INTCFG_MA_SHF 7
0100 #define MSC01_PCI_INTCFG_MA_MSK 0x00000080
0101 #define MSC01_PCI_INTCFG_MA_BIT 0x00000080
0102 #define MSC01_PCI_INTCFG_TA_SHF 6
0103 #define MSC01_PCI_INTCFG_TA_MSK 0x00000040
0104 #define MSC01_PCI_INTCFG_TA_BIT 0x00000040
0105 #define MSC01_PCI_INTCFG_RTY_SHF 5
0106 #define MSC01_PCI_INTCFG_RTY_MSK 0x00000020
0107 #define MSC01_PCI_INTCFG_RTY_BIT 0x00000020
0108 #define MSC01_PCI_INTCFG_MWP_SHF 4
0109 #define MSC01_PCI_INTCFG_MWP_MSK 0x00000010
0110 #define MSC01_PCI_INTCFG_MWP_BIT 0x00000010
0111 #define MSC01_PCI_INTCFG_MRP_SHF 3
0112 #define MSC01_PCI_INTCFG_MRP_MSK 0x00000008
0113 #define MSC01_PCI_INTCFG_MRP_BIT 0x00000008
0114 #define MSC01_PCI_INTCFG_SWP_SHF 2
0115 #define MSC01_PCI_INTCFG_SWP_MSK 0x00000004
0116 #define MSC01_PCI_INTCFG_SWP_BIT 0x00000004
0117 #define MSC01_PCI_INTCFG_SRP_SHF 1
0118 #define MSC01_PCI_INTCFG_SRP_MSK 0x00000002
0119 #define MSC01_PCI_INTCFG_SRP_BIT 0x00000002
0120 #define MSC01_PCI_INTCFG_SE_SHF 0
0121 #define MSC01_PCI_INTCFG_SE_MSK 0x00000001
0122 #define MSC01_PCI_INTCFG_SE_BIT 0x00000001
0123
0124 #define MSC01_PCI_INTSTAT_RST_SHF 10
0125 #define MSC01_PCI_INTSTAT_RST_MSK 0x00000400
0126 #define MSC01_PCI_INTSTAT_RST_BIT 0x00000400
0127 #define MSC01_PCI_INTSTAT_MWE_SHF 9
0128 #define MSC01_PCI_INTSTAT_MWE_MSK 0x00000200
0129 #define MSC01_PCI_INTSTAT_MWE_BIT 0x00000200
0130 #define MSC01_PCI_INTSTAT_DTO_SHF 8
0131 #define MSC01_PCI_INTSTAT_DTO_MSK 0x00000100
0132 #define MSC01_PCI_INTSTAT_DTO_BIT 0x00000100
0133 #define MSC01_PCI_INTSTAT_MA_SHF 7
0134 #define MSC01_PCI_INTSTAT_MA_MSK 0x00000080
0135 #define MSC01_PCI_INTSTAT_MA_BIT 0x00000080
0136 #define MSC01_PCI_INTSTAT_TA_SHF 6
0137 #define MSC01_PCI_INTSTAT_TA_MSK 0x00000040
0138 #define MSC01_PCI_INTSTAT_TA_BIT 0x00000040
0139 #define MSC01_PCI_INTSTAT_RTY_SHF 5
0140 #define MSC01_PCI_INTSTAT_RTY_MSK 0x00000020
0141 #define MSC01_PCI_INTSTAT_RTY_BIT 0x00000020
0142 #define MSC01_PCI_INTSTAT_MWP_SHF 4
0143 #define MSC01_PCI_INTSTAT_MWP_MSK 0x00000010
0144 #define MSC01_PCI_INTSTAT_MWP_BIT 0x00000010
0145 #define MSC01_PCI_INTSTAT_MRP_SHF 3
0146 #define MSC01_PCI_INTSTAT_MRP_MSK 0x00000008
0147 #define MSC01_PCI_INTSTAT_MRP_BIT 0x00000008
0148 #define MSC01_PCI_INTSTAT_SWP_SHF 2
0149 #define MSC01_PCI_INTSTAT_SWP_MSK 0x00000004
0150 #define MSC01_PCI_INTSTAT_SWP_BIT 0x00000004
0151 #define MSC01_PCI_INTSTAT_SRP_SHF 1
0152 #define MSC01_PCI_INTSTAT_SRP_MSK 0x00000002
0153 #define MSC01_PCI_INTSTAT_SRP_BIT 0x00000002
0154 #define MSC01_PCI_INTSTAT_SE_SHF 0
0155 #define MSC01_PCI_INTSTAT_SE_MSK 0x00000001
0156 #define MSC01_PCI_INTSTAT_SE_BIT 0x00000001
0157
0158 #define MSC01_PCI_CFGADDR_BNUM_SHF 16
0159 #define MSC01_PCI_CFGADDR_BNUM_MSK 0x00ff0000
0160 #define MSC01_PCI_CFGADDR_DNUM_SHF 11
0161 #define MSC01_PCI_CFGADDR_DNUM_MSK 0x0000f800
0162 #define MSC01_PCI_CFGADDR_FNUM_SHF 8
0163 #define MSC01_PCI_CFGADDR_FNUM_MSK 0x00000700
0164 #define MSC01_PCI_CFGADDR_RNUM_SHF 2
0165 #define MSC01_PCI_CFGADDR_RNUM_MSK 0x000000fc
0166
0167 #define MSC01_PCI_CFGDATA_DATA_SHF 0
0168 #define MSC01_PCI_CFGDATA_DATA_MSK 0xffffffff
0169
0170
0171 #define MSC01_PCI_BAR0_SIZE_SHF 4
0172 #define MSC01_PCI_BAR0_SIZE_MSK 0xfffffff0
0173 #define MSC01_PCI_BAR0_P_SHF 3
0174 #define MSC01_PCI_BAR0_P_MSK 0x00000008
0175 #define MSC01_PCI_BAR0_P_BIT MSC01_PCI_BAR0_P_MSK
0176 #define MSC01_PCI_BAR0_D_SHF 1
0177 #define MSC01_PCI_BAR0_D_MSK 0x00000006
0178 #define MSC01_PCI_BAR0_T_SHF 0
0179 #define MSC01_PCI_BAR0_T_MSK 0x00000001
0180 #define MSC01_PCI_BAR0_T_BIT MSC01_PCI_BAR0_T_MSK
0181
0182
0183 #define MSC01_PCI_CFG_RA_SHF 17
0184 #define MSC01_PCI_CFG_RA_MSK 0x00020000
0185 #define MSC01_PCI_CFG_RA_BIT MSC01_PCI_CFG_RA_MSK
0186 #define MSC01_PCI_CFG_G_SHF 16
0187 #define MSC01_PCI_CFG_G_MSK 0x00010000
0188 #define MSC01_PCI_CFG_G_BIT MSC01_PCI_CFG_G_MSK
0189 #define MSC01_PCI_CFG_EN_SHF 15
0190 #define MSC01_PCI_CFG_EN_MSK 0x00008000
0191 #define MSC01_PCI_CFG_EN_BIT MSC01_PCI_CFG_EN_MSK
0192 #define MSC01_PCI_CFG_MAXRTRY_SHF 0
0193 #define MSC01_PCI_CFG_MAXRTRY_MSK 0x00000fff
0194
0195 #define MSC01_PCI_SWAP_IO_SHF 18
0196 #define MSC01_PCI_SWAP_IO_MSK 0x000c0000
0197 #define MSC01_PCI_SWAP_MEM_SHF 16
0198 #define MSC01_PCI_SWAP_MEM_MSK 0x00030000
0199 #define MSC01_PCI_SWAP_BAR0_SHF 0
0200 #define MSC01_PCI_SWAP_BAR0_MSK 0x00000003
0201 #define MSC01_PCI_SWAP_NOSWAP 0
0202 #define MSC01_PCI_SWAP_BYTESWAP 1
0203
0204
0205
0206
0207
0208
0209
0210 #define MIPS_MSC01_PCI_REG_BASE 0x1bd00000
0211 #define MIPS_SOCITSC_PCI_REG_BASE 0x1ff10000
0212
0213 extern unsigned long _pcictrl_msc;
0214
0215 #define MSC01_PCI_REG_BASE _pcictrl_msc
0216
0217 #define MSC_WRITE(reg, data) do { *(volatile u32 *)(reg) = data; } while (0)
0218 #define MSC_READ(reg, data) do { data = *(volatile u32 *)(reg); } while (0)
0219
0220
0221
0222
0223
0224 #define MSC01_PCI_ID (MSC01_PCI_REG_BASE + MSC01_PCI_ID_OFS)
0225 #define MSC01_PCI_SC2PMBASL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMBASL_OFS)
0226 #define MSC01_PCI_SC2PMMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMMSKL_OFS)
0227 #define MSC01_PCI_SC2PMMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMMAPL_OFS)
0228 #define MSC01_PCI_SC2PIOBASL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOBASL_OFS)
0229 #define MSC01_PCI_SC2PIOMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOMSKL_OFS)
0230 #define MSC01_PCI_SC2PIOMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOMAPL_OFS)
0231 #define MSC01_PCI_P2SCMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_P2SCMSKL_OFS)
0232 #define MSC01_PCI_P2SCMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_P2SCMAPL_OFS)
0233 #define MSC01_PCI_INTCFG (MSC01_PCI_REG_BASE + MSC01_PCI_INTCFG_OFS)
0234 #define MSC01_PCI_INTSTAT (MSC01_PCI_REG_BASE + MSC01_PCI_INTSTAT_OFS)
0235 #define MSC01_PCI_CFGADDR (MSC01_PCI_REG_BASE + MSC01_PCI_CFGADDR_OFS)
0236 #define MSC01_PCI_CFGDATA (MSC01_PCI_REG_BASE + MSC01_PCI_CFGDATA_OFS)
0237 #define MSC01_PCI_IACK (MSC01_PCI_REG_BASE + MSC01_PCI_IACK_OFS)
0238 #define MSC01_PCI_HEAD0 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD0_OFS)
0239 #define MSC01_PCI_HEAD1 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD1_OFS)
0240 #define MSC01_PCI_HEAD2 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD2_OFS)
0241 #define MSC01_PCI_HEAD3 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD3_OFS)
0242 #define MSC01_PCI_HEAD4 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD4_OFS)
0243 #define MSC01_PCI_HEAD5 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD5_OFS)
0244 #define MSC01_PCI_HEAD6 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD6_OFS)
0245 #define MSC01_PCI_HEAD7 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD7_OFS)
0246 #define MSC01_PCI_HEAD8 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD8_OFS)
0247 #define MSC01_PCI_HEAD9 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD9_OFS)
0248 #define MSC01_PCI_HEAD10 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD10_OFS)
0249 #define MSC01_PCI_HEAD11 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
0250 #define MSC01_PCI_HEAD12 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
0251 #define MSC01_PCI_HEAD13 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
0252 #define MSC01_PCI_HEAD14 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
0253 #define MSC01_PCI_HEAD15 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
0254 #define MSC01_PCI_BAR0 (MSC01_PCI_REG_BASE + MSC01_PCI_BAR0_OFS)
0255 #define MSC01_PCI_CFG (MSC01_PCI_REG_BASE + MSC01_PCI_CFG_OFS)
0256 #define MSC01_PCI_SWAP (MSC01_PCI_REG_BASE + MSC01_PCI_SWAP_OFS)
0257
0258 #endif