Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:22:43

0001 /**
0002  * @file
0003  *
0004  * @ingroup RTEMSBSPsARMCycVContrib
0005  */
0006 
0007 /*******************************************************************************
0008 *                                                                              *
0009 * Copyright 2013 Altera Corporation. All Rights Reserved.                      *
0010 *                                                                              *
0011 * Redistribution and use in source and binary forms, with or without           *
0012 * modification, are permitted provided that the following conditions are met:  *
0013 *                                                                              *
0014 * 1. Redistributions of source code must retain the above copyright notice,    *
0015 *    this list of conditions and the following disclaimer.                     *
0016 *                                                                              *
0017 * 2. Redistributions in binary form must reproduce the above copyright notice, *
0018 *    this list of conditions and the following disclaimer in the documentation *
0019 *    and/or other materials provided with the distribution.                    *
0020 *                                                                              *
0021 * 3. The name of the author may not be used to endorse or promote products     *
0022 *    derived from this software without specific prior written permission.     *
0023 *                                                                              *
0024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR *
0025 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
0026 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO  *
0027 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,       *
0028 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
0029 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  *
0030 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,     *
0031 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR      *
0032 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF       *
0033 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                                   *
0034 *                                                                              *
0035 *******************************************************************************/
0036 
0037 /* Altera - ALT_GPIO */
0038 
0039 #ifndef __ALTERA_ALT_GPIO_H__
0040 #define __ALTERA_ALT_GPIO_H__
0041 
0042 #ifdef __cplusplus
0043 extern "C"
0044 {
0045 #endif  /* __cplusplus */
0046 
0047 /*
0048  * Component : GPIO Module - ALT_GPIO
0049  * GPIO Module
0050  * 
0051  * Registers in the GPIO module
0052  * 
0053  */
0054 /*
0055  * Register : Port A Data Register - gpio_swporta_dr
0056  * 
0057  * This GPIO Data register is used to input or output data
0058  * 
0059  * Check the GPIO chapter in the handbook for details on how GPIO2 is implemented.
0060  * 
0061  * Register Layout
0062  * 
0063  *  Bits    | Access | Reset | Description
0064  * :--------|:-------|:------|:------------
0065  *  [28:0]  | RW     | 0x0   | Port A Data
0066  *  [31:29] | ???    | 0x0   | *UNDEFINED*
0067  * 
0068  */
0069 /*
0070  * Field : Port A Data - gpio_swporta_dr
0071  * 
0072  * Values written to this register are output on the I/O signals of the GPIO Data
0073  * Register, if the corresponding data direction bits for GPIO Data Direction Field
0074  * are set to Output mode. The value read back is equal to the last value written
0075  * to this register.
0076  * 
0077  * Check the GPIO chapter in the handbook for details on how GPIO2 is implemented.
0078  * 
0079  * Field Access Macros:
0080  * 
0081  */
0082 /* The Least Significant Bit (LSB) position of the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field. */
0083 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_LSB        0
0084 /* The Most Significant Bit (MSB) position of the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field. */
0085 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_MSB        28
0086 /* The width in bits of the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field. */
0087 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_WIDTH      29
0088 /* The mask used to set the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field value. */
0089 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_SET_MSK    0x1fffffff
0090 /* The mask used to clear the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field value. */
0091 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_CLR_MSK    0xe0000000
0092 /* The reset value of the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field. */
0093 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_RESET      0x0
0094 /* Extracts the ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR field value from a register. */
0095 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_GET(value) (((value) & 0x1fffffff) >> 0)
0096 /* Produces a ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR register field value suitable for setting the register. */
0097 #define ALT_GPIO_SWPORTA_DR_GPIO_SWPORTA_DR_SET(value) (((value) << 0) & 0x1fffffff)
0098 
0099 #ifndef __ASSEMBLY__
0100 /*
0101  * WARNING: The C register and register group struct declarations are provided for
0102  * convenience and illustrative purposes. They should, however, be used with
0103  * caution as the C language standard provides no guarantees about the alignment or
0104  * atomicity of device memory accesses. The recommended practice for writing
0105  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0106  * alt_write_word() functions.
0107  * 
0108  * The struct declaration for register ALT_GPIO_SWPORTA_DR.
0109  */
0110 struct ALT_GPIO_SWPORTA_DR_s
0111 {
0112     uint32_t  gpio_swporta_dr : 29;  /* Port A Data */
0113     uint32_t                  :  3;  /* *UNDEFINED* */
0114 };
0115 
0116 /* The typedef declaration for register ALT_GPIO_SWPORTA_DR. */
0117 typedef volatile struct ALT_GPIO_SWPORTA_DR_s  ALT_GPIO_SWPORTA_DR_t;
0118 #endif  /* __ASSEMBLY__ */
0119 
0120 /* The byte offset of the ALT_GPIO_SWPORTA_DR register from the beginning of the component. */
0121 #define ALT_GPIO_SWPORTA_DR_OFST        0x0
0122 /* The address of the ALT_GPIO_SWPORTA_DR register. */
0123 #define ALT_GPIO_SWPORTA_DR_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_SWPORTA_DR_OFST))
0124 
0125 /*
0126  * Register : Port A Data Direction Register - gpio_swporta_ddr
0127  * 
0128  * This register establishes the direction of each corresponding GPIO Data Field
0129  * Bit.
0130  * 
0131  * Check the GPIO chapter in the handbook for details on how GPIO2 is implemented.
0132  * 
0133  * Register Layout
0134  * 
0135  *  Bits    | Access | Reset | Description                
0136  * :--------|:-------|:------|:----------------------------
0137  *  [28:0]  | RW     | 0x0   | Port A Data Direction Field
0138  *  [31:29] | ???    | 0x0   | *UNDEFINED*                
0139  * 
0140  */
0141 /*
0142  * Field : Port A Data Direction Field - gpio_swporta_ddr
0143  * 
0144  * Values written to this register independently control the direction of the
0145  * corresponding data bit in the Port A Data Register.
0146  * 
0147  * Check the GPIO chapter in the handbook for details on how GPIO2 is implemented.
0148  * 
0149  * Field Enumeration Values:
0150  * 
0151  *  Enum                                        | Value | Description     
0152  * :--------------------------------------------|:------|:-----------------
0153  *  ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_E_IN  | 0x0   | Input Direction 
0154  *  ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_E_OUT | 0x1   | Output Direction
0155  * 
0156  * Field Access Macros:
0157  * 
0158  */
0159 /*
0160  * Enumerated value for register field ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR
0161  * 
0162  * Input Direction
0163  */
0164 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_E_IN  0x0
0165 /*
0166  * Enumerated value for register field ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR
0167  * 
0168  * Output Direction
0169  */
0170 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_E_OUT 0x1
0171 
0172 /* The Least Significant Bit (LSB) position of the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field. */
0173 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_LSB        0
0174 /* The Most Significant Bit (MSB) position of the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field. */
0175 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_MSB        28
0176 /* The width in bits of the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field. */
0177 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_WIDTH      29
0178 /* The mask used to set the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field value. */
0179 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_SET_MSK    0x1fffffff
0180 /* The mask used to clear the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field value. */
0181 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_CLR_MSK    0xe0000000
0182 /* The reset value of the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field. */
0183 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_RESET      0x0
0184 /* Extracts the ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR field value from a register. */
0185 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_GET(value) (((value) & 0x1fffffff) >> 0)
0186 /* Produces a ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR register field value suitable for setting the register. */
0187 #define ALT_GPIO_SWPORTA_DDR_GPIO_SWPORTA_DDR_SET(value) (((value) << 0) & 0x1fffffff)
0188 
0189 #ifndef __ASSEMBLY__
0190 /*
0191  * WARNING: The C register and register group struct declarations are provided for
0192  * convenience and illustrative purposes. They should, however, be used with
0193  * caution as the C language standard provides no guarantees about the alignment or
0194  * atomicity of device memory accesses. The recommended practice for writing
0195  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0196  * alt_write_word() functions.
0197  * 
0198  * The struct declaration for register ALT_GPIO_SWPORTA_DDR.
0199  */
0200 struct ALT_GPIO_SWPORTA_DDR_s
0201 {
0202     uint32_t  gpio_swporta_ddr : 29;  /* Port A Data Direction Field */
0203     uint32_t                   :  3;  /* *UNDEFINED* */
0204 };
0205 
0206 /* The typedef declaration for register ALT_GPIO_SWPORTA_DDR. */
0207 typedef volatile struct ALT_GPIO_SWPORTA_DDR_s  ALT_GPIO_SWPORTA_DDR_t;
0208 #endif  /* __ASSEMBLY__ */
0209 
0210 /* The byte offset of the ALT_GPIO_SWPORTA_DDR register from the beginning of the component. */
0211 #define ALT_GPIO_SWPORTA_DDR_OFST        0x4
0212 /* The address of the ALT_GPIO_SWPORTA_DDR register. */
0213 #define ALT_GPIO_SWPORTA_DDR_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_SWPORTA_DDR_OFST))
0214 
0215 /*
0216  * Register : Interrupt Enable Register - gpio_inten
0217  * 
0218  * The Interrupt enable register allows interrupts for each bit of the Port A data
0219  * register.
0220  * 
0221  * Register Layout
0222  * 
0223  *  Bits    | Access | Reset | Description           
0224  * :--------|:-------|:------|:-----------------------
0225  *  [28:0]  | RW     | 0x0   | Interrupt Enable Field
0226  *  [31:29] | ???    | 0x0   | *UNDEFINED*           
0227  * 
0228  */
0229 /*
0230  * Field : Interrupt Enable Field - gpio_inten
0231  * 
0232  * Allows each bit of Port A Data Register to be configured for interrupt
0233  * capability. Interrupts are disabled on the corresponding bits of Port A Data
0234  * Register if the corresponding data direction register is set to Output.
0235  * 
0236  * Field Enumeration Values:
0237  * 
0238  *  Enum                            | Value | Description                
0239  * :--------------------------------|:------|:----------------------------
0240  *  ALT_GPIO_INTEN_GPIO_INTEN_E_DIS | 0x0   | Disable Interrupt on Port A
0241  *  ALT_GPIO_INTEN_GPIO_INTEN_E_EN  | 0x1   | Enable Interrupt on Port A 
0242  * 
0243  * Field Access Macros:
0244  * 
0245  */
0246 /*
0247  * Enumerated value for register field ALT_GPIO_INTEN_GPIO_INTEN
0248  * 
0249  * Disable Interrupt on Port A
0250  */
0251 #define ALT_GPIO_INTEN_GPIO_INTEN_E_DIS 0x0
0252 /*
0253  * Enumerated value for register field ALT_GPIO_INTEN_GPIO_INTEN
0254  * 
0255  * Enable Interrupt on Port A
0256  */
0257 #define ALT_GPIO_INTEN_GPIO_INTEN_E_EN  0x1
0258 
0259 /* The Least Significant Bit (LSB) position of the ALT_GPIO_INTEN_GPIO_INTEN register field. */
0260 #define ALT_GPIO_INTEN_GPIO_INTEN_LSB        0
0261 /* The Most Significant Bit (MSB) position of the ALT_GPIO_INTEN_GPIO_INTEN register field. */
0262 #define ALT_GPIO_INTEN_GPIO_INTEN_MSB        28
0263 /* The width in bits of the ALT_GPIO_INTEN_GPIO_INTEN register field. */
0264 #define ALT_GPIO_INTEN_GPIO_INTEN_WIDTH      29
0265 /* The mask used to set the ALT_GPIO_INTEN_GPIO_INTEN register field value. */
0266 #define ALT_GPIO_INTEN_GPIO_INTEN_SET_MSK    0x1fffffff
0267 /* The mask used to clear the ALT_GPIO_INTEN_GPIO_INTEN register field value. */
0268 #define ALT_GPIO_INTEN_GPIO_INTEN_CLR_MSK    0xe0000000
0269 /* The reset value of the ALT_GPIO_INTEN_GPIO_INTEN register field. */
0270 #define ALT_GPIO_INTEN_GPIO_INTEN_RESET      0x0
0271 /* Extracts the ALT_GPIO_INTEN_GPIO_INTEN field value from a register. */
0272 #define ALT_GPIO_INTEN_GPIO_INTEN_GET(value) (((value) & 0x1fffffff) >> 0)
0273 /* Produces a ALT_GPIO_INTEN_GPIO_INTEN register field value suitable for setting the register. */
0274 #define ALT_GPIO_INTEN_GPIO_INTEN_SET(value) (((value) << 0) & 0x1fffffff)
0275 
0276 #ifndef __ASSEMBLY__
0277 /*
0278  * WARNING: The C register and register group struct declarations are provided for
0279  * convenience and illustrative purposes. They should, however, be used with
0280  * caution as the C language standard provides no guarantees about the alignment or
0281  * atomicity of device memory accesses. The recommended practice for writing
0282  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0283  * alt_write_word() functions.
0284  * 
0285  * The struct declaration for register ALT_GPIO_INTEN.
0286  */
0287 struct ALT_GPIO_INTEN_s
0288 {
0289     uint32_t  gpio_inten : 29;  /* Interrupt Enable Field */
0290     uint32_t             :  3;  /* *UNDEFINED* */
0291 };
0292 
0293 /* The typedef declaration for register ALT_GPIO_INTEN. */
0294 typedef volatile struct ALT_GPIO_INTEN_s  ALT_GPIO_INTEN_t;
0295 #endif  /* __ASSEMBLY__ */
0296 
0297 /* The byte offset of the ALT_GPIO_INTEN register from the beginning of the component. */
0298 #define ALT_GPIO_INTEN_OFST        0x30
0299 /* The address of the ALT_GPIO_INTEN register. */
0300 #define ALT_GPIO_INTEN_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_INTEN_OFST))
0301 
0302 /*
0303  * Register : Interrupt Mask Register - gpio_intmask
0304  * 
0305  * Controls which pins cause interrupts on Port A Data Register inputs.
0306  * 
0307  * Register Layout
0308  * 
0309  *  Bits    | Access | Reset | Description         
0310  * :--------|:-------|:------|:---------------------
0311  *  [28:0]  | RW     | 0x0   | Interrupt Mask Field
0312  *  [31:29] | ???    | 0x0   | *UNDEFINED*         
0313  * 
0314  */
0315 /*
0316  * Field : Interrupt Mask Field - gpio_intmask
0317  * 
0318  * Controls whether an interrupt on Port A Data Register can generate an interrupt
0319  * to the interrupt controller by not masking it. The unmasked status can be read
0320  * as well as the resultant status after masking.
0321  * 
0322  * Field Enumeration Values:
0323  * 
0324  *  Enum                              | Value | Description                
0325  * :----------------------------------|:------|:----------------------------
0326  *  ALT_GPIO_INTMSK_GPIO_INTMSK_E_DIS | 0x0   | Interrupt bits are unmasked
0327  *  ALT_GPIO_INTMSK_GPIO_INTMSK_E_EN  | 0x1   | Mask Interrupt             
0328  * 
0329  * Field Access Macros:
0330  * 
0331  */
0332 /*
0333  * Enumerated value for register field ALT_GPIO_INTMSK_GPIO_INTMSK
0334  * 
0335  * Interrupt bits are unmasked
0336  */
0337 #define ALT_GPIO_INTMSK_GPIO_INTMSK_E_DIS   0x0
0338 /*
0339  * Enumerated value for register field ALT_GPIO_INTMSK_GPIO_INTMSK
0340  * 
0341  * Mask Interrupt
0342  */
0343 #define ALT_GPIO_INTMSK_GPIO_INTMSK_E_EN    0x1
0344 
0345 /* The Least Significant Bit (LSB) position of the ALT_GPIO_INTMSK_GPIO_INTMSK register field. */
0346 #define ALT_GPIO_INTMSK_GPIO_INTMSK_LSB        0
0347 /* The Most Significant Bit (MSB) position of the ALT_GPIO_INTMSK_GPIO_INTMSK register field. */
0348 #define ALT_GPIO_INTMSK_GPIO_INTMSK_MSB        28
0349 /* The width in bits of the ALT_GPIO_INTMSK_GPIO_INTMSK register field. */
0350 #define ALT_GPIO_INTMSK_GPIO_INTMSK_WIDTH      29
0351 /* The mask used to set the ALT_GPIO_INTMSK_GPIO_INTMSK register field value. */
0352 #define ALT_GPIO_INTMSK_GPIO_INTMSK_SET_MSK    0x1fffffff
0353 /* The mask used to clear the ALT_GPIO_INTMSK_GPIO_INTMSK register field value. */
0354 #define ALT_GPIO_INTMSK_GPIO_INTMSK_CLR_MSK    0xe0000000
0355 /* The reset value of the ALT_GPIO_INTMSK_GPIO_INTMSK register field. */
0356 #define ALT_GPIO_INTMSK_GPIO_INTMSK_RESET      0x0
0357 /* Extracts the ALT_GPIO_INTMSK_GPIO_INTMSK field value from a register. */
0358 #define ALT_GPIO_INTMSK_GPIO_INTMSK_GET(value) (((value) & 0x1fffffff) >> 0)
0359 /* Produces a ALT_GPIO_INTMSK_GPIO_INTMSK register field value suitable for setting the register. */
0360 #define ALT_GPIO_INTMSK_GPIO_INTMSK_SET(value) (((value) << 0) & 0x1fffffff)
0361 
0362 #ifndef __ASSEMBLY__
0363 /*
0364  * WARNING: The C register and register group struct declarations are provided for
0365  * convenience and illustrative purposes. They should, however, be used with
0366  * caution as the C language standard provides no guarantees about the alignment or
0367  * atomicity of device memory accesses. The recommended practice for writing
0368  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0369  * alt_write_word() functions.
0370  * 
0371  * The struct declaration for register ALT_GPIO_INTMSK.
0372  */
0373 struct ALT_GPIO_INTMSK_s
0374 {
0375     uint32_t  gpio_intmask : 29;  /* Interrupt Mask Field */
0376     uint32_t               :  3;  /* *UNDEFINED* */
0377 };
0378 
0379 /* The typedef declaration for register ALT_GPIO_INTMSK. */
0380 typedef volatile struct ALT_GPIO_INTMSK_s  ALT_GPIO_INTMSK_t;
0381 #endif  /* __ASSEMBLY__ */
0382 
0383 /* The byte offset of the ALT_GPIO_INTMSK register from the beginning of the component. */
0384 #define ALT_GPIO_INTMSK_OFST        0x34
0385 /* The address of the ALT_GPIO_INTMSK register. */
0386 #define ALT_GPIO_INTMSK_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_INTMSK_OFST))
0387 
0388 /*
0389  * Register : Interrupt Level Register - gpio_inttype_level
0390  * 
0391  * The interrupt level register defines the type of interrupt (edge or level).
0392  * 
0393  * Register Layout
0394  * 
0395  *  Bits    | Access | Reset | Description          
0396  * :--------|:-------|:------|:----------------------
0397  *  [28:0]  | RW     | 0x0   | Interrupt Level Field
0398  *  [31:29] | ???    | 0x0   | *UNDEFINED*          
0399  * 
0400  */
0401 /*
0402  * Field : Interrupt Level Field - gpio_inttype_level
0403  * 
0404  * This field controls the type of interrupt that can occur on the Port A Data
0405  * Register.
0406  * 
0407  * Field Enumeration Values:
0408  * 
0409  *  Enum                                              | Value | Description    
0410  * :--------------------------------------------------|:------|:----------------
0411  *  ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_E_LEVEL | 0x0   | Level-sensitive
0412  *  ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_E_EDGE  | 0x1   | Edge-sensitive 
0413  * 
0414  * Field Access Macros:
0415  * 
0416  */
0417 /*
0418  * Enumerated value for register field ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL
0419  * 
0420  * Level-sensitive
0421  */
0422 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_E_LEVEL   0x0
0423 /*
0424  * Enumerated value for register field ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL
0425  * 
0426  * Edge-sensitive
0427  */
0428 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_E_EDGE    0x1
0429 
0430 /* The Least Significant Bit (LSB) position of the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field. */
0431 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_LSB        0
0432 /* The Most Significant Bit (MSB) position of the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field. */
0433 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_MSB        28
0434 /* The width in bits of the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field. */
0435 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_WIDTH      29
0436 /* The mask used to set the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field value. */
0437 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_SET_MSK    0x1fffffff
0438 /* The mask used to clear the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field value. */
0439 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_CLR_MSK    0xe0000000
0440 /* The reset value of the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field. */
0441 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_RESET      0x0
0442 /* Extracts the ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL field value from a register. */
0443 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_GET(value) (((value) & 0x1fffffff) >> 0)
0444 /* Produces a ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL register field value suitable for setting the register. */
0445 #define ALT_GPIO_INTTYPE_LEVEL_GPIO_INTTYPE_LEVEL_SET(value) (((value) << 0) & 0x1fffffff)
0446 
0447 #ifndef __ASSEMBLY__
0448 /*
0449  * WARNING: The C register and register group struct declarations are provided for
0450  * convenience and illustrative purposes. They should, however, be used with
0451  * caution as the C language standard provides no guarantees about the alignment or
0452  * atomicity of device memory accesses. The recommended practice for writing
0453  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0454  * alt_write_word() functions.
0455  * 
0456  * The struct declaration for register ALT_GPIO_INTTYPE_LEVEL.
0457  */
0458 struct ALT_GPIO_INTTYPE_LEVEL_s
0459 {
0460     uint32_t  gpio_inttype_level : 29;  /* Interrupt Level Field */
0461     uint32_t                     :  3;  /* *UNDEFINED* */
0462 };
0463 
0464 /* The typedef declaration for register ALT_GPIO_INTTYPE_LEVEL. */
0465 typedef volatile struct ALT_GPIO_INTTYPE_LEVEL_s  ALT_GPIO_INTTYPE_LEVEL_t;
0466 #endif  /* __ASSEMBLY__ */
0467 
0468 /* The byte offset of the ALT_GPIO_INTTYPE_LEVEL register from the beginning of the component. */
0469 #define ALT_GPIO_INTTYPE_LEVEL_OFST        0x38
0470 /* The address of the ALT_GPIO_INTTYPE_LEVEL register. */
0471 #define ALT_GPIO_INTTYPE_LEVEL_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_INTTYPE_LEVEL_OFST))
0472 
0473 /*
0474  * Register : Interrupt Polarity Register - gpio_int_polarity
0475  * 
0476  * Controls the Polarity of Interrupts that can occur on inputs of Port A Data
0477  * Register
0478  * 
0479  * Register Layout
0480  * 
0481  *  Bits    | Access | Reset | Description           
0482  * :--------|:-------|:------|:-----------------------
0483  *  [28:0]  | RW     | 0x0   | Polarity Control Field
0484  *  [31:29] | ???    | 0x0   | *UNDEFINED*           
0485  * 
0486  */
0487 /*
0488  * Field : Polarity Control Field - gpio_int_polarity
0489  * 
0490  * Controls the polarity of edge or level sensitivity that can occur on input of
0491  * Port A Data Register.
0492  * 
0493  * Field Enumeration Values:
0494  * 
0495  *  Enum                                    | Value | Description
0496  * :----------------------------------------|:------|:------------
0497  *  ALT_GPIO_INT_POL_GPIO_INT_POL_E_ACTLOW  | 0x0   | Active low 
0498  *  ALT_GPIO_INT_POL_GPIO_INT_POL_E_ACTHIGH | 0x1   | Active high
0499  * 
0500  * Field Access Macros:
0501  * 
0502  */
0503 /*
0504  * Enumerated value for register field ALT_GPIO_INT_POL_GPIO_INT_POL
0505  * 
0506  * Active low
0507  */
0508 #define ALT_GPIO_INT_POL_GPIO_INT_POL_E_ACTLOW  0x0
0509 /*
0510  * Enumerated value for register field ALT_GPIO_INT_POL_GPIO_INT_POL
0511  * 
0512  * Active high
0513  */
0514 #define ALT_GPIO_INT_POL_GPIO_INT_POL_E_ACTHIGH 0x1
0515 
0516 /* The Least Significant Bit (LSB) position of the ALT_GPIO_INT_POL_GPIO_INT_POL register field. */
0517 #define ALT_GPIO_INT_POL_GPIO_INT_POL_LSB        0
0518 /* The Most Significant Bit (MSB) position of the ALT_GPIO_INT_POL_GPIO_INT_POL register field. */
0519 #define ALT_GPIO_INT_POL_GPIO_INT_POL_MSB        28
0520 /* The width in bits of the ALT_GPIO_INT_POL_GPIO_INT_POL register field. */
0521 #define ALT_GPIO_INT_POL_GPIO_INT_POL_WIDTH      29
0522 /* The mask used to set the ALT_GPIO_INT_POL_GPIO_INT_POL register field value. */
0523 #define ALT_GPIO_INT_POL_GPIO_INT_POL_SET_MSK    0x1fffffff
0524 /* The mask used to clear the ALT_GPIO_INT_POL_GPIO_INT_POL register field value. */
0525 #define ALT_GPIO_INT_POL_GPIO_INT_POL_CLR_MSK    0xe0000000
0526 /* The reset value of the ALT_GPIO_INT_POL_GPIO_INT_POL register field. */
0527 #define ALT_GPIO_INT_POL_GPIO_INT_POL_RESET      0x0
0528 /* Extracts the ALT_GPIO_INT_POL_GPIO_INT_POL field value from a register. */
0529 #define ALT_GPIO_INT_POL_GPIO_INT_POL_GET(value) (((value) & 0x1fffffff) >> 0)
0530 /* Produces a ALT_GPIO_INT_POL_GPIO_INT_POL register field value suitable for setting the register. */
0531 #define ALT_GPIO_INT_POL_GPIO_INT_POL_SET(value) (((value) << 0) & 0x1fffffff)
0532 
0533 #ifndef __ASSEMBLY__
0534 /*
0535  * WARNING: The C register and register group struct declarations are provided for
0536  * convenience and illustrative purposes. They should, however, be used with
0537  * caution as the C language standard provides no guarantees about the alignment or
0538  * atomicity of device memory accesses. The recommended practice for writing
0539  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0540  * alt_write_word() functions.
0541  * 
0542  * The struct declaration for register ALT_GPIO_INT_POL.
0543  */
0544 struct ALT_GPIO_INT_POL_s
0545 {
0546     uint32_t  gpio_int_polarity : 29;  /* Polarity Control Field */
0547     uint32_t                    :  3;  /* *UNDEFINED* */
0548 };
0549 
0550 /* The typedef declaration for register ALT_GPIO_INT_POL. */
0551 typedef volatile struct ALT_GPIO_INT_POL_s  ALT_GPIO_INT_POL_t;
0552 #endif  /* __ASSEMBLY__ */
0553 
0554 /* The byte offset of the ALT_GPIO_INT_POL register from the beginning of the component. */
0555 #define ALT_GPIO_INT_POL_OFST        0x3c
0556 /* The address of the ALT_GPIO_INT_POL register. */
0557 #define ALT_GPIO_INT_POL_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_INT_POL_OFST))
0558 
0559 /*
0560  * Register : Interrupt Status Register - gpio_intstatus
0561  * 
0562  * The Interrupt status is reported for all Port A Data Register Bits.
0563  * 
0564  * Register Layout
0565  * 
0566  *  Bits    | Access | Reset | Description           
0567  * :--------|:-------|:------|:-----------------------
0568  *  [28:0]  | RW     | 0x0   | Interrupt Status Field
0569  *  [31:29] | ???    | 0x0   | *UNDEFINED*           
0570  * 
0571  */
0572 /*
0573  * Field : Interrupt Status Field - gpio_intstatus
0574  * 
0575  * Interrupt status of Port A Data Register.
0576  * 
0577  * Field Enumeration Values:
0578  * 
0579  *  Enum                                  | Value | Description
0580  * :--------------------------------------|:------|:------------
0581  *  ALT_GPIO_INTSTAT_GPIO_INTSTAT_E_INACT | 0x0   | Inactive   
0582  *  ALT_GPIO_INTSTAT_GPIO_INTSTAT_E_ACT   | 0x1   | Active     
0583  * 
0584  * Field Access Macros:
0585  * 
0586  */
0587 /*
0588  * Enumerated value for register field ALT_GPIO_INTSTAT_GPIO_INTSTAT
0589  * 
0590  * Inactive
0591  */
0592 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_E_INACT   0x0
0593 /*
0594  * Enumerated value for register field ALT_GPIO_INTSTAT_GPIO_INTSTAT
0595  * 
0596  * Active
0597  */
0598 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_E_ACT     0x1
0599 
0600 /* The Least Significant Bit (LSB) position of the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field. */
0601 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_LSB        0
0602 /* The Most Significant Bit (MSB) position of the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field. */
0603 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_MSB        28
0604 /* The width in bits of the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field. */
0605 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_WIDTH      29
0606 /* The mask used to set the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field value. */
0607 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_SET_MSK    0x1fffffff
0608 /* The mask used to clear the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field value. */
0609 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_CLR_MSK    0xe0000000
0610 /* The reset value of the ALT_GPIO_INTSTAT_GPIO_INTSTAT register field. */
0611 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_RESET      0x0
0612 /* Extracts the ALT_GPIO_INTSTAT_GPIO_INTSTAT field value from a register. */
0613 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_GET(value) (((value) & 0x1fffffff) >> 0)
0614 /* Produces a ALT_GPIO_INTSTAT_GPIO_INTSTAT register field value suitable for setting the register. */
0615 #define ALT_GPIO_INTSTAT_GPIO_INTSTAT_SET(value) (((value) << 0) & 0x1fffffff)
0616 
0617 #ifndef __ASSEMBLY__
0618 /*
0619  * WARNING: The C register and register group struct declarations are provided for
0620  * convenience and illustrative purposes. They should, however, be used with
0621  * caution as the C language standard provides no guarantees about the alignment or
0622  * atomicity of device memory accesses. The recommended practice for writing
0623  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0624  * alt_write_word() functions.
0625  * 
0626  * The struct declaration for register ALT_GPIO_INTSTAT.
0627  */
0628 struct ALT_GPIO_INTSTAT_s
0629 {
0630     uint32_t  gpio_intstatus : 29;  /* Interrupt Status Field */
0631     uint32_t                 :  3;  /* *UNDEFINED* */
0632 };
0633 
0634 /* The typedef declaration for register ALT_GPIO_INTSTAT. */
0635 typedef volatile struct ALT_GPIO_INTSTAT_s  ALT_GPIO_INTSTAT_t;
0636 #endif  /* __ASSEMBLY__ */
0637 
0638 /* The byte offset of the ALT_GPIO_INTSTAT register from the beginning of the component. */
0639 #define ALT_GPIO_INTSTAT_OFST        0x40
0640 /* The address of the ALT_GPIO_INTSTAT register. */
0641 #define ALT_GPIO_INTSTAT_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_INTSTAT_OFST))
0642 
0643 /*
0644  * Register : Raw Interrupt Status Register - gpio_raw_intstatus
0645  * 
0646  * This is the Raw Interrupt Status Register for Port A Data Register. It is used
0647  * with the Interrupt Mask Register to allow interrupts from the Port A Data
0648  * Register.
0649  * 
0650  * Register Layout
0651  * 
0652  *  Bits    | Access | Reset | Description               
0653  * :--------|:-------|:------|:---------------------------
0654  *  [28:0]  | RW     | 0x0   | Raw Interrupt Status Field
0655  *  [31:29] | ???    | 0x0   | *UNDEFINED*               
0656  * 
0657  */
0658 /*
0659  * Field : Raw Interrupt Status Field - gpio_raw_intstatus
0660  * 
0661  * Raw interrupt of status of Port A Data Register (premasking bits)
0662  * 
0663  * Field Enumeration Values:
0664  * 
0665  *  Enum                                          | Value | Description
0666  * :----------------------------------------------|:------|:------------
0667  *  ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_E_INACT | 0x0   | Inactive   
0668  *  ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_E_ACT   | 0x1   | Active     
0669  * 
0670  * Field Access Macros:
0671  * 
0672  */
0673 /*
0674  * Enumerated value for register field ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT
0675  * 
0676  * Inactive
0677  */
0678 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_E_INACT   0x0
0679 /*
0680  * Enumerated value for register field ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT
0681  * 
0682  * Active
0683  */
0684 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_E_ACT     0x1
0685 
0686 /* The Least Significant Bit (LSB) position of the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field. */
0687 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_LSB        0
0688 /* The Most Significant Bit (MSB) position of the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field. */
0689 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_MSB        28
0690 /* The width in bits of the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field. */
0691 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_WIDTH      29
0692 /* The mask used to set the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field value. */
0693 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_SET_MSK    0x1fffffff
0694 /* The mask used to clear the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field value. */
0695 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_CLR_MSK    0xe0000000
0696 /* The reset value of the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field. */
0697 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_RESET      0x0
0698 /* Extracts the ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT field value from a register. */
0699 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_GET(value) (((value) & 0x1fffffff) >> 0)
0700 /* Produces a ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT register field value suitable for setting the register. */
0701 #define ALT_GPIO_RAW_INTSTAT_GPIO_RAW_INTSTAT_SET(value) (((value) << 0) & 0x1fffffff)
0702 
0703 #ifndef __ASSEMBLY__
0704 /*
0705  * WARNING: The C register and register group struct declarations are provided for
0706  * convenience and illustrative purposes. They should, however, be used with
0707  * caution as the C language standard provides no guarantees about the alignment or
0708  * atomicity of device memory accesses. The recommended practice for writing
0709  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0710  * alt_write_word() functions.
0711  * 
0712  * The struct declaration for register ALT_GPIO_RAW_INTSTAT.
0713  */
0714 struct ALT_GPIO_RAW_INTSTAT_s
0715 {
0716     uint32_t  gpio_raw_intstatus : 29;  /* Raw Interrupt Status Field */
0717     uint32_t                     :  3;  /* *UNDEFINED* */
0718 };
0719 
0720 /* The typedef declaration for register ALT_GPIO_RAW_INTSTAT. */
0721 typedef volatile struct ALT_GPIO_RAW_INTSTAT_s  ALT_GPIO_RAW_INTSTAT_t;
0722 #endif  /* __ASSEMBLY__ */
0723 
0724 /* The byte offset of the ALT_GPIO_RAW_INTSTAT register from the beginning of the component. */
0725 #define ALT_GPIO_RAW_INTSTAT_OFST        0x44
0726 /* The address of the ALT_GPIO_RAW_INTSTAT register. */
0727 #define ALT_GPIO_RAW_INTSTAT_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_RAW_INTSTAT_OFST))
0728 
0729 /*
0730  * Register : Debounce Enable Register - gpio_debounce
0731  * 
0732  * Debounces each IO Pin
0733  * 
0734  * Register Layout
0735  * 
0736  *  Bits    | Access | Reset | Description                    
0737  * :--------|:-------|:------|:--------------------------------
0738  *  [28:0]  | RW     | 0x0   | ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE
0739  *  [31:29] | ???    | 0x0   | *UNDEFINED*                    
0740  * 
0741  */
0742 /*
0743  * Field : gpio_debounce
0744  * 
0745  * Controls whether an external signal that is the source of an interrupt needs to
0746  * be debounced to remove any spurious glitches. A signal must be valid for two
0747  * periods of an external clock (gpio_db_clk) before it is internally processed.
0748  * 
0749  * Field Enumeration Values:
0750  * 
0751  *  Enum                                  | Value | Description    
0752  * :--------------------------------------|:------|:----------------
0753  *  ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_E_DIS | 0x0   | No debounce    
0754  *  ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_E_EN  | 0x1   | Enable debounce
0755  * 
0756  * Field Access Macros:
0757  * 
0758  */
0759 /*
0760  * Enumerated value for register field ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE
0761  * 
0762  * No debounce
0763  */
0764 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_E_DIS   0x0
0765 /*
0766  * Enumerated value for register field ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE
0767  * 
0768  * Enable debounce
0769  */
0770 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_E_EN    0x1
0771 
0772 /* The Least Significant Bit (LSB) position of the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field. */
0773 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_LSB        0
0774 /* The Most Significant Bit (MSB) position of the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field. */
0775 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_MSB        28
0776 /* The width in bits of the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field. */
0777 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_WIDTH      29
0778 /* The mask used to set the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field value. */
0779 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_SET_MSK    0x1fffffff
0780 /* The mask used to clear the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field value. */
0781 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_CLR_MSK    0xe0000000
0782 /* The reset value of the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field. */
0783 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_RESET      0x0
0784 /* Extracts the ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE field value from a register. */
0785 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_GET(value) (((value) & 0x1fffffff) >> 0)
0786 /* Produces a ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE register field value suitable for setting the register. */
0787 #define ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE_SET(value) (((value) << 0) & 0x1fffffff)
0788 
0789 #ifndef __ASSEMBLY__
0790 /*
0791  * WARNING: The C register and register group struct declarations are provided for
0792  * convenience and illustrative purposes. They should, however, be used with
0793  * caution as the C language standard provides no guarantees about the alignment or
0794  * atomicity of device memory accesses. The recommended practice for writing
0795  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0796  * alt_write_word() functions.
0797  * 
0798  * The struct declaration for register ALT_GPIO_DEBOUNCE.
0799  */
0800 struct ALT_GPIO_DEBOUNCE_s
0801 {
0802     uint32_t  gpio_debounce : 29;  /* ALT_GPIO_DEBOUNCE_GPIO_DEBOUNCE */
0803     uint32_t                :  3;  /* *UNDEFINED* */
0804 };
0805 
0806 /* The typedef declaration for register ALT_GPIO_DEBOUNCE. */
0807 typedef volatile struct ALT_GPIO_DEBOUNCE_s  ALT_GPIO_DEBOUNCE_t;
0808 #endif  /* __ASSEMBLY__ */
0809 
0810 /* The byte offset of the ALT_GPIO_DEBOUNCE register from the beginning of the component. */
0811 #define ALT_GPIO_DEBOUNCE_OFST        0x48
0812 /* The address of the ALT_GPIO_DEBOUNCE register. */
0813 #define ALT_GPIO_DEBOUNCE_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_DEBOUNCE_OFST))
0814 
0815 /*
0816  * Register : Clear Interrupt Register - gpio_porta_eoi
0817  * 
0818  * Port A Data Register interrupt handling.
0819  * 
0820  * Register Layout
0821  * 
0822  *  Bits    | Access | Reset | Description                 
0823  * :--------|:-------|:------|:-----------------------------
0824  *  [28:0]  | W      | 0x0   | Clears Edge Interrupts Field
0825  *  [31:29] | ???    | 0x0   | *UNDEFINED*                 
0826  * 
0827  */
0828 /*
0829  * Field : Clears Edge Interrupts Field - gpio_porta_eoi
0830  * 
0831  * Controls the clearing of edge type interrupts from the Port A Data Register.
0832  * 
0833  * Field Enumeration Values:
0834  * 
0835  *  Enum                                      | Value | Description       
0836  * :------------------------------------------|:------|:-------------------
0837  *  ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_E_NOCLR | 0x0   | No interrupt clear
0838  *  ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_E_CLR   | 0x1   | Clear interrupt   
0839  * 
0840  * Field Access Macros:
0841  * 
0842  */
0843 /*
0844  * Enumerated value for register field ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI
0845  * 
0846  * No interrupt clear
0847  */
0848 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_E_NOCLR   0x0
0849 /*
0850  * Enumerated value for register field ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI
0851  * 
0852  * Clear interrupt
0853  */
0854 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_E_CLR     0x1
0855 
0856 /* The Least Significant Bit (LSB) position of the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field. */
0857 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_LSB        0
0858 /* The Most Significant Bit (MSB) position of the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field. */
0859 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_MSB        28
0860 /* The width in bits of the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field. */
0861 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_WIDTH      29
0862 /* The mask used to set the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field value. */
0863 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_SET_MSK    0x1fffffff
0864 /* The mask used to clear the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field value. */
0865 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_CLR_MSK    0xe0000000
0866 /* The reset value of the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field. */
0867 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_RESET      0x0
0868 /* Extracts the ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI field value from a register. */
0869 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_GET(value) (((value) & 0x1fffffff) >> 0)
0870 /* Produces a ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI register field value suitable for setting the register. */
0871 #define ALT_GPIO_PORTA_EOI_GPIO_PORTA_EOI_SET(value) (((value) << 0) & 0x1fffffff)
0872 
0873 #ifndef __ASSEMBLY__
0874 /*
0875  * WARNING: The C register and register group struct declarations are provided for
0876  * convenience and illustrative purposes. They should, however, be used with
0877  * caution as the C language standard provides no guarantees about the alignment or
0878  * atomicity of device memory accesses. The recommended practice for writing
0879  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0880  * alt_write_word() functions.
0881  * 
0882  * The struct declaration for register ALT_GPIO_PORTA_EOI.
0883  */
0884 struct ALT_GPIO_PORTA_EOI_s
0885 {
0886     uint32_t  gpio_porta_eoi : 29;  /* Clears Edge Interrupts Field */
0887     uint32_t                 :  3;  /* *UNDEFINED* */
0888 };
0889 
0890 /* The typedef declaration for register ALT_GPIO_PORTA_EOI. */
0891 typedef volatile struct ALT_GPIO_PORTA_EOI_s  ALT_GPIO_PORTA_EOI_t;
0892 #endif  /* __ASSEMBLY__ */
0893 
0894 /* The byte offset of the ALT_GPIO_PORTA_EOI register from the beginning of the component. */
0895 #define ALT_GPIO_PORTA_EOI_OFST        0x4c
0896 /* The address of the ALT_GPIO_PORTA_EOI register. */
0897 #define ALT_GPIO_PORTA_EOI_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_PORTA_EOI_OFST))
0898 
0899 /*
0900  * Register : External Port A Register - gpio_ext_porta
0901  * 
0902  * The external port register is used to input data to the metastability flops.
0903  * 
0904  * Register Layout
0905  * 
0906  *  Bits    | Access | Reset | Description        
0907  * :--------|:-------|:------|:--------------------
0908  *  [28:0]  | R      | 0x0   | External Port Field
0909  *  [31:29] | ???    | 0x0   | *UNDEFINED*        
0910  * 
0911  */
0912 /*
0913  * Field : External Port Field - gpio_ext_porta
0914  * 
0915  * When Port A Data Register is configured as Input, then reading this location
0916  * reads the values on the signals. When the data direction of Port A Data Register
0917  * is set as Output, reading this location reads Port A Data Register
0918  * 
0919  * Field Access Macros:
0920  * 
0921  */
0922 /* The Least Significant Bit (LSB) position of the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field. */
0923 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_LSB        0
0924 /* The Most Significant Bit (MSB) position of the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field. */
0925 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_MSB        28
0926 /* The width in bits of the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field. */
0927 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_WIDTH      29
0928 /* The mask used to set the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field value. */
0929 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_SET_MSK    0x1fffffff
0930 /* The mask used to clear the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field value. */
0931 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_CLR_MSK    0xe0000000
0932 /* The reset value of the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field. */
0933 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_RESET      0x0
0934 /* Extracts the ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA field value from a register. */
0935 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_GET(value) (((value) & 0x1fffffff) >> 0)
0936 /* Produces a ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA register field value suitable for setting the register. */
0937 #define ALT_GPIO_EXT_PORTA_GPIO_EXT_PORTA_SET(value) (((value) << 0) & 0x1fffffff)
0938 
0939 #ifndef __ASSEMBLY__
0940 /*
0941  * WARNING: The C register and register group struct declarations are provided for
0942  * convenience and illustrative purposes. They should, however, be used with
0943  * caution as the C language standard provides no guarantees about the alignment or
0944  * atomicity of device memory accesses. The recommended practice for writing
0945  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
0946  * alt_write_word() functions.
0947  * 
0948  * The struct declaration for register ALT_GPIO_EXT_PORTA.
0949  */
0950 struct ALT_GPIO_EXT_PORTA_s
0951 {
0952     const uint32_t  gpio_ext_porta : 29;  /* External Port Field */
0953     uint32_t                       :  3;  /* *UNDEFINED* */
0954 };
0955 
0956 /* The typedef declaration for register ALT_GPIO_EXT_PORTA. */
0957 typedef volatile struct ALT_GPIO_EXT_PORTA_s  ALT_GPIO_EXT_PORTA_t;
0958 #endif  /* __ASSEMBLY__ */
0959 
0960 /* The byte offset of the ALT_GPIO_EXT_PORTA register from the beginning of the component. */
0961 #define ALT_GPIO_EXT_PORTA_OFST        0x50
0962 /* The address of the ALT_GPIO_EXT_PORTA register. */
0963 #define ALT_GPIO_EXT_PORTA_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_EXT_PORTA_OFST))
0964 
0965 /*
0966  * Register : Synchronization Level Register - gpio_ls_sync
0967  * 
0968  * The Synchronization level register is used to synchronize input with l4_mp_clk
0969  * 
0970  * Register Layout
0971  * 
0972  *  Bits   | Access | Reset | Description                
0973  * :-------|:-------|:------|:----------------------------
0974  *  [0]    | RW     | 0x0   | Synchronization Level Field
0975  *  [31:1] | ???    | 0x0   | *UNDEFINED*                
0976  * 
0977  */
0978 /*
0979  * Field : Synchronization Level Field - gpio_ls_sync
0980  * 
0981  * The level-sensitive interrupts is synchronized to l4_mp_clk.
0982  * 
0983  * Field Enumeration Values:
0984  * 
0985  *  Enum                                   | Value | Description                    
0986  * :---------------------------------------|:------|:--------------------------------
0987  *  ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_E_NOSYNC | 0x0   | No synchronization to l4_mp_clk
0988  *  ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_E_SYNC   | 0x1   | Synchronize to l4_mp_clk       
0989  * 
0990  * Field Access Macros:
0991  * 
0992  */
0993 /*
0994  * Enumerated value for register field ALT_GPIO_LS_SYNC_GPIO_LS_SYNC
0995  * 
0996  * No synchronization to l4_mp_clk
0997  */
0998 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_E_NOSYNC  0x0
0999 /*
1000  * Enumerated value for register field ALT_GPIO_LS_SYNC_GPIO_LS_SYNC
1001  * 
1002  * Synchronize to l4_mp_clk
1003  */
1004 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_E_SYNC    0x1
1005 
1006 /* The Least Significant Bit (LSB) position of the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field. */
1007 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_LSB        0
1008 /* The Most Significant Bit (MSB) position of the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field. */
1009 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_MSB        0
1010 /* The width in bits of the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field. */
1011 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_WIDTH      1
1012 /* The mask used to set the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field value. */
1013 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_SET_MSK    0x00000001
1014 /* The mask used to clear the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field value. */
1015 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_CLR_MSK    0xfffffffe
1016 /* The reset value of the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field. */
1017 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_RESET      0x0
1018 /* Extracts the ALT_GPIO_LS_SYNC_GPIO_LS_SYNC field value from a register. */
1019 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_GET(value) (((value) & 0x00000001) >> 0)
1020 /* Produces a ALT_GPIO_LS_SYNC_GPIO_LS_SYNC register field value suitable for setting the register. */
1021 #define ALT_GPIO_LS_SYNC_GPIO_LS_SYNC_SET(value) (((value) << 0) & 0x00000001)
1022 
1023 #ifndef __ASSEMBLY__
1024 /*
1025  * WARNING: The C register and register group struct declarations are provided for
1026  * convenience and illustrative purposes. They should, however, be used with
1027  * caution as the C language standard provides no guarantees about the alignment or
1028  * atomicity of device memory accesses. The recommended practice for writing
1029  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1030  * alt_write_word() functions.
1031  * 
1032  * The struct declaration for register ALT_GPIO_LS_SYNC.
1033  */
1034 struct ALT_GPIO_LS_SYNC_s
1035 {
1036     uint32_t  gpio_ls_sync :  1;  /* Synchronization Level Field */
1037     uint32_t               : 31;  /* *UNDEFINED* */
1038 };
1039 
1040 /* The typedef declaration for register ALT_GPIO_LS_SYNC. */
1041 typedef volatile struct ALT_GPIO_LS_SYNC_s  ALT_GPIO_LS_SYNC_t;
1042 #endif  /* __ASSEMBLY__ */
1043 
1044 /* The byte offset of the ALT_GPIO_LS_SYNC register from the beginning of the component. */
1045 #define ALT_GPIO_LS_SYNC_OFST        0x60
1046 /* The address of the ALT_GPIO_LS_SYNC register. */
1047 #define ALT_GPIO_LS_SYNC_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_LS_SYNC_OFST))
1048 
1049 /*
1050  * Register : ID Code Register - gpio_id_code
1051  * 
1052  * GPIO ID code.
1053  * 
1054  * Register Layout
1055  * 
1056  *  Bits   | Access | Reset | Description  
1057  * :-------|:-------|:------|:--------------
1058  *  [31:0] | R      | 0x0   | ID Code Field
1059  * 
1060  */
1061 /*
1062  * Field : ID Code Field - gpio_id_code
1063  * 
1064  * Chip identification
1065  * 
1066  * Field Access Macros:
1067  * 
1068  */
1069 /* The Least Significant Bit (LSB) position of the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field. */
1070 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_LSB        0
1071 /* The Most Significant Bit (MSB) position of the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field. */
1072 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_MSB        31
1073 /* The width in bits of the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field. */
1074 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_WIDTH      32
1075 /* The mask used to set the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field value. */
1076 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_SET_MSK    0xffffffff
1077 /* The mask used to clear the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field value. */
1078 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_CLR_MSK    0x00000000
1079 /* The reset value of the ALT_GPIO_ID_CODE_GPIO_ID_CODE register field. */
1080 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_RESET      0x0
1081 /* Extracts the ALT_GPIO_ID_CODE_GPIO_ID_CODE field value from a register. */
1082 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_GET(value) (((value) & 0xffffffff) >> 0)
1083 /* Produces a ALT_GPIO_ID_CODE_GPIO_ID_CODE register field value suitable for setting the register. */
1084 #define ALT_GPIO_ID_CODE_GPIO_ID_CODE_SET(value) (((value) << 0) & 0xffffffff)
1085 
1086 #ifndef __ASSEMBLY__
1087 /*
1088  * WARNING: The C register and register group struct declarations are provided for
1089  * convenience and illustrative purposes. They should, however, be used with
1090  * caution as the C language standard provides no guarantees about the alignment or
1091  * atomicity of device memory accesses. The recommended practice for writing
1092  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1093  * alt_write_word() functions.
1094  * 
1095  * The struct declaration for register ALT_GPIO_ID_CODE.
1096  */
1097 struct ALT_GPIO_ID_CODE_s
1098 {
1099     const uint32_t  gpio_id_code : 32;  /* ID Code Field */
1100 };
1101 
1102 /* The typedef declaration for register ALT_GPIO_ID_CODE. */
1103 typedef volatile struct ALT_GPIO_ID_CODE_s  ALT_GPIO_ID_CODE_t;
1104 #endif  /* __ASSEMBLY__ */
1105 
1106 /* The byte offset of the ALT_GPIO_ID_CODE register from the beginning of the component. */
1107 #define ALT_GPIO_ID_CODE_OFST        0x64
1108 /* The address of the ALT_GPIO_ID_CODE register. */
1109 #define ALT_GPIO_ID_CODE_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_ID_CODE_OFST))
1110 
1111 /*
1112  * Register : GPIO Version Register - gpio_ver_id_code
1113  * 
1114  * GPIO Component Version
1115  * 
1116  * Register Layout
1117  * 
1118  *  Bits   | Access | Reset      | Description                  
1119  * :-------|:-------|:-----------|:------------------------------
1120  *  [31:0] | R      | 0x3230382a | ASCII Component Version Field
1121  * 
1122  */
1123 /*
1124  * Field : ASCII Component Version Field - gpio_ver_id_code
1125  * 
1126  * ASCII value for each number in the version, followed by *. For example.
1127  * 32_30_31_2A represents the version 2.01
1128  * 
1129  * Field Access Macros:
1130  * 
1131  */
1132 /* The Least Significant Bit (LSB) position of the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field. */
1133 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_LSB        0
1134 /* The Most Significant Bit (MSB) position of the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field. */
1135 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_MSB        31
1136 /* The width in bits of the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field. */
1137 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_WIDTH      32
1138 /* The mask used to set the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field value. */
1139 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_SET_MSK    0xffffffff
1140 /* The mask used to clear the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field value. */
1141 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_CLR_MSK    0x00000000
1142 /* The reset value of the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field. */
1143 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_RESET      0x3230382a
1144 /* Extracts the ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE field value from a register. */
1145 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_GET(value) (((value) & 0xffffffff) >> 0)
1146 /* Produces a ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE register field value suitable for setting the register. */
1147 #define ALT_GPIO_VER_ID_CODE_GPIO_VER_ID_CODE_SET(value) (((value) << 0) & 0xffffffff)
1148 
1149 #ifndef __ASSEMBLY__
1150 /*
1151  * WARNING: The C register and register group struct declarations are provided for
1152  * convenience and illustrative purposes. They should, however, be used with
1153  * caution as the C language standard provides no guarantees about the alignment or
1154  * atomicity of device memory accesses. The recommended practice for writing
1155  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1156  * alt_write_word() functions.
1157  * 
1158  * The struct declaration for register ALT_GPIO_VER_ID_CODE.
1159  */
1160 struct ALT_GPIO_VER_ID_CODE_s
1161 {
1162     const uint32_t  gpio_ver_id_code : 32;  /* ASCII Component Version Field */
1163 };
1164 
1165 /* The typedef declaration for register ALT_GPIO_VER_ID_CODE. */
1166 typedef volatile struct ALT_GPIO_VER_ID_CODE_s  ALT_GPIO_VER_ID_CODE_t;
1167 #endif  /* __ASSEMBLY__ */
1168 
1169 /* The byte offset of the ALT_GPIO_VER_ID_CODE register from the beginning of the component. */
1170 #define ALT_GPIO_VER_ID_CODE_OFST        0x6c
1171 /* The address of the ALT_GPIO_VER_ID_CODE register. */
1172 #define ALT_GPIO_VER_ID_CODE_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_VER_ID_CODE_OFST))
1173 
1174 /*
1175  * Register : Configuration Register 2 - gpio_config_reg2
1176  * 
1177  * Specifies the bit width of port A.
1178  * 
1179  * Register Layout
1180  * 
1181  *  Bits    | Access | Reset | Description          
1182  * :--------|:-------|:------|:----------------------
1183  *  [4:0]   | R      | 0x1c  | Port A Width (less 1)
1184  *  [9:5]   | R      | 0x7   | Port B Width (less 1)
1185  *  [14:10] | R      | 0x7   | Port C Width (less 1)
1186  *  [19:15] | R      | 0x7   | Port D Width (less 1)
1187  *  [31:20] | ???    | 0x0   | *UNDEFINED*          
1188  * 
1189  */
1190 /*
1191  * Field : Port A Width (less 1) - encoded_id_pwidth_a
1192  * 
1193  * Specifies the width of GPIO Port A. The value 28 represents the 29-bit width
1194  * less one.
1195  * 
1196  * Field Enumeration Values:
1197  * 
1198  *  Enum                                                   | Value | Description              
1199  * :-------------------------------------------------------|:------|:--------------------------
1200  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_E_WIDTHLESSONE8BITS  | 0x7   | Width (less 1) of 8 bits 
1201  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_E_WIDTHLESSONE29BITS | 0x1c  | Width (less 1) of 29 bits
1202  * 
1203  * Field Access Macros:
1204  * 
1205  */
1206 /*
1207  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A
1208  * 
1209  * Width (less 1) of 8 bits
1210  */
1211 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_E_WIDTHLESSONE8BITS   0x7
1212 /*
1213  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A
1214  * 
1215  * Width (less 1) of 29 bits
1216  */
1217 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_E_WIDTHLESSONE29BITS  0x1c
1218 
1219 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field. */
1220 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_LSB        0
1221 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field. */
1222 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_MSB        4
1223 /* The width in bits of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field. */
1224 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_WIDTH      5
1225 /* The mask used to set the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field value. */
1226 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_SET_MSK    0x0000001f
1227 /* The mask used to clear the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field value. */
1228 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_CLR_MSK    0xffffffe0
1229 /* The reset value of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field. */
1230 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_RESET      0x1c
1231 /* Extracts the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A field value from a register. */
1232 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_GET(value) (((value) & 0x0000001f) >> 0)
1233 /* Produces a ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A register field value suitable for setting the register. */
1234 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_A_SET(value) (((value) << 0) & 0x0000001f)
1235 
1236 /*
1237  * Field : Port B Width (less 1) - encoded_id_pwidth_b
1238  * 
1239  * Specifies the width of GPIO Port B. Ignored because there is no Port B in the
1240  * GPIO.
1241  * 
1242  * Field Enumeration Values:
1243  * 
1244  *  Enum                                                   | Value | Description              
1245  * :-------------------------------------------------------|:------|:--------------------------
1246  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_E_WIDTHLESSONE8BITS  | 0x7   | Width (less 1) of 8 bits 
1247  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_E_WIDTHLESSONE29BITS | 0x1c  | Width (less 1) of 29 bits
1248  * 
1249  * Field Access Macros:
1250  * 
1251  */
1252 /*
1253  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B
1254  * 
1255  * Width (less 1) of 8 bits
1256  */
1257 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_E_WIDTHLESSONE8BITS   0x7
1258 /*
1259  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B
1260  * 
1261  * Width (less 1) of 29 bits
1262  */
1263 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_E_WIDTHLESSONE29BITS  0x1c
1264 
1265 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field. */
1266 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_LSB        5
1267 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field. */
1268 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_MSB        9
1269 /* The width in bits of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field. */
1270 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_WIDTH      5
1271 /* The mask used to set the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field value. */
1272 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_SET_MSK    0x000003e0
1273 /* The mask used to clear the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field value. */
1274 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_CLR_MSK    0xfffffc1f
1275 /* The reset value of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field. */
1276 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_RESET      0x7
1277 /* Extracts the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B field value from a register. */
1278 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_GET(value) (((value) & 0x000003e0) >> 5)
1279 /* Produces a ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B register field value suitable for setting the register. */
1280 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_B_SET(value) (((value) << 5) & 0x000003e0)
1281 
1282 /*
1283  * Field : Port C Width (less 1) - encoded_id_pwidth_c
1284  * 
1285  * Specifies the width of GPIO Port C. Ignored because there is no Port C in the
1286  * GPIO.
1287  * 
1288  * Field Enumeration Values:
1289  * 
1290  *  Enum                                                   | Value | Description              
1291  * :-------------------------------------------------------|:------|:--------------------------
1292  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_E_WIDTHLESSONE8BITS  | 0x7   | Width (less 1) of 8 bits 
1293  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_E_WIDTHLESSONE29BITS | 0x1c  | Width (less 1) of 29 bits
1294  * 
1295  * Field Access Macros:
1296  * 
1297  */
1298 /*
1299  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C
1300  * 
1301  * Width (less 1) of 8 bits
1302  */
1303 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_E_WIDTHLESSONE8BITS   0x7
1304 /*
1305  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C
1306  * 
1307  * Width (less 1) of 29 bits
1308  */
1309 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_E_WIDTHLESSONE29BITS  0x1c
1310 
1311 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field. */
1312 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_LSB        10
1313 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field. */
1314 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_MSB        14
1315 /* The width in bits of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field. */
1316 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_WIDTH      5
1317 /* The mask used to set the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field value. */
1318 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_SET_MSK    0x00007c00
1319 /* The mask used to clear the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field value. */
1320 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_CLR_MSK    0xffff83ff
1321 /* The reset value of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field. */
1322 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_RESET      0x7
1323 /* Extracts the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C field value from a register. */
1324 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_GET(value) (((value) & 0x00007c00) >> 10)
1325 /* Produces a ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C register field value suitable for setting the register. */
1326 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_C_SET(value) (((value) << 10) & 0x00007c00)
1327 
1328 /*
1329  * Field : Port D Width (less 1) - encoded_id_pwidth_d
1330  * 
1331  * Specifies the width of GPIO Port D. Ignored because there is no Port D in the
1332  * GPIO.
1333  * 
1334  * Field Enumeration Values:
1335  * 
1336  *  Enum                                                   | Value | Description              
1337  * :-------------------------------------------------------|:------|:--------------------------
1338  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_E_WIDTHLESSONE8BITS  | 0x7   | Width (less 1) of 8 bits 
1339  *  ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_E_WIDTHLESSONE29BITS | 0x1c  | Width (less 1) of 29 bits
1340  * 
1341  * Field Access Macros:
1342  * 
1343  */
1344 /*
1345  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D
1346  * 
1347  * Width (less 1) of 8 bits
1348  */
1349 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_E_WIDTHLESSONE8BITS   0x7
1350 /*
1351  * Enumerated value for register field ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D
1352  * 
1353  * Width (less 1) of 29 bits
1354  */
1355 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_E_WIDTHLESSONE29BITS  0x1c
1356 
1357 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field. */
1358 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_LSB        15
1359 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field. */
1360 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_MSB        19
1361 /* The width in bits of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field. */
1362 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_WIDTH      5
1363 /* The mask used to set the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field value. */
1364 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_SET_MSK    0x000f8000
1365 /* The mask used to clear the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field value. */
1366 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_CLR_MSK    0xfff07fff
1367 /* The reset value of the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field. */
1368 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_RESET      0x7
1369 /* Extracts the ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D field value from a register. */
1370 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_GET(value) (((value) & 0x000f8000) >> 15)
1371 /* Produces a ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D register field value suitable for setting the register. */
1372 #define ALT_GPIO_CFG_REG2_ENC_ID_PWIDTH_D_SET(value) (((value) << 15) & 0x000f8000)
1373 
1374 #ifndef __ASSEMBLY__
1375 /*
1376  * WARNING: The C register and register group struct declarations are provided for
1377  * convenience and illustrative purposes. They should, however, be used with
1378  * caution as the C language standard provides no guarantees about the alignment or
1379  * atomicity of device memory accesses. The recommended practice for writing
1380  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1381  * alt_write_word() functions.
1382  * 
1383  * The struct declaration for register ALT_GPIO_CFG_REG2.
1384  */
1385 struct ALT_GPIO_CFG_REG2_s
1386 {
1387     const uint32_t  encoded_id_pwidth_a :  5;  /* Port A Width (less 1) */
1388     const uint32_t  encoded_id_pwidth_b :  5;  /* Port B Width (less 1) */
1389     const uint32_t  encoded_id_pwidth_c :  5;  /* Port C Width (less 1) */
1390     const uint32_t  encoded_id_pwidth_d :  5;  /* Port D Width (less 1) */
1391     uint32_t                            : 12;  /* *UNDEFINED* */
1392 };
1393 
1394 /* The typedef declaration for register ALT_GPIO_CFG_REG2. */
1395 typedef volatile struct ALT_GPIO_CFG_REG2_s  ALT_GPIO_CFG_REG2_t;
1396 #endif  /* __ASSEMBLY__ */
1397 
1398 /* The byte offset of the ALT_GPIO_CFG_REG2 register from the beginning of the component. */
1399 #define ALT_GPIO_CFG_REG2_OFST        0x70
1400 /* The address of the ALT_GPIO_CFG_REG2 register. */
1401 #define ALT_GPIO_CFG_REG2_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_CFG_REG2_OFST))
1402 
1403 /*
1404  * Register : Configuration Register 1 - gpio_config_reg1
1405  * 
1406  * Reports settings of various GPIO configuration parameters
1407  * 
1408  * Register Layout
1409  * 
1410  *  Bits    | Access | Reset | Description                      
1411  * :--------|:-------|:------|:----------------------------------
1412  *  [1:0]   | R      | 0x2   | APB DATA WIDTH                   
1413  *  [3:2]   | R      | 0x0   | NUM PORTS                        
1414  *  [4]     | R      | 0x1   | PORT A SINGLE CTL                
1415  *  [5]     | R      | 0x1   | PORT B SINGLE CTL                
1416  *  [6]     | R      | 0x1   | PORT C SINGLE CTL                
1417  *  [7]     | R      | 0x1   | PORT D SINGLE CTL                
1418  *  [8]     | R      | 0x0   | HW PORTA                         
1419  *  [11:9]  | ???    | 0x0   | *UNDEFINED*                      
1420  *  [12]    | R      | 0x1   | Port A Interrupt Field           
1421  *  [13]    | R      | 0x1   | Debounce Field                   
1422  *  [14]    | R      | 0x1   | Encoded GPIO Parameters Available
1423  *  [15]    | R      | 0x1   | ID Field                         
1424  *  [20:16] | R      | 0x1f  | Encoded ID Width Field           
1425  *  [31:21] | ???    | 0x0   | *UNDEFINED*                      
1426  * 
1427  */
1428 /*
1429  * Field : APB DATA WIDTH - apb_data_width
1430  * 
1431  * Fixed to support an ABP data bus width of 32-bits.
1432  * 
1433  * Field Enumeration Values:
1434  * 
1435  *  Enum                                           | Value | Description             
1436  * :-----------------------------------------------|:------|:-------------------------
1437  *  ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_E_WIDTH32BITS | 0x2   | APB Data Width = 32-bits
1438  * 
1439  * Field Access Macros:
1440  * 
1441  */
1442 /*
1443  * Enumerated value for register field ALT_GPIO_CFG_REG1_APB_DATA_WIDTH
1444  * 
1445  * APB Data Width = 32-bits
1446  */
1447 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_E_WIDTH32BITS  0x2
1448 
1449 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field. */
1450 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_LSB        0
1451 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field. */
1452 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_MSB        1
1453 /* The width in bits of the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field. */
1454 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_WIDTH      2
1455 /* The mask used to set the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field value. */
1456 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_SET_MSK    0x00000003
1457 /* The mask used to clear the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field value. */
1458 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_CLR_MSK    0xfffffffc
1459 /* The reset value of the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field. */
1460 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_RESET      0x2
1461 /* Extracts the ALT_GPIO_CFG_REG1_APB_DATA_WIDTH field value from a register. */
1462 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_GET(value) (((value) & 0x00000003) >> 0)
1463 /* Produces a ALT_GPIO_CFG_REG1_APB_DATA_WIDTH register field value suitable for setting the register. */
1464 #define ALT_GPIO_CFG_REG1_APB_DATA_WIDTH_SET(value) (((value) << 0) & 0x00000003)
1465 
1466 /*
1467  * Field : NUM PORTS - num_ports
1468  * 
1469  * The value of this register is fixed at one port (Port A).
1470  * 
1471  * Field Enumeration Values:
1472  * 
1473  *  Enum                                   | Value | Description             
1474  * :---------------------------------------|:------|:-------------------------
1475  *  ALT_GPIO_CFG_REG1_NUM_PORTS_E_ONEPORTA | 0x0   | Number of GPIO Ports = 1
1476  * 
1477  * Field Access Macros:
1478  * 
1479  */
1480 /*
1481  * Enumerated value for register field ALT_GPIO_CFG_REG1_NUM_PORTS
1482  * 
1483  * Number of GPIO Ports = 1
1484  */
1485 #define ALT_GPIO_CFG_REG1_NUM_PORTS_E_ONEPORTA  0x0
1486 
1487 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_NUM_PORTS register field. */
1488 #define ALT_GPIO_CFG_REG1_NUM_PORTS_LSB        2
1489 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_NUM_PORTS register field. */
1490 #define ALT_GPIO_CFG_REG1_NUM_PORTS_MSB        3
1491 /* The width in bits of the ALT_GPIO_CFG_REG1_NUM_PORTS register field. */
1492 #define ALT_GPIO_CFG_REG1_NUM_PORTS_WIDTH      2
1493 /* The mask used to set the ALT_GPIO_CFG_REG1_NUM_PORTS register field value. */
1494 #define ALT_GPIO_CFG_REG1_NUM_PORTS_SET_MSK    0x0000000c
1495 /* The mask used to clear the ALT_GPIO_CFG_REG1_NUM_PORTS register field value. */
1496 #define ALT_GPIO_CFG_REG1_NUM_PORTS_CLR_MSK    0xfffffff3
1497 /* The reset value of the ALT_GPIO_CFG_REG1_NUM_PORTS register field. */
1498 #define ALT_GPIO_CFG_REG1_NUM_PORTS_RESET      0x0
1499 /* Extracts the ALT_GPIO_CFG_REG1_NUM_PORTS field value from a register. */
1500 #define ALT_GPIO_CFG_REG1_NUM_PORTS_GET(value) (((value) & 0x0000000c) >> 2)
1501 /* Produces a ALT_GPIO_CFG_REG1_NUM_PORTS register field value suitable for setting the register. */
1502 #define ALT_GPIO_CFG_REG1_NUM_PORTS_SET(value) (((value) << 2) & 0x0000000c)
1503 
1504 /*
1505  * Field : PORT A SINGLE CTL - porta_single_ctl
1506  * 
1507  * Indicates the mode of operation of Port A to be software controlled only.
1508  * 
1509  * Field Enumeration Values:
1510  * 
1511  *  Enum                                             | Value | Description                             
1512  * :-------------------------------------------------|:------|:-----------------------------------------
1513  *  ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_E_SOFTCTLONLY | 0x1   | Software Enabled Individual Port Control
1514  * 
1515  * Field Access Macros:
1516  * 
1517  */
1518 /*
1519  * Enumerated value for register field ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL
1520  * 
1521  * Software Enabled Individual Port Control
1522  */
1523 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_E_SOFTCTLONLY    0x1
1524 
1525 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field. */
1526 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_LSB        4
1527 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field. */
1528 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_MSB        4
1529 /* The width in bits of the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field. */
1530 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_WIDTH      1
1531 /* The mask used to set the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field value. */
1532 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_SET_MSK    0x00000010
1533 /* The mask used to clear the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field value. */
1534 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_CLR_MSK    0xffffffef
1535 /* The reset value of the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field. */
1536 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_RESET      0x1
1537 /* Extracts the ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL field value from a register. */
1538 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_GET(value) (((value) & 0x00000010) >> 4)
1539 /* Produces a ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL register field value suitable for setting the register. */
1540 #define ALT_GPIO_CFG_REG1_PORTA_SINGLE_CTL_SET(value) (((value) << 4) & 0x00000010)
1541 
1542 /*
1543  * Field : PORT B SINGLE CTL - portb_single_ctl
1544  * 
1545  * Indicates the mode of operation of Port B to be software controlled only.
1546  * Ignored because there is no Port B in the GPIO.
1547  * 
1548  * Field Enumeration Values:
1549  * 
1550  *  Enum                                             | Value | Description                             
1551  * :-------------------------------------------------|:------|:-----------------------------------------
1552  *  ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_E_SOFTCTLONLY | 0x1   | Software Enabled Individual Port Control
1553  * 
1554  * Field Access Macros:
1555  * 
1556  */
1557 /*
1558  * Enumerated value for register field ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL
1559  * 
1560  * Software Enabled Individual Port Control
1561  */
1562 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_E_SOFTCTLONLY    0x1
1563 
1564 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field. */
1565 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_LSB        5
1566 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field. */
1567 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_MSB        5
1568 /* The width in bits of the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field. */
1569 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_WIDTH      1
1570 /* The mask used to set the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field value. */
1571 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_SET_MSK    0x00000020
1572 /* The mask used to clear the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field value. */
1573 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_CLR_MSK    0xffffffdf
1574 /* The reset value of the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field. */
1575 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_RESET      0x1
1576 /* Extracts the ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL field value from a register. */
1577 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_GET(value) (((value) & 0x00000020) >> 5)
1578 /* Produces a ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL register field value suitable for setting the register. */
1579 #define ALT_GPIO_CFG_REG1_PORTB_SINGLE_CTL_SET(value) (((value) << 5) & 0x00000020)
1580 
1581 /*
1582  * Field : PORT C SINGLE CTL - portc_single_ctl
1583  * 
1584  * Indicates the mode of operation of Port C to be software controlled only.
1585  * Ignored because there is no Port C in the GPIO.
1586  * 
1587  * Field Enumeration Values:
1588  * 
1589  *  Enum                                             | Value | Description                             
1590  * :-------------------------------------------------|:------|:-----------------------------------------
1591  *  ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_E_SOFTCTLONLY | 0x1   | Software Enabled Individual Port Control
1592  * 
1593  * Field Access Macros:
1594  * 
1595  */
1596 /*
1597  * Enumerated value for register field ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL
1598  * 
1599  * Software Enabled Individual Port Control
1600  */
1601 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_E_SOFTCTLONLY    0x1
1602 
1603 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field. */
1604 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_LSB        6
1605 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field. */
1606 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_MSB        6
1607 /* The width in bits of the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field. */
1608 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_WIDTH      1
1609 /* The mask used to set the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field value. */
1610 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_SET_MSK    0x00000040
1611 /* The mask used to clear the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field value. */
1612 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_CLR_MSK    0xffffffbf
1613 /* The reset value of the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field. */
1614 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_RESET      0x1
1615 /* Extracts the ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL field value from a register. */
1616 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_GET(value) (((value) & 0x00000040) >> 6)
1617 /* Produces a ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL register field value suitable for setting the register. */
1618 #define ALT_GPIO_CFG_REG1_PORTC_SINGLE_CTL_SET(value) (((value) << 6) & 0x00000040)
1619 
1620 /*
1621  * Field : PORT D SINGLE CTL - portd_single_ctl
1622  * 
1623  * Indicates the mode of operation of Port D to be software controlled only.
1624  * Ignored because there is no Port D in the GPIO.
1625  * 
1626  * Field Enumeration Values:
1627  * 
1628  *  Enum                                             | Value | Description                             
1629  * :-------------------------------------------------|:------|:-----------------------------------------
1630  *  ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_E_SOFTCTLONLY | 0x1   | Software Enabled Individual Port Control
1631  * 
1632  * Field Access Macros:
1633  * 
1634  */
1635 /*
1636  * Enumerated value for register field ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL
1637  * 
1638  * Software Enabled Individual Port Control
1639  */
1640 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_E_SOFTCTLONLY    0x1
1641 
1642 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field. */
1643 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_LSB        7
1644 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field. */
1645 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_MSB        7
1646 /* The width in bits of the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field. */
1647 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_WIDTH      1
1648 /* The mask used to set the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field value. */
1649 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_SET_MSK    0x00000080
1650 /* The mask used to clear the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field value. */
1651 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_CLR_MSK    0xffffff7f
1652 /* The reset value of the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field. */
1653 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_RESET      0x1
1654 /* Extracts the ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL field value from a register. */
1655 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_GET(value) (((value) & 0x00000080) >> 7)
1656 /* Produces a ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL register field value suitable for setting the register. */
1657 #define ALT_GPIO_CFG_REG1_PORTD_SINGLE_CTL_SET(value) (((value) << 7) & 0x00000080)
1658 
1659 /*
1660  * Field : HW PORTA - hw_porta
1661  * 
1662  * The value is fixed to enable Port A configuration to be controlled by software
1663  * only.
1664  * 
1665  * Field Enumeration Values:
1666  * 
1667  *  Enum                                     | Value | Description                           
1668  * :-----------------------------------------|:------|:---------------------------------------
1669  *  ALT_GPIO_CFG_REG1_HW_PORTA_E_PORTANOHARD | 0x0   | Software Configuration Control Enabled
1670  * 
1671  * Field Access Macros:
1672  * 
1673  */
1674 /*
1675  * Enumerated value for register field ALT_GPIO_CFG_REG1_HW_PORTA
1676  * 
1677  * Software Configuration Control Enabled
1678  */
1679 #define ALT_GPIO_CFG_REG1_HW_PORTA_E_PORTANOHARD    0x0
1680 
1681 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_HW_PORTA register field. */
1682 #define ALT_GPIO_CFG_REG1_HW_PORTA_LSB        8
1683 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_HW_PORTA register field. */
1684 #define ALT_GPIO_CFG_REG1_HW_PORTA_MSB        8
1685 /* The width in bits of the ALT_GPIO_CFG_REG1_HW_PORTA register field. */
1686 #define ALT_GPIO_CFG_REG1_HW_PORTA_WIDTH      1
1687 /* The mask used to set the ALT_GPIO_CFG_REG1_HW_PORTA register field value. */
1688 #define ALT_GPIO_CFG_REG1_HW_PORTA_SET_MSK    0x00000100
1689 /* The mask used to clear the ALT_GPIO_CFG_REG1_HW_PORTA register field value. */
1690 #define ALT_GPIO_CFG_REG1_HW_PORTA_CLR_MSK    0xfffffeff
1691 /* The reset value of the ALT_GPIO_CFG_REG1_HW_PORTA register field. */
1692 #define ALT_GPIO_CFG_REG1_HW_PORTA_RESET      0x0
1693 /* Extracts the ALT_GPIO_CFG_REG1_HW_PORTA field value from a register. */
1694 #define ALT_GPIO_CFG_REG1_HW_PORTA_GET(value) (((value) & 0x00000100) >> 8)
1695 /* Produces a ALT_GPIO_CFG_REG1_HW_PORTA register field value suitable for setting the register. */
1696 #define ALT_GPIO_CFG_REG1_HW_PORTA_SET(value) (((value) << 8) & 0x00000100)
1697 
1698 /*
1699  * Field : Port A Interrupt Field - porta_intr
1700  * 
1701  * The value of this field is fixed to allow interrupts on Port A.
1702  * 
1703  * Field Enumeration Values:
1704  * 
1705  *  Enum                                       | Value | Description              
1706  * :-------------------------------------------|:------|:--------------------------
1707  *  ALT_GPIO_CFG_REG1_PORTA_INTR_E_PORTAINTERR | 0x1   | Port A Interrupts Enabled
1708  * 
1709  * Field Access Macros:
1710  * 
1711  */
1712 /*
1713  * Enumerated value for register field ALT_GPIO_CFG_REG1_PORTA_INTR
1714  * 
1715  * Port A Interrupts Enabled
1716  */
1717 #define ALT_GPIO_CFG_REG1_PORTA_INTR_E_PORTAINTERR  0x1
1718 
1719 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_PORTA_INTR register field. */
1720 #define ALT_GPIO_CFG_REG1_PORTA_INTR_LSB        12
1721 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_PORTA_INTR register field. */
1722 #define ALT_GPIO_CFG_REG1_PORTA_INTR_MSB        12
1723 /* The width in bits of the ALT_GPIO_CFG_REG1_PORTA_INTR register field. */
1724 #define ALT_GPIO_CFG_REG1_PORTA_INTR_WIDTH      1
1725 /* The mask used to set the ALT_GPIO_CFG_REG1_PORTA_INTR register field value. */
1726 #define ALT_GPIO_CFG_REG1_PORTA_INTR_SET_MSK    0x00001000
1727 /* The mask used to clear the ALT_GPIO_CFG_REG1_PORTA_INTR register field value. */
1728 #define ALT_GPIO_CFG_REG1_PORTA_INTR_CLR_MSK    0xffffefff
1729 /* The reset value of the ALT_GPIO_CFG_REG1_PORTA_INTR register field. */
1730 #define ALT_GPIO_CFG_REG1_PORTA_INTR_RESET      0x1
1731 /* Extracts the ALT_GPIO_CFG_REG1_PORTA_INTR field value from a register. */
1732 #define ALT_GPIO_CFG_REG1_PORTA_INTR_GET(value) (((value) & 0x00001000) >> 12)
1733 /* Produces a ALT_GPIO_CFG_REG1_PORTA_INTR register field value suitable for setting the register. */
1734 #define ALT_GPIO_CFG_REG1_PORTA_INTR_SET(value) (((value) << 12) & 0x00001000)
1735 
1736 /*
1737  * Field : Debounce Field - debounce
1738  * 
1739  * The value of this field is fixed to allow debouncing of the Port A signals.
1740  * 
1741  * Field Enumeration Values:
1742  * 
1743  *  Enum                                   | Value | Description        
1744  * :---------------------------------------|:------|:--------------------
1745  *  ALT_GPIO_CFG_REG1_DEBOUNCE_E_DEBOUNCEA | 0x1   | Debounce is Enabled
1746  * 
1747  * Field Access Macros:
1748  * 
1749  */
1750 /*
1751  * Enumerated value for register field ALT_GPIO_CFG_REG1_DEBOUNCE
1752  * 
1753  * Debounce is Enabled
1754  */
1755 #define ALT_GPIO_CFG_REG1_DEBOUNCE_E_DEBOUNCEA  0x1
1756 
1757 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_DEBOUNCE register field. */
1758 #define ALT_GPIO_CFG_REG1_DEBOUNCE_LSB        13
1759 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_DEBOUNCE register field. */
1760 #define ALT_GPIO_CFG_REG1_DEBOUNCE_MSB        13
1761 /* The width in bits of the ALT_GPIO_CFG_REG1_DEBOUNCE register field. */
1762 #define ALT_GPIO_CFG_REG1_DEBOUNCE_WIDTH      1
1763 /* The mask used to set the ALT_GPIO_CFG_REG1_DEBOUNCE register field value. */
1764 #define ALT_GPIO_CFG_REG1_DEBOUNCE_SET_MSK    0x00002000
1765 /* The mask used to clear the ALT_GPIO_CFG_REG1_DEBOUNCE register field value. */
1766 #define ALT_GPIO_CFG_REG1_DEBOUNCE_CLR_MSK    0xffffdfff
1767 /* The reset value of the ALT_GPIO_CFG_REG1_DEBOUNCE register field. */
1768 #define ALT_GPIO_CFG_REG1_DEBOUNCE_RESET      0x1
1769 /* Extracts the ALT_GPIO_CFG_REG1_DEBOUNCE field value from a register. */
1770 #define ALT_GPIO_CFG_REG1_DEBOUNCE_GET(value) (((value) & 0x00002000) >> 13)
1771 /* Produces a ALT_GPIO_CFG_REG1_DEBOUNCE register field value suitable for setting the register. */
1772 #define ALT_GPIO_CFG_REG1_DEBOUNCE_SET(value) (((value) << 13) & 0x00002000)
1773 
1774 /*
1775  * Field : Encoded GPIO Parameters Available - add_encoded_params
1776  * 
1777  * Fixed to allow the indentification of the Designware IP component.
1778  * 
1779  * Field Enumeration Values:
1780  * 
1781  *  Enum                                            | Value | Description              
1782  * :------------------------------------------------|:------|:--------------------------
1783  *  ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_E_ADDENCPARAMS | 0x1   | Enable IP indentification
1784  * 
1785  * Field Access Macros:
1786  * 
1787  */
1788 /*
1789  * Enumerated value for register field ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS
1790  * 
1791  * Enable IP indentification
1792  */
1793 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_E_ADDENCPARAMS 0x1
1794 
1795 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field. */
1796 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_LSB        14
1797 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field. */
1798 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_MSB        14
1799 /* The width in bits of the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field. */
1800 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_WIDTH      1
1801 /* The mask used to set the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field value. */
1802 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_SET_MSK    0x00004000
1803 /* The mask used to clear the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field value. */
1804 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_CLR_MSK    0xffffbfff
1805 /* The reset value of the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field. */
1806 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_RESET      0x1
1807 /* Extracts the ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS field value from a register. */
1808 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_GET(value) (((value) & 0x00004000) >> 14)
1809 /* Produces a ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS register field value suitable for setting the register. */
1810 #define ALT_GPIO_CFG_REG1_ADD_ENC_PARAMS_SET(value) (((value) << 14) & 0x00004000)
1811 
1812 /*
1813  * Field : ID Field - gpio_id
1814  * 
1815  * Provides an ID code value
1816  * 
1817  * Field Enumeration Values:
1818  * 
1819  *  Enum                               | Value | Description 
1820  * :-----------------------------------|:------|:-------------
1821  *  ALT_GPIO_CFG_REG1_GPIO_ID_E_IDCODE | 0x1   | GPIO ID Code
1822  * 
1823  * Field Access Macros:
1824  * 
1825  */
1826 /*
1827  * Enumerated value for register field ALT_GPIO_CFG_REG1_GPIO_ID
1828  * 
1829  * GPIO ID Code
1830  */
1831 #define ALT_GPIO_CFG_REG1_GPIO_ID_E_IDCODE  0x1
1832 
1833 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_GPIO_ID register field. */
1834 #define ALT_GPIO_CFG_REG1_GPIO_ID_LSB        15
1835 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_GPIO_ID register field. */
1836 #define ALT_GPIO_CFG_REG1_GPIO_ID_MSB        15
1837 /* The width in bits of the ALT_GPIO_CFG_REG1_GPIO_ID register field. */
1838 #define ALT_GPIO_CFG_REG1_GPIO_ID_WIDTH      1
1839 /* The mask used to set the ALT_GPIO_CFG_REG1_GPIO_ID register field value. */
1840 #define ALT_GPIO_CFG_REG1_GPIO_ID_SET_MSK    0x00008000
1841 /* The mask used to clear the ALT_GPIO_CFG_REG1_GPIO_ID register field value. */
1842 #define ALT_GPIO_CFG_REG1_GPIO_ID_CLR_MSK    0xffff7fff
1843 /* The reset value of the ALT_GPIO_CFG_REG1_GPIO_ID register field. */
1844 #define ALT_GPIO_CFG_REG1_GPIO_ID_RESET      0x1
1845 /* Extracts the ALT_GPIO_CFG_REG1_GPIO_ID field value from a register. */
1846 #define ALT_GPIO_CFG_REG1_GPIO_ID_GET(value) (((value) & 0x00008000) >> 15)
1847 /* Produces a ALT_GPIO_CFG_REG1_GPIO_ID register field value suitable for setting the register. */
1848 #define ALT_GPIO_CFG_REG1_GPIO_ID_SET(value) (((value) << 15) & 0x00008000)
1849 
1850 /*
1851  * Field : Encoded ID Width Field - encoded_id_width
1852  * 
1853  * This value is fixed at 32 bits.
1854  * 
1855  * Field Enumeration Values:
1856  * 
1857  *  Enum                                        | Value | Description      
1858  * :--------------------------------------------|:------|:------------------
1859  *  ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_E_ENCIDWIDTH | 0x1f  | Width of ID Field
1860  * 
1861  * Field Access Macros:
1862  * 
1863  */
1864 /*
1865  * Enumerated value for register field ALT_GPIO_CFG_REG1_ENC_ID_WIDTH
1866  * 
1867  * Width of ID Field
1868  */
1869 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_E_ENCIDWIDTH 0x1f
1870 
1871 /* The Least Significant Bit (LSB) position of the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field. */
1872 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_LSB        16
1873 /* The Most Significant Bit (MSB) position of the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field. */
1874 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_MSB        20
1875 /* The width in bits of the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field. */
1876 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_WIDTH      5
1877 /* The mask used to set the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field value. */
1878 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_SET_MSK    0x001f0000
1879 /* The mask used to clear the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field value. */
1880 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_CLR_MSK    0xffe0ffff
1881 /* The reset value of the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field. */
1882 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_RESET      0x1f
1883 /* Extracts the ALT_GPIO_CFG_REG1_ENC_ID_WIDTH field value from a register. */
1884 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_GET(value) (((value) & 0x001f0000) >> 16)
1885 /* Produces a ALT_GPIO_CFG_REG1_ENC_ID_WIDTH register field value suitable for setting the register. */
1886 #define ALT_GPIO_CFG_REG1_ENC_ID_WIDTH_SET(value) (((value) << 16) & 0x001f0000)
1887 
1888 #ifndef __ASSEMBLY__
1889 /*
1890  * WARNING: The C register and register group struct declarations are provided for
1891  * convenience and illustrative purposes. They should, however, be used with
1892  * caution as the C language standard provides no guarantees about the alignment or
1893  * atomicity of device memory accesses. The recommended practice for writing
1894  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1895  * alt_write_word() functions.
1896  * 
1897  * The struct declaration for register ALT_GPIO_CFG_REG1.
1898  */
1899 struct ALT_GPIO_CFG_REG1_s
1900 {
1901     const uint32_t  apb_data_width     :  2;  /* APB DATA WIDTH */
1902     const uint32_t  num_ports          :  2;  /* NUM PORTS */
1903     const uint32_t  porta_single_ctl   :  1;  /* PORT A SINGLE CTL */
1904     const uint32_t  portb_single_ctl   :  1;  /* PORT B SINGLE CTL */
1905     const uint32_t  portc_single_ctl   :  1;  /* PORT C SINGLE CTL */
1906     const uint32_t  portd_single_ctl   :  1;  /* PORT D SINGLE CTL */
1907     const uint32_t  hw_porta           :  1;  /* HW PORTA */
1908     uint32_t                           :  3;  /* *UNDEFINED* */
1909     const uint32_t  porta_intr         :  1;  /* Port A Interrupt Field */
1910     const uint32_t  debounce           :  1;  /* Debounce Field */
1911     const uint32_t  add_encoded_params :  1;  /* Encoded GPIO Parameters Available */
1912     const uint32_t  gpio_id            :  1;  /* ID Field */
1913     const uint32_t  encoded_id_width   :  5;  /* Encoded ID Width Field */
1914     uint32_t                           : 11;  /* *UNDEFINED* */
1915 };
1916 
1917 /* The typedef declaration for register ALT_GPIO_CFG_REG1. */
1918 typedef volatile struct ALT_GPIO_CFG_REG1_s  ALT_GPIO_CFG_REG1_t;
1919 #endif  /* __ASSEMBLY__ */
1920 
1921 /* The byte offset of the ALT_GPIO_CFG_REG1 register from the beginning of the component. */
1922 #define ALT_GPIO_CFG_REG1_OFST        0x74
1923 /* The address of the ALT_GPIO_CFG_REG1 register. */
1924 #define ALT_GPIO_CFG_REG1_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_GPIO_CFG_REG1_OFST))
1925 
1926 #ifndef __ASSEMBLY__
1927 /*
1928  * WARNING: The C register and register group struct declarations are provided for
1929  * convenience and illustrative purposes. They should, however, be used with
1930  * caution as the C language standard provides no guarantees about the alignment or
1931  * atomicity of device memory accesses. The recommended practice for writing
1932  * hardware drivers is to use the SoCAL access macros and alt_read_word() and
1933  * alt_write_word() functions.
1934  * 
1935  * The struct declaration for register group ALT_GPIO.
1936  */
1937 struct ALT_GPIO_s
1938 {
1939     volatile ALT_GPIO_SWPORTA_DR_t     gpio_swporta_dr;     /* ALT_GPIO_SWPORTA_DR */
1940     volatile ALT_GPIO_SWPORTA_DDR_t    gpio_swporta_ddr;    /* ALT_GPIO_SWPORTA_DDR */
1941     volatile uint32_t                  _pad_0x8_0x2f[10];   /* *UNDEFINED* */
1942     volatile ALT_GPIO_INTEN_t          gpio_inten;          /* ALT_GPIO_INTEN */
1943     volatile ALT_GPIO_INTMSK_t         gpio_intmask;        /* ALT_GPIO_INTMSK */
1944     volatile ALT_GPIO_INTTYPE_LEVEL_t  gpio_inttype_level;  /* ALT_GPIO_INTTYPE_LEVEL */
1945     volatile ALT_GPIO_INT_POL_t        gpio_int_polarity;   /* ALT_GPIO_INT_POL */
1946     volatile ALT_GPIO_INTSTAT_t        gpio_intstatus;      /* ALT_GPIO_INTSTAT */
1947     volatile ALT_GPIO_RAW_INTSTAT_t    gpio_raw_intstatus;  /* ALT_GPIO_RAW_INTSTAT */
1948     volatile ALT_GPIO_DEBOUNCE_t       gpio_debounce;       /* ALT_GPIO_DEBOUNCE */
1949     volatile ALT_GPIO_PORTA_EOI_t      gpio_porta_eoi;      /* ALT_GPIO_PORTA_EOI */
1950     volatile ALT_GPIO_EXT_PORTA_t      gpio_ext_porta;      /* ALT_GPIO_EXT_PORTA */
1951     volatile uint32_t                  _pad_0x54_0x5f[3];   /* *UNDEFINED* */
1952     volatile ALT_GPIO_LS_SYNC_t        gpio_ls_sync;        /* ALT_GPIO_LS_SYNC */
1953     volatile ALT_GPIO_ID_CODE_t        gpio_id_code;        /* ALT_GPIO_ID_CODE */
1954     volatile uint32_t                  _pad_0x68_0x6b;      /* *UNDEFINED* */
1955     volatile ALT_GPIO_VER_ID_CODE_t    gpio_ver_id_code;    /* ALT_GPIO_VER_ID_CODE */
1956     volatile ALT_GPIO_CFG_REG2_t       gpio_config_reg2;    /* ALT_GPIO_CFG_REG2 */
1957     volatile ALT_GPIO_CFG_REG1_t       gpio_config_reg1;    /* ALT_GPIO_CFG_REG1 */
1958     volatile uint32_t                  _pad_0x78_0x80[2];   /* *UNDEFINED* */
1959 };
1960 
1961 /* The typedef declaration for register group ALT_GPIO. */
1962 typedef volatile struct ALT_GPIO_s  ALT_GPIO_t;
1963 /* The struct declaration for the raw register contents of register group ALT_GPIO. */
1964 struct ALT_GPIO_raw_s
1965 {
1966     volatile uint32_t  gpio_swporta_dr;     /* ALT_GPIO_SWPORTA_DR */
1967     volatile uint32_t  gpio_swporta_ddr;    /* ALT_GPIO_SWPORTA_DDR */
1968     volatile uint32_t  _pad_0x8_0x2f[10];   /* *UNDEFINED* */
1969     volatile uint32_t  gpio_inten;          /* ALT_GPIO_INTEN */
1970     volatile uint32_t  gpio_intmask;        /* ALT_GPIO_INTMSK */
1971     volatile uint32_t  gpio_inttype_level;  /* ALT_GPIO_INTTYPE_LEVEL */
1972     volatile uint32_t  gpio_int_polarity;   /* ALT_GPIO_INT_POL */
1973     volatile uint32_t  gpio_intstatus;      /* ALT_GPIO_INTSTAT */
1974     volatile uint32_t  gpio_raw_intstatus;  /* ALT_GPIO_RAW_INTSTAT */
1975     volatile uint32_t  gpio_debounce;       /* ALT_GPIO_DEBOUNCE */
1976     volatile uint32_t  gpio_porta_eoi;      /* ALT_GPIO_PORTA_EOI */
1977     volatile uint32_t  gpio_ext_porta;      /* ALT_GPIO_EXT_PORTA */
1978     volatile uint32_t  _pad_0x54_0x5f[3];   /* *UNDEFINED* */
1979     volatile uint32_t  gpio_ls_sync;        /* ALT_GPIO_LS_SYNC */
1980     volatile uint32_t  gpio_id_code;        /* ALT_GPIO_ID_CODE */
1981     volatile uint32_t  _pad_0x68_0x6b;      /* *UNDEFINED* */
1982     volatile uint32_t  gpio_ver_id_code;    /* ALT_GPIO_VER_ID_CODE */
1983     volatile uint32_t  gpio_config_reg2;    /* ALT_GPIO_CFG_REG2 */
1984     volatile uint32_t  gpio_config_reg1;    /* ALT_GPIO_CFG_REG1 */
1985     volatile uint32_t  _pad_0x78_0x80[2];   /* *UNDEFINED* */
1986 };
1987 
1988 /* The typedef declaration for the raw register contents of register group ALT_GPIO. */
1989 typedef volatile struct ALT_GPIO_raw_s  ALT_GPIO_raw_t;
1990 #endif  /* __ASSEMBLY__ */
1991 
1992 
1993 #ifdef __cplusplus
1994 }
1995 #endif  /* __cplusplus */
1996 #endif  /* __ALTERA_ALT_GPIO_H__ */
1997