![]() |
|
|||
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
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |