Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*  *********************************************************************
0003     *  SB1250 Board Support Package
0004     *
0005     *  Generic Bus Constants             File: sb1250_genbus.h
0006     *
0007     *  This module contains constants and macros useful for
0008     *  manipulating the SB1250's Generic Bus interface
0009     *
0010     *  SB1250 specification level:  User's manual 10/21/02
0011     *  BCM1280 specification level: User's Manual 11/14/03
0012     *
0013     *********************************************************************
0014     *
0015     *  Copyright 2000, 2001, 2002, 2003
0016     *  Broadcom Corporation. All rights reserved.
0017     *
0018     ********************************************************************* */
0019 
0020 
0021 #ifndef _SB1250_GENBUS_H
0022 #define _SB1250_GENBUS_H
0023 
0024 #include <asm/sibyte/sb1250_defs.h>
0025 
0026 /*
0027  * Generic Bus Region Configuration Registers (Table 11-4)
0028  */
0029 
0030 #define S_IO_RDY_ACTIVE     0
0031 #define M_IO_RDY_ACTIVE     _SB_MAKEMASK1(S_IO_RDY_ACTIVE)
0032 
0033 #define S_IO_ENA_RDY        1
0034 #define M_IO_ENA_RDY        _SB_MAKEMASK1(S_IO_ENA_RDY)
0035 
0036 #define S_IO_WIDTH_SEL      2
0037 #define M_IO_WIDTH_SEL      _SB_MAKEMASK(2, S_IO_WIDTH_SEL)
0038 #define K_IO_WIDTH_SEL_1    0
0039 #define K_IO_WIDTH_SEL_2    1
0040 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) \
0041     || SIBYTE_HDR_FEATURE_CHIP(1480)
0042 #define K_IO_WIDTH_SEL_1L   2
0043 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0044 #define K_IO_WIDTH_SEL_4    3
0045 #define V_IO_WIDTH_SEL(x)   _SB_MAKEVALUE(x, S_IO_WIDTH_SEL)
0046 #define G_IO_WIDTH_SEL(x)   _SB_GETVALUE(x, S_IO_WIDTH_SEL, M_IO_WIDTH_SEL)
0047 
0048 #define S_IO_PARITY_ENA     4
0049 #define M_IO_PARITY_ENA     _SB_MAKEMASK1(S_IO_PARITY_ENA)
0050 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) \
0051     || SIBYTE_HDR_FEATURE_CHIP(1480)
0052 #define S_IO_BURST_EN       5
0053 #define M_IO_BURST_EN       _SB_MAKEMASK1(S_IO_BURST_EN)
0054 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0055 #define S_IO_PARITY_ODD     6
0056 #define M_IO_PARITY_ODD     _SB_MAKEMASK1(S_IO_PARITY_ODD)
0057 #define S_IO_NONMUX     7
0058 #define M_IO_NONMUX     _SB_MAKEMASK1(S_IO_NONMUX)
0059 
0060 #define S_IO_TIMEOUT        8
0061 #define M_IO_TIMEOUT        _SB_MAKEMASK(8, S_IO_TIMEOUT)
0062 #define V_IO_TIMEOUT(x)     _SB_MAKEVALUE(x, S_IO_TIMEOUT)
0063 #define G_IO_TIMEOUT(x)     _SB_GETVALUE(x, S_IO_TIMEOUT, M_IO_TIMEOUT)
0064 
0065 /*
0066  * Generic Bus Region Size register (Table 11-5)
0067  */
0068 
0069 #define S_IO_MULT_SIZE      0
0070 #define M_IO_MULT_SIZE      _SB_MAKEMASK(12, S_IO_MULT_SIZE)
0071 #define V_IO_MULT_SIZE(x)   _SB_MAKEVALUE(x, S_IO_MULT_SIZE)
0072 #define G_IO_MULT_SIZE(x)   _SB_GETVALUE(x, S_IO_MULT_SIZE, M_IO_MULT_SIZE)
0073 
0074 #define S_IO_REGSIZE        16   /* # bits to shift size for this reg */
0075 
0076 /*
0077  * Generic Bus Region Address (Table 11-6)
0078  */
0079 
0080 #define S_IO_START_ADDR     0
0081 #define M_IO_START_ADDR     _SB_MAKEMASK(14, S_IO_START_ADDR)
0082 #define V_IO_START_ADDR(x)  _SB_MAKEVALUE(x, S_IO_START_ADDR)
0083 #define G_IO_START_ADDR(x)  _SB_GETVALUE(x, S_IO_START_ADDR, M_IO_START_ADDR)
0084 
0085 #define S_IO_ADDRBASE       16   /* # bits to shift addr for this reg */
0086 
0087 #define M_IO_BLK_CACHE      _SB_MAKEMASK1(15)
0088 
0089 
0090 /*
0091  * Generic Bus Timing 0 Registers (Table 11-7)
0092  */
0093 
0094 #define S_IO_ALE_WIDTH      0
0095 #define M_IO_ALE_WIDTH      _SB_MAKEMASK(3, S_IO_ALE_WIDTH)
0096 #define V_IO_ALE_WIDTH(x)   _SB_MAKEVALUE(x, S_IO_ALE_WIDTH)
0097 #define G_IO_ALE_WIDTH(x)   _SB_GETVALUE(x, S_IO_ALE_WIDTH, M_IO_ALE_WIDTH)
0098 
0099 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) \
0100     || SIBYTE_HDR_FEATURE_CHIP(1480)
0101 #define M_IO_EARLY_CS       _SB_MAKEMASK1(3)
0102 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0103 
0104 #define S_IO_ALE_TO_CS      4
0105 #define M_IO_ALE_TO_CS      _SB_MAKEMASK(2, S_IO_ALE_TO_CS)
0106 #define V_IO_ALE_TO_CS(x)   _SB_MAKEVALUE(x, S_IO_ALE_TO_CS)
0107 #define G_IO_ALE_TO_CS(x)   _SB_GETVALUE(x, S_IO_ALE_TO_CS, M_IO_ALE_TO_CS)
0108 
0109 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) \
0110     || SIBYTE_HDR_FEATURE_CHIP(1480)
0111 #define S_IO_BURST_WIDTH       _SB_MAKE64(6)
0112 #define M_IO_BURST_WIDTH       _SB_MAKEMASK(2, S_IO_BURST_WIDTH)
0113 #define V_IO_BURST_WIDTH(x)    _SB_MAKEVALUE(x, S_IO_BURST_WIDTH)
0114 #define G_IO_BURST_WIDTH(x)    _SB_GETVALUE(x, S_IO_BURST_WIDTH, M_IO_BURST_WIDTH)
0115 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0116 
0117 #define S_IO_CS_WIDTH       8
0118 #define M_IO_CS_WIDTH       _SB_MAKEMASK(5, S_IO_CS_WIDTH)
0119 #define V_IO_CS_WIDTH(x)    _SB_MAKEVALUE(x, S_IO_CS_WIDTH)
0120 #define G_IO_CS_WIDTH(x)    _SB_GETVALUE(x, S_IO_CS_WIDTH, M_IO_CS_WIDTH)
0121 
0122 #define S_IO_RDY_SMPLE      13
0123 #define M_IO_RDY_SMPLE      _SB_MAKEMASK(3, S_IO_RDY_SMPLE)
0124 #define V_IO_RDY_SMPLE(x)   _SB_MAKEVALUE(x, S_IO_RDY_SMPLE)
0125 #define G_IO_RDY_SMPLE(x)   _SB_GETVALUE(x, S_IO_RDY_SMPLE, M_IO_RDY_SMPLE)
0126 
0127 
0128 /*
0129  * Generic Bus Timing 1 Registers (Table 11-8)
0130  */
0131 
0132 #define S_IO_ALE_TO_WRITE   0
0133 #define M_IO_ALE_TO_WRITE   _SB_MAKEMASK(3, S_IO_ALE_TO_WRITE)
0134 #define V_IO_ALE_TO_WRITE(x)    _SB_MAKEVALUE(x, S_IO_ALE_TO_WRITE)
0135 #define G_IO_ALE_TO_WRITE(x)    _SB_GETVALUE(x, S_IO_ALE_TO_WRITE, M_IO_ALE_TO_WRITE)
0136 
0137 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) \
0138     || SIBYTE_HDR_FEATURE_CHIP(1480)
0139 #define M_IO_RDY_SYNC       _SB_MAKEMASK1(3)
0140 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0141 
0142 #define S_IO_WRITE_WIDTH    4
0143 #define M_IO_WRITE_WIDTH    _SB_MAKEMASK(4, S_IO_WRITE_WIDTH)
0144 #define V_IO_WRITE_WIDTH(x) _SB_MAKEVALUE(x, S_IO_WRITE_WIDTH)
0145 #define G_IO_WRITE_WIDTH(x) _SB_GETVALUE(x, S_IO_WRITE_WIDTH, M_IO_WRITE_WIDTH)
0146 
0147 #define S_IO_IDLE_CYCLE     8
0148 #define M_IO_IDLE_CYCLE     _SB_MAKEMASK(4, S_IO_IDLE_CYCLE)
0149 #define V_IO_IDLE_CYCLE(x)  _SB_MAKEVALUE(x, S_IO_IDLE_CYCLE)
0150 #define G_IO_IDLE_CYCLE(x)  _SB_GETVALUE(x, S_IO_IDLE_CYCLE, M_IO_IDLE_CYCLE)
0151 
0152 #define S_IO_OE_TO_CS       12
0153 #define M_IO_OE_TO_CS       _SB_MAKEMASK(2, S_IO_OE_TO_CS)
0154 #define V_IO_OE_TO_CS(x)    _SB_MAKEVALUE(x, S_IO_OE_TO_CS)
0155 #define G_IO_OE_TO_CS(x)    _SB_GETVALUE(x, S_IO_OE_TO_CS, M_IO_OE_TO_CS)
0156 
0157 #define S_IO_CS_TO_OE       14
0158 #define M_IO_CS_TO_OE       _SB_MAKEMASK(2, S_IO_CS_TO_OE)
0159 #define V_IO_CS_TO_OE(x)    _SB_MAKEVALUE(x, S_IO_CS_TO_OE)
0160 #define G_IO_CS_TO_OE(x)    _SB_GETVALUE(x, S_IO_CS_TO_OE, M_IO_CS_TO_OE)
0161 
0162 /*
0163  * Generic Bus Interrupt Status Register (Table 11-9)
0164  */
0165 
0166 #define M_IO_CS_ERR_INT     _SB_MAKEMASK(0, 8)
0167 #define M_IO_CS0_ERR_INT    _SB_MAKEMASK1(0)
0168 #define M_IO_CS1_ERR_INT    _SB_MAKEMASK1(1)
0169 #define M_IO_CS2_ERR_INT    _SB_MAKEMASK1(2)
0170 #define M_IO_CS3_ERR_INT    _SB_MAKEMASK1(3)
0171 #define M_IO_CS4_ERR_INT    _SB_MAKEMASK1(4)
0172 #define M_IO_CS5_ERR_INT    _SB_MAKEMASK1(5)
0173 #define M_IO_CS6_ERR_INT    _SB_MAKEMASK1(6)
0174 #define M_IO_CS7_ERR_INT    _SB_MAKEMASK1(7)
0175 
0176 #define M_IO_RD_PAR_INT     _SB_MAKEMASK1(9)
0177 #define M_IO_TIMEOUT_INT    _SB_MAKEMASK1(10)
0178 #define M_IO_ILL_ADDR_INT   _SB_MAKEMASK1(11)
0179 #define M_IO_MULT_CS_INT    _SB_MAKEMASK1(12)
0180 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
0181 #define M_IO_COH_ERR        _SB_MAKEMASK1(14)
0182 #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
0183 
0184 
0185 /*
0186  * Generic Bus Output Drive Control Register 0 (Table 14-18)
0187  */
0188 
0189 #define S_IO_SLEW0      0
0190 #define M_IO_SLEW0      _SB_MAKEMASK(2, S_IO_SLEW0)
0191 #define V_IO_SLEW0(x)       _SB_MAKEVALUE(x, S_IO_SLEW0)
0192 #define G_IO_SLEW0(x)       _SB_GETVALUE(x, S_IO_SLEW0, M_IO_SLEW0)
0193 
0194 #define S_IO_DRV_A      2
0195 #define M_IO_DRV_A      _SB_MAKEMASK(2, S_IO_DRV_A)
0196 #define V_IO_DRV_A(x)       _SB_MAKEVALUE(x, S_IO_DRV_A)
0197 #define G_IO_DRV_A(x)       _SB_GETVALUE(x, S_IO_DRV_A, M_IO_DRV_A)
0198 
0199 #define S_IO_DRV_B      6
0200 #define M_IO_DRV_B      _SB_MAKEMASK(2, S_IO_DRV_B)
0201 #define V_IO_DRV_B(x)       _SB_MAKEVALUE(x, S_IO_DRV_B)
0202 #define G_IO_DRV_B(x)       _SB_GETVALUE(x, S_IO_DRV_B, M_IO_DRV_B)
0203 
0204 #define S_IO_DRV_C      10
0205 #define M_IO_DRV_C      _SB_MAKEMASK(2, S_IO_DRV_C)
0206 #define V_IO_DRV_C(x)       _SB_MAKEVALUE(x, S_IO_DRV_C)
0207 #define G_IO_DRV_C(x)       _SB_GETVALUE(x, S_IO_DRV_C, M_IO_DRV_C)
0208 
0209 #define S_IO_DRV_D      14
0210 #define M_IO_DRV_D      _SB_MAKEMASK(2, S_IO_DRV_D)
0211 #define V_IO_DRV_D(x)       _SB_MAKEVALUE(x, S_IO_DRV_D)
0212 #define G_IO_DRV_D(x)       _SB_GETVALUE(x, S_IO_DRV_D, M_IO_DRV_D)
0213 
0214 /*
0215  * Generic Bus Output Drive Control Register 1 (Table 14-19)
0216  */
0217 
0218 #define S_IO_DRV_E      2
0219 #define M_IO_DRV_E      _SB_MAKEMASK(2, S_IO_DRV_E)
0220 #define V_IO_DRV_E(x)       _SB_MAKEVALUE(x, S_IO_DRV_E)
0221 #define G_IO_DRV_E(x)       _SB_GETVALUE(x, S_IO_DRV_E, M_IO_DRV_E)
0222 
0223 #define S_IO_DRV_F      6
0224 #define M_IO_DRV_F      _SB_MAKEMASK(2, S_IO_DRV_F)
0225 #define V_IO_DRV_F(x)       _SB_MAKEVALUE(x, S_IO_DRV_F)
0226 #define G_IO_DRV_F(x)       _SB_GETVALUE(x, S_IO_DRV_F, M_IO_DRV_F)
0227 
0228 #define S_IO_SLEW1      8
0229 #define M_IO_SLEW1      _SB_MAKEMASK(2, S_IO_SLEW1)
0230 #define V_IO_SLEW1(x)       _SB_MAKEVALUE(x, S_IO_SLEW1)
0231 #define G_IO_SLEW1(x)       _SB_GETVALUE(x, S_IO_SLEW1, M_IO_SLEW1)
0232 
0233 #define S_IO_DRV_G      10
0234 #define M_IO_DRV_G      _SB_MAKEMASK(2, S_IO_DRV_G)
0235 #define V_IO_DRV_G(x)       _SB_MAKEVALUE(x, S_IO_DRV_G)
0236 #define G_IO_DRV_G(x)       _SB_GETVALUE(x, S_IO_DRV_G, M_IO_DRV_G)
0237 
0238 #define S_IO_SLEW2      12
0239 #define M_IO_SLEW2      _SB_MAKEMASK(2, S_IO_SLEW2)
0240 #define V_IO_SLEW2(x)       _SB_MAKEVALUE(x, S_IO_SLEW2)
0241 #define G_IO_SLEW2(x)       _SB_GETVALUE(x, S_IO_SLEW2, M_IO_SLEW2)
0242 
0243 #define S_IO_DRV_H      14
0244 #define M_IO_DRV_H      _SB_MAKEMASK(2, S_IO_DRV_H)
0245 #define V_IO_DRV_H(x)       _SB_MAKEVALUE(x, S_IO_DRV_H)
0246 #define G_IO_DRV_H(x)       _SB_GETVALUE(x, S_IO_DRV_H, M_IO_DRV_H)
0247 
0248 /*
0249  * Generic Bus Output Drive Control Register 2 (Table 14-20)
0250  */
0251 
0252 #define S_IO_DRV_J      2
0253 #define M_IO_DRV_J      _SB_MAKEMASK(2, S_IO_DRV_J)
0254 #define V_IO_DRV_J(x)       _SB_MAKEVALUE(x, S_IO_DRV_J)
0255 #define G_IO_DRV_J(x)       _SB_GETVALUE(x, S_IO_DRV_J, M_IO_DRV_J)
0256 
0257 #define S_IO_DRV_K      6
0258 #define M_IO_DRV_K      _SB_MAKEMASK(2, S_IO_DRV_K)
0259 #define V_IO_DRV_K(x)       _SB_MAKEVALUE(x, S_IO_DRV_K)
0260 #define G_IO_DRV_K(x)       _SB_GETVALUE(x, S_IO_DRV_K, M_IO_DRV_K)
0261 
0262 #define S_IO_DRV_L      10
0263 #define M_IO_DRV_L      _SB_MAKEMASK(2, S_IO_DRV_L)
0264 #define V_IO_DRV_L(x)       _SB_MAKEVALUE(x, S_IO_DRV_L)
0265 #define G_IO_DRV_L(x)       _SB_GETVALUE(x, S_IO_DRV_L, M_IO_DRV_L)
0266 
0267 #define S_IO_DRV_M      14
0268 #define M_IO_DRV_M      _SB_MAKEMASK(2, S_IO_DRV_M)
0269 #define V_IO_DRV_M(x)       _SB_MAKEVALUE(x, S_IO_DRV_M)
0270 #define G_IO_DRV_M(x)       _SB_GETVALUE(x, S_IO_DRV_M, M_IO_DRV_M)
0271 
0272 /*
0273  * Generic Bus Output Drive Control Register 3 (Table 14-21)
0274  */
0275 
0276 #define S_IO_SLEW3      0
0277 #define M_IO_SLEW3      _SB_MAKEMASK(2, S_IO_SLEW3)
0278 #define V_IO_SLEW3(x)       _SB_MAKEVALUE(x, S_IO_SLEW3)
0279 #define G_IO_SLEW3(x)       _SB_GETVALUE(x, S_IO_SLEW3, M_IO_SLEW3)
0280 
0281 #define S_IO_DRV_N      2
0282 #define M_IO_DRV_N      _SB_MAKEMASK(2, S_IO_DRV_N)
0283 #define V_IO_DRV_N(x)       _SB_MAKEVALUE(x, S_IO_DRV_N)
0284 #define G_IO_DRV_N(x)       _SB_GETVALUE(x, S_IO_DRV_N, M_IO_DRV_N)
0285 
0286 #define S_IO_DRV_P      6
0287 #define M_IO_DRV_P      _SB_MAKEMASK(2, S_IO_DRV_P)
0288 #define V_IO_DRV_P(x)       _SB_MAKEVALUE(x, S_IO_DRV_P)
0289 #define G_IO_DRV_P(x)       _SB_GETVALUE(x, S_IO_DRV_P, M_IO_DRV_P)
0290 
0291 #define S_IO_DRV_Q      10
0292 #define M_IO_DRV_Q      _SB_MAKEMASK(2, S_IO_DRV_Q)
0293 #define V_IO_DRV_Q(x)       _SB_MAKEVALUE(x, S_IO_DRV_Q)
0294 #define G_IO_DRV_Q(x)       _SB_GETVALUE(x, S_IO_DRV_Q, M_IO_DRV_Q)
0295 
0296 #define S_IO_DRV_R      14
0297 #define M_IO_DRV_R      _SB_MAKEMASK(2, S_IO_DRV_R)
0298 #define V_IO_DRV_R(x)       _SB_MAKEVALUE(x, S_IO_DRV_R)
0299 #define G_IO_DRV_R(x)       _SB_GETVALUE(x, S_IO_DRV_R, M_IO_DRV_R)
0300 
0301 
0302 /*
0303  * PCMCIA configuration register (Table 12-6)
0304  */
0305 
0306 #define M_PCMCIA_CFG_ATTRMEM    _SB_MAKEMASK1(0)
0307 #define M_PCMCIA_CFG_3VEN   _SB_MAKEMASK1(1)
0308 #define M_PCMCIA_CFG_5VEN   _SB_MAKEMASK1(2)
0309 #define M_PCMCIA_CFG_VPPEN  _SB_MAKEMASK1(3)
0310 #define M_PCMCIA_CFG_RESET  _SB_MAKEMASK1(4)
0311 #define M_PCMCIA_CFG_APWRONEN   _SB_MAKEMASK1(5)
0312 #define M_PCMCIA_CFG_CDMASK _SB_MAKEMASK1(6)
0313 #define M_PCMCIA_CFG_WPMASK _SB_MAKEMASK1(7)
0314 #define M_PCMCIA_CFG_RDYMASK    _SB_MAKEMASK1(8)
0315 #define M_PCMCIA_CFG_PWRCTL _SB_MAKEMASK1(9)
0316 
0317 #if SIBYTE_HDR_FEATURE_CHIP(1480)
0318 #define S_PCMCIA_MODE       16
0319 #define M_PCMCIA_MODE       _SB_MAKEMASK(3, S_PCMCIA_MODE)
0320 #define V_PCMCIA_MODE(x)    _SB_MAKEVALUE(x, S_PCMCIA_MODE)
0321 #define G_PCMCIA_MODE(x)    _SB_GETVALUE(x, S_PCMCIA_MODE, M_PCMCIA_MODE)
0322 
0323 #define K_PCMCIA_MODE_PCMA_NOB  0   /* standard PCMCIA "A", no "B" */
0324 #define K_PCMCIA_MODE_IDEA_NOB  1   /* IDE "A", no "B" */
0325 #define K_PCMCIA_MODE_PCMIOA_NOB 2  /* PCMCIA with I/O "A", no "B" */
0326 #define K_PCMCIA_MODE_PCMA_PCMB 4   /* standard PCMCIA "A", standard PCMCIA "B" */
0327 #define K_PCMCIA_MODE_IDEA_PCMB 5   /* IDE "A", standard PCMCIA "B" */
0328 #define K_PCMCIA_MODE_PCMA_IDEB 6   /* standard PCMCIA "A", IDE "B" */
0329 #define K_PCMCIA_MODE_IDEA_IDEB 7   /* IDE "A", IDE "B" */
0330 #endif
0331 
0332 
0333 /*
0334  * PCMCIA status register (Table 12-7)
0335  */
0336 
0337 #define M_PCMCIA_STATUS_CD1 _SB_MAKEMASK1(0)
0338 #define M_PCMCIA_STATUS_CD2 _SB_MAKEMASK1(1)
0339 #define M_PCMCIA_STATUS_VS1 _SB_MAKEMASK1(2)
0340 #define M_PCMCIA_STATUS_VS2 _SB_MAKEMASK1(3)
0341 #define M_PCMCIA_STATUS_WP  _SB_MAKEMASK1(4)
0342 #define M_PCMCIA_STATUS_RDY _SB_MAKEMASK1(5)
0343 #define M_PCMCIA_STATUS_3VEN    _SB_MAKEMASK1(6)
0344 #define M_PCMCIA_STATUS_5VEN    _SB_MAKEMASK1(7)
0345 #define M_PCMCIA_STATUS_CDCHG   _SB_MAKEMASK1(8)
0346 #define M_PCMCIA_STATUS_WPCHG   _SB_MAKEMASK1(9)
0347 #define M_PCMCIA_STATUS_RDYCHG  _SB_MAKEMASK1(10)
0348 
0349 /*
0350  * GPIO Interrupt Type Register (table 13-3)
0351  */
0352 
0353 #define K_GPIO_INTR_DISABLE 0
0354 #define K_GPIO_INTR_EDGE    1
0355 #define K_GPIO_INTR_LEVEL   2
0356 #define K_GPIO_INTR_SPLIT   3
0357 
0358 #define S_GPIO_INTR_TYPEX(n)    (((n)/2)*2)
0359 #define M_GPIO_INTR_TYPEX(n)    _SB_MAKEMASK(2, S_GPIO_INTR_TYPEX(n))
0360 #define V_GPIO_INTR_TYPEX(n, x) _SB_MAKEVALUE(x, S_GPIO_INTR_TYPEX(n))
0361 #define G_GPIO_INTR_TYPEX(n, x) _SB_GETVALUE(x, S_GPIO_INTR_TYPEX(n), M_GPIO_INTR_TYPEX(n))
0362 
0363 #define S_GPIO_INTR_TYPE0   0
0364 #define M_GPIO_INTR_TYPE0   _SB_MAKEMASK(2, S_GPIO_INTR_TYPE0)
0365 #define V_GPIO_INTR_TYPE0(x)    _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE0)
0366 #define G_GPIO_INTR_TYPE0(x)    _SB_GETVALUE(x, S_GPIO_INTR_TYPE0, M_GPIO_INTR_TYPE0)
0367 
0368 #define S_GPIO_INTR_TYPE2   2
0369 #define M_GPIO_INTR_TYPE2   _SB_MAKEMASK(2, S_GPIO_INTR_TYPE2)
0370 #define V_GPIO_INTR_TYPE2(x)    _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE2)
0371 #define G_GPIO_INTR_TYPE2(x)    _SB_GETVALUE(x, S_GPIO_INTR_TYPE2, M_GPIO_INTR_TYPE2)
0372 
0373 #define S_GPIO_INTR_TYPE4   4
0374 #define M_GPIO_INTR_TYPE4   _SB_MAKEMASK(2, S_GPIO_INTR_TYPE4)
0375 #define V_GPIO_INTR_TYPE4(x)    _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE4)
0376 #define G_GPIO_INTR_TYPE4(x)    _SB_GETVALUE(x, S_GPIO_INTR_TYPE4, M_GPIO_INTR_TYPE4)
0377 
0378 #define S_GPIO_INTR_TYPE6   6
0379 #define M_GPIO_INTR_TYPE6   _SB_MAKEMASK(2, S_GPIO_INTR_TYPE6)
0380 #define V_GPIO_INTR_TYPE6(x)    _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE6)
0381 #define G_GPIO_INTR_TYPE6(x)    _SB_GETVALUE(x, S_GPIO_INTR_TYPE6, M_GPIO_INTR_TYPE6)
0382 
0383 #define S_GPIO_INTR_TYPE8   8
0384 #define M_GPIO_INTR_TYPE8   _SB_MAKEMASK(2, S_GPIO_INTR_TYPE8)
0385 #define V_GPIO_INTR_TYPE8(x)    _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE8)
0386 #define G_GPIO_INTR_TYPE8(x)    _SB_GETVALUE(x, S_GPIO_INTR_TYPE8, M_GPIO_INTR_TYPE8)
0387 
0388 #define S_GPIO_INTR_TYPE10  10
0389 #define M_GPIO_INTR_TYPE10  _SB_MAKEMASK(2, S_GPIO_INTR_TYPE10)
0390 #define V_GPIO_INTR_TYPE10(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE10)
0391 #define G_GPIO_INTR_TYPE10(x)   _SB_GETVALUE(x, S_GPIO_INTR_TYPE10, M_GPIO_INTR_TYPE10)
0392 
0393 #define S_GPIO_INTR_TYPE12  12
0394 #define M_GPIO_INTR_TYPE12  _SB_MAKEMASK(2, S_GPIO_INTR_TYPE12)
0395 #define V_GPIO_INTR_TYPE12(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE12)
0396 #define G_GPIO_INTR_TYPE12(x)   _SB_GETVALUE(x, S_GPIO_INTR_TYPE12, M_GPIO_INTR_TYPE12)
0397 
0398 #define S_GPIO_INTR_TYPE14  14
0399 #define M_GPIO_INTR_TYPE14  _SB_MAKEMASK(2, S_GPIO_INTR_TYPE14)
0400 #define V_GPIO_INTR_TYPE14(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_TYPE14)
0401 #define G_GPIO_INTR_TYPE14(x)   _SB_GETVALUE(x, S_GPIO_INTR_TYPE14, M_GPIO_INTR_TYPE14)
0402 
0403 #if SIBYTE_HDR_FEATURE_CHIP(1480)
0404 
0405 /*
0406  * GPIO Interrupt Additional Type Register
0407  */
0408 
0409 #define K_GPIO_INTR_BOTHEDGE    0
0410 #define K_GPIO_INTR_RISEEDGE    1
0411 #define K_GPIO_INTR_UNPRED1 2
0412 #define K_GPIO_INTR_UNPRED2 3
0413 
0414 #define S_GPIO_INTR_ATYPEX(n)   (((n)/2)*2)
0415 #define M_GPIO_INTR_ATYPEX(n)   _SB_MAKEMASK(2, S_GPIO_INTR_ATYPEX(n))
0416 #define V_GPIO_INTR_ATYPEX(n, x)    _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPEX(n))
0417 #define G_GPIO_INTR_ATYPEX(n, x)    _SB_GETVALUE(x, S_GPIO_INTR_ATYPEX(n), M_GPIO_INTR_ATYPEX(n))
0418 
0419 #define S_GPIO_INTR_ATYPE0  0
0420 #define M_GPIO_INTR_ATYPE0  _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE0)
0421 #define V_GPIO_INTR_ATYPE0(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE0)
0422 #define G_GPIO_INTR_ATYPE0(x)   _SB_GETVALUE(x, S_GPIO_INTR_ATYPE0, M_GPIO_INTR_ATYPE0)
0423 
0424 #define S_GPIO_INTR_ATYPE2  2
0425 #define M_GPIO_INTR_ATYPE2  _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE2)
0426 #define V_GPIO_INTR_ATYPE2(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE2)
0427 #define G_GPIO_INTR_ATYPE2(x)   _SB_GETVALUE(x, S_GPIO_INTR_ATYPE2, M_GPIO_INTR_ATYPE2)
0428 
0429 #define S_GPIO_INTR_ATYPE4  4
0430 #define M_GPIO_INTR_ATYPE4  _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE4)
0431 #define V_GPIO_INTR_ATYPE4(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE4)
0432 #define G_GPIO_INTR_ATYPE4(x)   _SB_GETVALUE(x, S_GPIO_INTR_ATYPE4, M_GPIO_INTR_ATYPE4)
0433 
0434 #define S_GPIO_INTR_ATYPE6  6
0435 #define M_GPIO_INTR_ATYPE6  _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE6)
0436 #define V_GPIO_INTR_ATYPE6(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE6)
0437 #define G_GPIO_INTR_ATYPE6(x)   _SB_GETVALUE(x, S_GPIO_INTR_ATYPE6, M_GPIO_INTR_ATYPE6)
0438 
0439 #define S_GPIO_INTR_ATYPE8  8
0440 #define M_GPIO_INTR_ATYPE8  _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE8)
0441 #define V_GPIO_INTR_ATYPE8(x)   _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE8)
0442 #define G_GPIO_INTR_ATYPE8(x)   _SB_GETVALUE(x, S_GPIO_INTR_ATYPE8, M_GPIO_INTR_ATYPE8)
0443 
0444 #define S_GPIO_INTR_ATYPE10 10
0445 #define M_GPIO_INTR_ATYPE10 _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE10)
0446 #define V_GPIO_INTR_ATYPE10(x)  _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE10)
0447 #define G_GPIO_INTR_ATYPE10(x)  _SB_GETVALUE(x, S_GPIO_INTR_ATYPE10, M_GPIO_INTR_ATYPE10)
0448 
0449 #define S_GPIO_INTR_ATYPE12 12
0450 #define M_GPIO_INTR_ATYPE12 _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE12)
0451 #define V_GPIO_INTR_ATYPE12(x)  _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE12)
0452 #define G_GPIO_INTR_ATYPE12(x)  _SB_GETVALUE(x, S_GPIO_INTR_ATYPE12, M_GPIO_INTR_ATYPE12)
0453 
0454 #define S_GPIO_INTR_ATYPE14 14
0455 #define M_GPIO_INTR_ATYPE14 _SB_MAKEMASK(2, S_GPIO_INTR_ATYPE14)
0456 #define V_GPIO_INTR_ATYPE14(x)  _SB_MAKEVALUE(x, S_GPIO_INTR_ATYPE14)
0457 #define G_GPIO_INTR_ATYPE14(x)  _SB_GETVALUE(x, S_GPIO_INTR_ATYPE14, M_GPIO_INTR_ATYPE14)
0458 #endif
0459 
0460 
0461 #endif