1 /*
2  *  Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
3  *
4  *  Redistribution and use in source and binary forms, with or without
5  *  modification, are permitted provided that the following conditions
6  *  are met:
7  *
8  *    Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  *
11  *    Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the
14  *    distribution.
15  *
16  *    Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
33 
34 #ifndef __HW_GPIO_H__
35 #define __HW_GPIO_H__
36 
37 //*****************************************************************************
38 //
39 // The following are defines for the GPIO register offsets.
40 //
41 //*****************************************************************************
42 #define GPIO_O_GPIO_DATA        0x00000000  // 0x4000 5000 0x4000 6000 0x4000
43                                             // 7000 0x4002 4000 GPIO Data
44                                             // (GPIODATA)@@ offset 0x000 The
45                                             // GPIODATA register is the data
46                                             // register. In software control
47                                             // mode@@ values written in the
48                                             // GPIODATA register are transferred
49                                             // onto the GPIO port pins if the
50                                             // respective pins have been
51                                             // configured as outputs through the
52                                             // GPIO Direction (GPIODIR) register
53                                             // (see page 653). In order to write
54                                             // to GPIODATA@@ the corresponding
55                                             // bits in the mask@@ resulting from
56                                             // the address bus bits [9:2]@@ must
57                                             // be set. Otherwise@@ the bit
58                                             // values remain unchanged by the
59                                             // write. Similarly@@ the values
60                                             // read from this register are
61                                             // determined for each bit by the
62                                             // mask bit derived from the address
63                                             // used to access the data
64                                             // register@@ bits [9:2]. Bits that
65                                             // are set in the address mask cause
66                                             // the corresponding bits in
67                                             // GPIODATA to be read@@ and bits
68                                             // that are clear in the address
69                                             // mask cause the corresponding bits
70                                             // in GPIODATA to be read as 0@@
71                                             // regardless of their value. A read
72                                             // from GPIODATA returns the last
73                                             // bit value written if the
74                                             // respective pins are configured as
75                                             // outputs@@ or it returns the value
76                                             // on the corresponding input pin
77                                             // when these are configured as
78                                             // inputs. All bits are cleared by a
79                                             // reset.
80 #define GPIO_O_GPIO_DIR         0x00000400  // 0x4000 5400 0x4000 6400 0x4000
81                                             // 7400 0x4002 4400 GPIO Direction
82                                             // (GPIODIR)@@ offset 0x400 The
83                                             // GPIODIR register is the data
84                                             // direction register. Setting a bit
85                                             // in the GPIODIR register
86                                             // configures the corresponding pin
87                                             // to be an output@@ while clearing
88                                             // a bit configures the
89                                             // corresponding pin to be an input.
90                                             // All bits are cleared by a reset@@
91                                             // meaning all GPIO pins are inputs
92                                             // by default.
93 #define GPIO_O_GPIO_IS          0x00000404  // 0x4000 5404 0x4000 6404 0x4000
94                                             // 7404 0x4002 4404 GPIO Interrupt
95                                             // Sense (GPIOIS)@@ offset 0x404 The
96                                             // GPIOIS register is the interrupt
97                                             // sense register. Setting a bit in
98                                             // the GPIOIS register configures
99                                             // the corresponding pin to detect
100                                             // levels@@ while clearing a bit
101                                             // configures the corresponding pin
102                                             // to detect edges. All bits are
103                                             // cleared by a reset.
104 #define GPIO_O_GPIO_IBE         0x00000408  // 0x4000 5408 0x4000 6408 0x4000
105                                             // 7408 0x4002 4408 GPIO Interrupt
106                                             // Both Edges (GPIOIBE)@@ offset
107                                             // 0x408 The GPIOIBE register allows
108                                             // both edges to cause interrupts.
109                                             // When the corresponding bit in the
110                                             // GPIO Interrupt Sense (GPIOIS)
111                                             // register is set to detect edges@@
112                                             // setting a bit in the GPIOIBE
113                                             // register configures the
114                                             // corresponding pin to detect both
115                                             // rising and falling edges@@
116                                             // regardless of the corresponding
117                                             // bit in the GPIO Interrupt Event
118                                             // (GPIOIEV) register . Clearing a
119                                             // bit configures the pin to be
120                                             // controlled by the GPIOIEV
121                                             // register. All bits are cleared by
122                                             // a reset.
123 #define GPIO_O_GPIO_IEV         0x0000040C  // 0x4000 540C 0x4000 640C 0x4000
124                                             // 740C 0x4002 440C GPIO Interrupt
125                                             // Event (GPIOIEV)@@ offset 0x40C
126                                             // The GPIOIEV register is the
127                                             // interrupt event register. Setting
128                                             // a bit in the GPIOIEV register
129                                             // configures the corresponding pin
130                                             // to detect rising edges or high
131                                             // levels@@ depending on the
132                                             // corresponding bit value in the
133                                             // GPIO Interrupt Sense (GPIOIS)
134                                             // register . Clearing a bit
135                                             // configures the pin to detect
136                                             // falling edges or low levels@@
137                                             // depending on the corresponding
138                                             // bit value in the GPIOIS register.
139                                             // All bits are cleared by a reset.
140 #define GPIO_O_GPIO_IM          0x00000410  // 0x4000 5410 0x4000 6410 0x4000
141                                             // 7410 0x4002 4410 GPIO Interrupt
142                                             // Mask (GPIOIM)@@ offset 0x410 The
143                                             // GPIOIM register is the interrupt
144                                             // mask register. Setting a bit in
145                                             // the GPIOIM register allows
146                                             // interrupts that are generated by
147                                             // the corresponding pin to be sent
148                                             // to the interrupt controller on
149                                             // the combined interrupt signal.
150                                             // Clearing a bit prevents an
151                                             // interrupt on the corresponding
152                                             // pin from being sent to the
153                                             // interrupt controller. All bits
154                                             // are cleared by a reset.
155 #define GPIO_O_GPIO_RIS         0x00000414  // 0x4000 5414 0x4000 6414 0x4000
156                                             // 7414 0x4002 4414 GPIO Raw
157                                             // Interrupt Status (GPIORIS)@@
158                                             // offset 0x414 The GPIORIS register
159                                             // is the raw interrupt status
160                                             // register. A bit in this register
161                                             // is set when an interrupt
162                                             // condition occurs on the
163                                             // corresponding GPIO pin. If the
164                                             // corresponding bit in the GPIO
165                                             // Interrupt Mask (GPIOIM) register
166                                             // is set@@ the interrupt is sent to
167                                             // the interrupt controller. Bits
168                                             // read as zero indicate that
169                                             // corresponding input pins have not
170                                             // initiated an interrupt. A bit in
171                                             // this register can be cleared by
172                                             // writing a 1 to the corresponding
173                                             // bit in the GPIO Interrupt Clear
174                                             // (GPIOICR) register.
175 #define GPIO_O_GPIO_MIS         0x00000418  // 0x4000 5418 0x4000 6418 0x4000
176                                             // 7418 0x4002 4418 GPIO Masked
177                                             // Interrupt Status (GPIOMIS)@@
178                                             // offset 0x418 The GPIOMIS register
179                                             // is the masked interrupt status
180                                             // register. If a bit is set in this
181                                             // register@@ the corresponding
182                                             // interrupt has triggered an
183                                             // interrupt to the interrupt
184                                             // controller. If a bit is clear@@
185                                             // either no interrupt has been
186                                             // generated@@ or the interrupt is
187                                             // masked. If no port pin@@ other
188                                             // than the one that is being used
189                                             // as an ADC trigger@@ is being used
190                                             // to generate interrupts@@ the
191                                             // appropriate Interrupt Set Enable
192                                             // (ENn) register can disable the
193                                             // interrupts for the port@@ and the
194                                             // ADC interrupt can be used to read
195                                             // back the converted data.
196                                             // Otherwise@@ the port interrupt
197                                             // handler must ignore and clear
198                                             // interrupts on the port pin and
199                                             // wait for the ADC interrupt@@ or
200                                             // the ADC interrupt must be
201                                             // disabled in the EN0 register and
202                                             // the port interrupt handler must
203                                             // poll the ADC registers until the
204                                             // conversion is completed. If no
205                                             // port pin@@ other than the one
206                                             // that is being used as an ADC
207                                             // trigger@@ is being used to
208                                             // generate interrupts@@ the
209                                             // appropriate Interrupt Set Enable
210                                             // (ENn) register can disable the
211                                             // interrupts for the port@@ and the
212                                             // ADC interrupt can be used to read
213                                             // back the converted data.
214                                             // Otherwise@@ the port interrupt
215                                             // handler must ignore and clear
216                                             // interrupts on the port pin and
217                                             // wait for the ADC interrupt@@ or
218                                             // the ADC interrupt must be
219                                             // disabled in the EN0 register and
220                                             // the port interrupt handler must
221                                             // poll the ADC registers until the
222                                             // conversion is completed. Note
223                                             // that if the Port B GPIOADCCTL
224                                             // register is cleared@@ PB4 can
225                                             // still be used as an external
226                                             // trigger for the ADC. This is a
227                                             // legacy mode which allows code
228                                             // written for previous Stellaris
229                                             // devices to operate on this
230                                             // microcontroller. GPIOMIS is the
231                                             // state of the interrupt after
232                                             // masking.
233 #define GPIO_O_GPIO_ICR         0x0000041C  // 0x4000 541C 0x4000 641C 0x4000
234                                             // 741C 0x4002 441C GPIO Interrupt
235                                             // Clear (GPIOICR)@@ offset 0x41C
236                                             // The GPIOICR register is the
237                                             // interrupt clear register. Writing
238                                             // a 1 to a bit in this register
239                                             // clears the corresponding
240                                             // interrupt bit in the GPIORIS and
241                                             // GPIOMIS registers. Writing a 0
242                                             // has no effect.
243 #define GPIO_O_GPIO_AFSEL       0x00000420  // 0x4000 5420 0x4000 6420 0x4000
244                                             // 7420 0x4002 4420 GPIO Alternate
245                                             // Function Select (GPIOAFSEL)@@
246                                             // offset 0x420 The GPIOAFSEL
247                                             // register is the mode control
248                                             // select register. If a bit is
249                                             // clear@@ the pin is used as a GPIO
250                                             // and is controlled by the GPIO
251                                             // registers. Setting a bit in this
252                                             // register configures the
253                                             // corresponding GPIO line to be
254                                             // controlled by an associated
255                                             // peripheral. Several possible
256                                             // peripheral functions are
257                                             // multiplexed on each GPIO. The
258                                             // GPIO Port Control (GPIOPCTL)
259                                             // register is used to select one of
260                                             // the possible functions.
261 #define GPIO_O_GPIO_DR2R        0x00000500  // 0x4000 5500 0x4000 6500 0x4000
262                                             // 7500 0x4002 4500 GPIO 2-mA Drive
263                                             // Select (GPIODR2R)@@ offset 0x500
264                                             // The GPIODR2R register is the 2-mA
265                                             // drive control register. Each GPIO
266                                             // signal in the port can be
267                                             // individually configured without
268                                             // affecting the other pads. When
269                                             // setting the DRV2 bit for a GPIO
270                                             // signal@@ the corresponding DRV4
271                                             // bit in the GPIODR4R register and
272                                             // DRV8 bit in the GPIODR8R register
273                                             // are automatically cleared by
274                                             // hardware. By default@@ all GPIO
275                                             // pins have 2-mA drive.
276 #define GPIO_O_GPIO_DR4R        0x00000504  // 0x4000 5504 0x4000 6504 0x4000
277                                             // 7504 0x4002 4504 GPIO 4-mA Drive
278                                             // Select (GPIODR4R)@@ offset 0x504
279                                             // The GPIODR4R register is the 4-mA
280                                             // drive control register. Each GPIO
281                                             // signal in the port can be
282                                             // individually configured without
283                                             // affecting the other pads. When
284                                             // setting the DRV4 bit for a GPIO
285                                             // signal@@ the corresponding DRV2
286                                             // bit in the GPIODR2R register and
287                                             // DRV8 bit in the GPIODR8R register
288                                             // are automatically cleared by
289                                             // hardware.
290 #define GPIO_O_GPIO_DR8R        0x00000508  // 0x4000 5508 0x4000 6508 0x4000
291                                             // 7508 0x4002 4508 GPIO 8-mA Drive
292                                             // Select (GPIODR8R)@@ offset 0x508
293                                             // The GPIODR8R register is the 8-mA
294                                             // drive control register. Each GPIO
295                                             // signal in the port can be
296                                             // individually configured without
297                                             // affecting the other pads. When
298                                             // setting the DRV8 bit for a GPIO
299                                             // signal@@ the corresponding DRV2
300                                             // bit in the GPIODR2R register and
301                                             // DRV4 bit in the GPIODR4R register
302                                             // are automatically cleared by
303                                             // hardware. The 8-mA setting is
304                                             // also used for high-current
305                                             // operation. Note: There is no
306                                             // configuration difference between
307                                             // 8-mA and high-current operation.
308                                             // The additional current capacity
309                                             // results from a shift in the
310                                             // VOH/VOL levels.
311 #define GPIO_O_GPIO_ODR         0x0000050C  // 0x4000 550C 0x4000 650C 0x4000
312                                             // 750C 0x4002 450C GPIO Open Drain
313                                             // Select (GPIOODR)@@ offset 0x50C
314                                             // The GPIOODR register is the open
315                                             // drain control register. Setting a
316                                             // bit in this register enables the
317                                             // open-drain configuration of the
318                                             // corresponding GPIO pad. When
319                                             // open-drain mode is enabled@@ the
320                                             // corresponding bit should also be
321                                             // set in the GPIO Digital Input
322                                             // Enable (GPIODEN) register .
323                                             // Corresponding bits in the drive
324                                             // strength and slew rate control
325                                             // registers (GPIODR2R@@ GPIODR4R@@
326                                             // GPIODR8R@@ and GPIOSLR) can be
327                                             // set to achieve the desired rise
328                                             // and fall times. The GPIO acts as
329                                             // an open-drain input if the
330                                             // corresponding bit in the GPIODIR
331                                             // register is cleared. If open
332                                             // drain is selected while the GPIO
333                                             // is configured as an input@@ the
334                                             // GPIO will remain an input and the
335                                             // open-drain selection has no
336                                             // effect until the GPIO is changed
337                                             // to an output. When using the I2C
338                                             // module@@ in addition to
339                                             // configuring the pin to open
340                                             // drain@@ the GPIO Alternate
341                                             // Function Select (GPIOAFSEL)
342                                             // register bits for the I2C clock
343                                             // and data pins should be set
344 #define GPIO_O_GPIO_PUR         0x00000510  // 0x4000 5510 0x4000 6510 0x4000
345                                             // 7510 0x4002 4510 GPIO Pull-Up
346                                             // Select (GPIOPUR)@@ offset 0x510
347                                             // The GPIOPUR register is the
348                                             // pull-up control register. When a
349                                             // bit is set@@ a weak pull-up
350                                             // resistor on the corresponding
351                                             // GPIO signal is enabled. Setting a
352                                             // bit in GPIOPUR automatically
353                                             // clears the corresponding bit in
354                                             // the GPIO Pull-Down Select
355                                             // (GPIOPDR) register . Write access
356                                             // to this register is protected
357                                             // with the GPIOCR register. Bits in
358                                             // GPIOCR that are cleared prevent
359                                             // writes to the equivalent bit in
360                                             // this register.
361 #define GPIO_O_GPIO_PDR         0x00000514  // 0x4000 5514 0x4000 6514 0x4000
362                                             // 7514 0x4002 4514 GPIO Pull-Down
363                                             // Select (GPIOPDR)@@ offset 0x514
364                                             // The GPIOPDR register is the
365                                             // pull-down control register. When
366                                             // a bit is set@@ a weak pull-down
367                                             // resistor on the corresponding
368                                             // GPIO signal is enabled. Setting a
369                                             // bit in GPIOPDR automatically
370                                             // clears the corresponding bit in
371                                             // the GPIO Pull-Up Select (GPIOPUR)
372                                             // register
373 #define GPIO_O_GPIO_SLR         0x00000518  // 0x4000 5518 0x4000 6518 0x4000
374                                             // 7518 0x4002 4518 The GPIOSLR
375                                             // register is the slew rate control
376                                             // register. Slew rate control is
377                                             // only available when using the
378                                             // 8-mA drive strength option via
379                                             // the GPIO 8-mA Drive Select
380                                             // (GPIODR8R) register
381 #define GPIO_O_GPIO_DEN         0x0000051C  // 0x4000 551C 0x4000 651C 0x4000
382                                             // 751C 0x4002 451C GPIO Digital
383                                             // Enable (GPIODEN)@@ offset 0x51C
384                                             // Note: Pins configured as digital
385                                             // inputs are Schmitt-triggered. The
386                                             // GPIODEN register is the digital
387                                             // enable register. By default@@ all
388                                             // GPIO signals except those listed
389                                             // below are configured out of reset
390                                             // to be undriven (tristate). Their
391                                             // digital function is disabled;
392                                             // they do not drive a logic value
393                                             // on the pin and they do not allow
394                                             // the pin voltage into the GPIO
395                                             // receiver. To use the pin as a
396                                             // digital input or output (either
397                                             // GPIO or alternate function)@@ the
398                                             // corresponding GPIODEN bit must be
399                                             // set.
400 #define GPIO_O_GPIO_LOCK        0x00000520  // 0x4000 5520 0x4000 6520 0x4000
401                                             // 7520 0x4002 4520 GPIO Lock
402                                             // (GPIOLOCK)@@ offset 0x520 The
403                                             // GPIOLOCK register enables write
404                                             // access to the GPIOCR register .
405                                             // Writing 0x4C4F.434B to the
406                                             // GPIOLOCK register unlocks the
407                                             // GPIOCR register. Writing any
408                                             // other value to the GPIOLOCK
409                                             // register re-enables the locked
410                                             // state. Reading the GPIOLOCK
411                                             // register returns the lock status
412                                             // rather than the 32-bit value that
413                                             // was previously written.
414                                             // Therefore@@ when write accesses
415                                             // are disabled@@ or locked@@
416                                             // reading the GPIOLOCK register
417                                             // returns 0x0000.0001. When write
418                                             // accesses are enabled@@ or
419                                             // unlocked@@ reading the GPIOLOCK
420                                             // register returns 0x0000.0000.
421 #define GPIO_O_GPIO_CR          0x00000524  // 0x4000 5524 0x4000 6524 0x4000
422                                             // 7524 0x4002 4524 GPIO Commit
423                                             // (GPIOCR)@@ offset 0x524 The
424                                             // GPIOCR register is the commit
425                                             // register. The value of the GPIOCR
426                                             // register determines which bits of
427                                             // the GPIOAFSEL@@ GPIOPUR@@
428                                             // GPIOPDR@@ and GPIODEN registers
429                                             // are committed when a write to
430                                             // these registers is performed. If
431                                             // a bit in the GPIOCR register is
432                                             // cleared@@ the data being written
433                                             // to the corresponding bit in the
434                                             // GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
435                                             // or GPIODEN registers cannot be
436                                             // committed and retains its
437                                             // previous value. If a bit in the
438                                             // GPIOCR register is set@@ the data
439                                             // being written to the
440                                             // corresponding bit of the
441                                             // GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
442                                             // or GPIODEN registers is committed
443                                             // to the register and reflects the
444                                             // new value. The contents of the
445                                             // GPIOCR register can only be
446                                             // modified if the status in the
447                                             // GPIOLOCK register is unlocked.
448                                             // Writes to the GPIOCR register are
449                                             // ignored if the status in the
450                                             // GPIOLOCK register is locked.
451 #define GPIO_O_GPIO_AMSEL       0x00000528  // 0x4000 5528 0x4000 6528 0x4000
452                                             // 7528 0x4002 4528 The GPIOAMSEL
453                                             // register controls isolation
454                                             // circuits to the analog side of a
455                                             // unified I/O pad. Because the
456                                             // GPIOs may be driven by a 5-V
457                                             // source and affect analog
458                                             // operation@@ analog circuitry
459                                             // requires isolation from the pins
460                                             // when they are not used in their
461                                             // analog function. Each bit of this
462                                             // register controls the isolation
463                                             // circuitry for the corresponding
464                                             // GPIO signal.
465 #define GPIO_O_GPIO_PCTL        0x0000052C  // This register is not used in
466                                             // cc3xx. equivalant register exsist
467                                             // outside GPIO IP (refer
468                                             // PAD*_config register in the
469                                             // shared comn space) 0x4000 552C
470                                             // 0x4000 652C 0x4000 752C 0x4002
471                                             // 452C GPIO Port Control
472                                             // (GPIOPCTL)@@ offset 0x52C The
473                                             // GPIOPCTL register is used in
474                                             // conjunction with the GPIOAFSEL
475                                             // register and selects the specific
476                                             // peripheral signal for each GPIO
477                                             // pin when using the alternate
478                                             // function mode. Most bits in the
479                                             // GPIOAFSEL register are cleared on
480                                             // reset@@ therefore most GPIO pins
481                                             // are configured as GPIOs by
482                                             // default. When a bit is set in the
483                                             // GPIOAFSEL register@@ the
484                                             // corresponding GPIO signal is
485                                             // controlled by an associated
486                                             // peripheral. The GPIOPCTL register
487                                             // selects one out of a set of
488                                             // peripheral functions for each
489                                             // GPIO@@ providing additional
490                                             // flexibility in signal definition.
491 #define GPIO_O_GPIO_ADCCTL      0x00000530  // This register is not used in
492                                             // cc3xx. ADC trigger via GPIO is
493                                             // not supported. 0x4000 5530 0x4000
494                                             // 6530 0x4000 7530 0x4002 4530 GPIO
495                                             // ADC Control (GPIOADCCTL)@@ offset
496                                             // 0x530 This register is used to
497                                             // configure a GPIO pin as a source
498                                             // for the ADC trigger. Note that if
499                                             // the Port B GPIOADCCTL register is
500                                             // cleared@@ PB4 can still be used
501                                             // as an external trigger for the
502                                             // ADC. This is a legacy mode which
503                                             // allows code written for previous
504                                             // Stellaris devices to operate on
505                                             // this microcontroller.
506 #define GPIO_O_GPIO_DMACTL      0x00000534  // 0x4000 5534 0x4000 6534 0x4000
507                                             // 7534 0x4002 4534 GPIO DMA Control
508                                             // (GPIODMACTL)@@ offset 0x534 This
509                                             // register is used to configure a
510                                             // GPIO pin as a source for the ?DMA
511                                             // trigger.
512 #define GPIO_O_GPIO_SI          0x00000538  // 0x4000 5538 0x4000 6538 0x4000
513                                             // 7538 0x4002 4538 GPIO Select
514                                             // Interrupt (GPIOSI)@@ offset 0x538
515                                             // This register is used to enable
516                                             // individual interrupts for each
517                                             // pin. Note: This register is only
518                                             // available on Port P and Port Q.
519 #define GPIO_O_GPIO_PERIPHID4   0x00000FD0  // 0x4000 5FD0 0x4000 6FD0 0x4000
520                                             // 7FD0 0x4002 4FD0 GPIO Peripheral
521                                             // Identification 4
522                                             // (GPIOPeriphID4)@@ offset 0xFD0
523                                             // The GPIOPeriphID4@@
524                                             // GPIOPeriphID5@@ GPIOPeriphID6@@
525                                             // and GPIOPeriphID7 registers can
526                                             // conceptually be treated as one
527                                             // 32-bit register; each register
528                                             // contains eight bits of the 32-bit
529                                             // register@@ used by software to
530                                             // identify the peripheral.
531 #define GPIO_O_GPIO_PERIPHID5   0x00000FD4  // 0x4000 5FD4 0x4000 6FD4 0x4000
532                                             // 7FD4 0x4002 4FD4 GPIO Peripheral
533                                             // Identification 5
534                                             // (GPIOPeriphID5)@@ offset 0xFD4
535                                             // The GPIOPeriphID4@@
536                                             // GPIOPeriphID5@@ GPIOPeriphID6@@
537                                             // and GPIOPeriphID7 registers can
538                                             // conceptually be treated as one
539                                             // 32-bit register; each register
540                                             // contains eight bits of the 32-bit
541                                             // register@@ used by software to
542                                             // identify the peripheral.
543 #define GPIO_O_GPIO_PERIPHID6   0x00000FD8  // 0x4000 5FD8 0x4000 6FD8 0x4000
544                                             // 7FD8 0x4002 4FD8 GPIO Peripheral
545                                             // Identification 6
546                                             // (GPIOPeriphID6)@@ offset 0xFD8
547                                             // The GPIOPeriphID4@@
548                                             // GPIOPeriphID5@@ GPIOPeriphID6@@
549                                             // and GPIOPeriphID7 registers can
550                                             // conceptually be treated as one
551                                             // 32-bit register; each register
552                                             // contains eight bits of the 32-bit
553                                             // register@@ used by software to
554                                             // identify the peripheral.
555 #define GPIO_O_GPIO_PERIPHID7   0x00000FDC  // 0x4000 5FDC 0x4000 6FDC 0x4000
556                                             // 7FDC 0x4002 4FDC GPIO Peripheral
557                                             // Identification 7
558                                             // (GPIOPeriphID7)@@ offset 0xFDC
559                                             // The GPIOPeriphID4@@
560                                             // GPIOPeriphID5@@ GPIOPeriphID6@@
561                                             // and GPIOPeriphID7 registers can
562                                             // conceptually be treated as one
563                                             // 32-bit register; each register
564                                             // contains eight bits of the 32-bit
565                                             // register@@ used by software to
566                                             // identify the peripheral.
567 #define GPIO_O_GPIO_PERIPHID0   0x00000FE0  // 0x4000 5FE0 0x4000 6FE0 0x4000
568                                             // 7FE0 0x4002 4FE0 GPIO Peripheral
569                                             // Identification 0
570                                             // (GPIOPeriphID0)@@ offset 0xFE0
571                                             // The GPIOPeriphID0@@
572                                             // GPIOPeriphID1@@ GPIOPeriphID2@@
573                                             // and GPIOPeriphID3 registers can
574                                             // conceptually be treated as one
575                                             // 32-bit register; each register
576                                             // contains eight bits of the 32-bit
577                                             // register@@ used by software to
578                                             // identify the peripheral.
579 #define GPIO_O_GPIO_PERIPHID1   0x00000FE4  // 0x4000 5FE4 0x4000 6FE4 0x4000
580                                             // 7FE4 0x4002 4FE4 GPIO Peripheral
581                                             // Identification 1
582                                             // (GPIOPeriphID1)@@ offset 0xFE4
583                                             // The GPIOPeriphID0@@
584                                             // GPIOPeriphID1@@ GPIOPeriphID2@@
585                                             // and GPIOPeriphID3 registers can
586                                             // conceptually be treated as one
587                                             // 32-bit register; each register
588                                             // contains eight bits of the 32-bit
589                                             // register@@ used by software to
590                                             // identify the peripheral.
591 #define GPIO_O_GPIO_PERIPHID2   0x00000FE8  // 0x4000 5FE8 0x4000 6FE8 0x4000
592                                             // 7FE8 0x4002 4FE8 GPIO Peripheral
593                                             // Identification 2
594                                             // (GPIOPeriphID2)@@ offset 0xFE8
595                                             // The GPIOPeriphID0@@
596                                             // GPIOPeriphID1@@ GPIOPeriphID2@@
597                                             // and GPIOPeriphID3 registers can
598                                             // conceptually be treated as one
599                                             // 32-bit register; each register
600                                             // contains eight bits of the 32-bit
601                                             // register@@ used by software to
602                                             // identify the peripheral.
603 #define GPIO_O_GPIO_PERIPHID3   0x00000FEC  // 0x4000 5FEC 0x4000 6FEC 0x4000
604                                             // 7FEC 0x4002 4FEC GPIO Peripheral
605                                             // Identification 3
606                                             // (GPIOPeriphID3)@@ offset 0xFEC
607                                             // The GPIOPeriphID0@@
608                                             // GPIOPeriphID1@@ GPIOPeriphID2@@
609                                             // and GPIOPeriphID3 registers can
610                                             // conceptually be treated as one
611                                             // 32-bit register; each register
612                                             // contains eight bits of the 32-bit
613                                             // register@@ used by software to
614                                             // identify the peripheral.
615 #define GPIO_O_GPIO_PCELLID0    0x00000FF0  // 0x4000 5FF0 0x4000 6FF0 0x4000
616                                             // 7FF0 0x4002 4FF0 GPIO PrimeCell
617                                             // Identification 0 (GPIOPCellID0)@@
618                                             // offset 0xFF0 The GPIOPCellID0@@
619                                             // GPIOPCellID1@@ GPIOPCellID2@@ and
620                                             // GPIOPCellID3 registers are four
621                                             // 8-bit wide registers@@ that can
622                                             // conceptually be treated as one
623                                             // 32-bit register. The register is
624                                             // used as a standard
625                                             // cross-peripheral identification
626                                             // system.
627 #define GPIO_O_GPIO_PCELLID1    0x00000FF4  // 0x4000 5FF4 0x4000 6FF4 0x4000
628                                             // 7FF4 0x4002 4FF4 GPIO PrimeCell
629                                             // Identification 1 (GPIOPCellID1)@@
630                                             // offset 0xFF4 The GPIOPCellID0@@
631                                             // GPIOPCellID1@@ GPIOPCellID2@@ and
632                                             // GPIOPCellID3 registers are four
633                                             // 8-bit wide registers@@ that can
634                                             // conceptually be treated as one
635                                             // 32-bit register. The register is
636                                             // used as a standard
637                                             // cross-peripheral identification
638                                             // system.
639 #define GPIO_O_GPIO_PCELLID2    0x00000FF8  // 0x4000 5FF8 0x4000 6FF8 0x4000
640                                             // 7FF8 0x4002 4FF8 GPIO PrimeCell
641                                             // Identification 2 (GPIOPCellID2)@@
642                                             // offset 0xFF8 The GPIOPCellID0@@
643                                             // GPIOPCellID1@@ GPIOPCellID2@@ and
644                                             // GPIOPCellID3 registers are four
645                                             // 8-bit wide registers@@ that can
646                                             // conceptually be treated as one
647                                             // 32-bit register. The register is
648                                             // used as a standard
649                                             // cross-peripheral identification
650                                             // system.
651 #define GPIO_O_GPIO_PCELLID3    0x00000FFC  // 0x4000 5FFC 0x4000 6FFC 0x4000
652                                             // 7FFC 0x4002 4FFC GPIO PrimeCell
653                                             // Identification 3 (GPIOPCellID3)@@
654                                             // offset 0xFFC The GPIOPCellID0@@
655                                             // GPIOPCellID1@@ GPIOPCellID2@@ and
656                                             // GPIOPCellID3 registers are four
657                                             // 8-bit wide registers@@ that can
658                                             // conceptually be treated as one
659                                             // 32-bit register. The register is
660                                             // used as a standard
661                                             // cross-peripheral identification
662                                             // system.0xb1
663 
664 
665 
666 //******************************************************************************
667 //
668 // The following are defines for the bit fields in the GPIO_O_GPIO_DATA register.
669 //
670 //******************************************************************************
671 #define GPIO_GPIO_DATA_DATA_M   0x000000FF  // GPIO Data This register is
672                                             // virtually mapped to 256 locations
673                                             // in the address space. To
674                                             // facilitate the reading and
675                                             // writing of data to these
676                                             // registers by independent
677                                             // drivers@@ the data read from and
678                                             // written to the registers are
679                                             // masked by the eight address lines
680                                             // [9:2]. Reads from this register
681                                             // return its current state. Writes
682                                             // to this register only affect bits
683                                             // that are not masked by ADDR[9:2]
684                                             // and are configured as outputs.
685 #define GPIO_GPIO_DATA_DATA_S   0
686 //******************************************************************************
687 //
688 // The following are defines for the bit fields in the GPIO_O_GPIO_DIR register.
689 //
690 //******************************************************************************
691 #define GPIO_GPIO_DIR_DIR_M     0x000000FF  // GPIO Data Direction Value
692                                             // Description 0 Corresponding pin
693                                             // is an input. 1 Corresponding pins
694                                             // is an output.
695 #define GPIO_GPIO_DIR_DIR_S     0
696 //******************************************************************************
697 //
698 // The following are defines for the bit fields in the GPIO_O_GPIO_IS register.
699 //
700 //******************************************************************************
701 #define GPIO_GPIO_IS_IS_M       0x000000FF  // GPIO Interrupt Sense Value
702                                             // Description 0 The edge on the
703                                             // corresponding pin is detected
704                                             // (edge-sensitive). 1 The level on
705                                             // the corresponding pin is detected
706                                             // (level-sensitive).
707 #define GPIO_GPIO_IS_IS_S       0
708 //******************************************************************************
709 //
710 // The following are defines for the bit fields in the GPIO_O_GPIO_IBE register.
711 //
712 //******************************************************************************
713 #define GPIO_GPIO_IBE_IBE_M     0x000000FF  // GPIO Interrupt Both Edges Value
714                                             // Description 0 Interrupt
715                                             // generation is controlled by the
716                                             // GPIO Interrupt Event (GPIOIEV)
717                                             // register. 1 Both edges on the
718                                             // corresponding pin trigger an
719                                             // interrupt.
720 #define GPIO_GPIO_IBE_IBE_S     0
721 //******************************************************************************
722 //
723 // The following are defines for the bit fields in the GPIO_O_GPIO_IEV register.
724 //
725 //******************************************************************************
726 #define GPIO_GPIO_IEV_IEV_M     0x000000FF  // GPIO Interrupt Event Value
727                                             // Description 1 A falling edge or a
728                                             // Low level on the corresponding
729                                             // pin triggers an interrupt. 0 A
730                                             // rising edge or a High level on
731                                             // the corresponding pin triggers an
732                                             // interrupt.
733 #define GPIO_GPIO_IEV_IEV_S     0
734 //******************************************************************************
735 //
736 // The following are defines for the bit fields in the GPIO_O_GPIO_IM register.
737 //
738 //******************************************************************************
739 #define GPIO_GPIO_IM_IME_M      0x000000FF  // GPIO Interrupt Mask Enable Value
740                                             // Description 0 The interrupt from
741                                             // the corresponding pin is masked.
742                                             // 1 The interrupt from the
743                                             // corresponding pin is sent to the
744                                             // interrupt controller.
745 #define GPIO_GPIO_IM_IME_S      0
746 //******************************************************************************
747 //
748 // The following are defines for the bit fields in the GPIO_O_GPIO_RIS register.
749 //
750 //******************************************************************************
751 #define GPIO_GPIO_RIS_RIS_M     0x000000FF  // GPIO Interrupt Raw Status Value
752                                             // Description 1 An interrupt
753                                             // condition has occurred on the
754                                             // corresponding pin. 0 interrupt
755                                             // condition has not occurred on the
756                                             // corresponding pin. A bit is
757                                             // cleared by writing a 1 to the
758                                             // corresponding bit in the GPIOICR
759                                             // register.
760 #define GPIO_GPIO_RIS_RIS_S     0
761 //******************************************************************************
762 //
763 // The following are defines for the bit fields in the GPIO_O_GPIO_MIS register.
764 //
765 //******************************************************************************
766 #define GPIO_GPIO_MIS_MIS_M     0x000000FF  // GPIO Masked Interrupt Status
767                                             // Value Description 1 An interrupt
768                                             // condition on the corresponding
769                                             // pin has triggered an interrupt to
770                                             // the interrupt controller. 0 An
771                                             // interrupt condition on the
772                                             // corresponding pin is masked or
773                                             // has not occurred. A bit is
774                                             // cleared by writing a 1 to the
775                                             // corresponding bit in the GPIOICR
776                                             // register.
777 #define GPIO_GPIO_MIS_MIS_S     0
778 //******************************************************************************
779 //
780 // The following are defines for the bit fields in the GPIO_O_GPIO_ICR register.
781 //
782 //******************************************************************************
783 #define GPIO_GPIO_ICR_IC_M      0x000000FF  // GPIO Interrupt Clear Value
784                                             // Description 1 The corresponding
785                                             // interrupt is cleared. 0 The
786                                             // corresponding interrupt is
787                                             // unaffected.
788 #define GPIO_GPIO_ICR_IC_S      0
789 //******************************************************************************
790 //
791 // The following are defines for the bit fields in the GPIO_O_GPIO_AFSEL register.
792 //
793 //******************************************************************************
794 //******************************************************************************
795 //
796 // The following are defines for the bit fields in the GPIO_O_GPIO_DR2R register.
797 //
798 //******************************************************************************
799 #define GPIO_GPIO_DR2R_DRV2_M   0x000000FF  // This register is not used in
800                                             // cc3xx. equivalant register exsist
801                                             // outside GPIO IP (refer
802                                             // PAD*_config register in the
803                                             // shared comn space) Output Pad
804                                             // 2-mA Drive Enable Value
805                                             // Description 1 The corresponding
806                                             // GPIO pin has 2-mA drive. The
807                                             // drive for the corresponding GPIO
808                                             // pin is controlled by the GPIODR4R
809                                             // or GPIODR8R register. 0 Setting a
810                                             // bit in either the GPIODR4
811                                             // register or the GPIODR8 register
812                                             // clears the corresponding 2-mA
813                                             // enable bit. The change is
814                                             // effective on the second clock
815                                             // cycle after the write if
816                                             // accessing GPIO via the APB memory
817                                             // aperture. If using AHB access@@
818                                             // the change is effective on the
819                                             // next clock cycle.
820 #define GPIO_GPIO_DR2R_DRV2_S   0
821 //******************************************************************************
822 //
823 // The following are defines for the bit fields in the GPIO_O_GPIO_DR4R register.
824 //
825 //******************************************************************************
826 #define GPIO_GPIO_DR4R_DRV4_M   0x000000FF  // This register is not used in
827                                             // cc3xx. equivalant register exsist
828                                             // outside GPIO IP (refer
829                                             // PAD*_config register in the
830                                             // shared comn space) Output Pad
831                                             // 4-mA Drive Enable Value
832                                             // Description 1 The corresponding
833                                             // GPIO pin has 4-mA drive. The
834                                             // drive for the corresponding GPIO
835                                             // pin is controlled by the GPIODR2R
836                                             // or GPIODR8R register. 0 Setting a
837                                             // bit in either the GPIODR2
838                                             // register or the GPIODR8 register
839                                             // clears the corresponding 4-mA
840                                             // enable bit. The change is
841                                             // effective on the second clock
842                                             // cycle after the write if
843                                             // accessing GPIO via the APB memory
844                                             // aperture. If using AHB access@@
845                                             // the change is effective on the
846                                             // next clock cycle.
847 #define GPIO_GPIO_DR4R_DRV4_S   0
848 //******************************************************************************
849 //
850 // The following are defines for the bit fields in the GPIO_O_GPIO_DR8R register.
851 //
852 //******************************************************************************
853 #define GPIO_GPIO_DR8R_DRV8_M   0x000000FF  // This register is not used in
854                                             // cc3xx. equivalant register exsist
855                                             // outside GPIO IP (refer
856                                             // PAD*_config register in the
857                                             // shared comn space) Output Pad
858                                             // 8-mA Drive Enable Value
859                                             // Description 1 The corresponding
860                                             // GPIO pin has 8-mA drive. The
861                                             // drive for the corresponding GPIO
862                                             // pin is controlled by the GPIODR2R
863                                             // or GPIODR4R register. 0 Setting a
864                                             // bit in either the GPIODR2
865                                             // register or the GPIODR4 register
866                                             // clears the corresponding 8-mA
867                                             // enable bit. The change is
868                                             // effective on the second clock
869                                             // cycle after the write if
870                                             // accessing GPIO via the APB memory
871                                             // aperture. If using AHB access@@
872                                             // the change is effective on the
873                                             // next clock cycle.
874 #define GPIO_GPIO_DR8R_DRV8_S   0
875 //******************************************************************************
876 //
877 // The following are defines for the bit fields in the GPIO_O_GPIO_ODR register.
878 //
879 //******************************************************************************
880 #define GPIO_GPIO_ODR_ODE_M     0x000000FF  // This register is not used in
881                                             // cc3xx. equivalant register exsist
882                                             // outside GPIO IP (refer
883                                             // PAD*_config register in the
884                                             // shared comn space) Output Pad
885                                             // Open Drain Enable Value
886                                             // Description 1 The corresponding
887                                             // pin is configured as open drain.
888                                             // 0 The corresponding pin is not
889                                             // configured as open drain.
890 #define GPIO_GPIO_ODR_ODE_S     0
891 //******************************************************************************
892 //
893 // The following are defines for the bit fields in the GPIO_O_GPIO_PUR register.
894 //
895 //******************************************************************************
896 #define GPIO_GPIO_PUR_PUE_M     0x000000FF  // This register is not used in
897                                             // cc3xx. equivalant register exsist
898                                             // outside GPIO IP (refer
899                                             // PAD*_config register in the
900                                             // shared comn space) Pad Weak
901                                             // Pull-Up Enable Value Description
902                                             // 1 The corresponding pin has a
903                                             // weak pull-up resistor. 0 The
904                                             // corresponding pin is not
905                                             // affected. Setting a bit in the
906                                             // GPIOPDR register clears the
907                                             // corresponding bit in the GPIOPUR
908                                             // register. The change is effective
909                                             // on the second clock cycle after
910                                             // the write if accessing GPIO via
911                                             // the APB memory aperture. If using
912                                             // AHB access@@ the change is
913                                             // effective on the next clock
914                                             // cycle.
915 #define GPIO_GPIO_PUR_PUE_S     0
916 //******************************************************************************
917 //
918 // The following are defines for the bit fields in the GPIO_O_GPIO_PDR register.
919 //
920 //******************************************************************************
921 #define GPIO_GPIO_PDR_PDE_M     0x000000FF  // This register is not used in
922                                             // cc3xx. equivalant register exsist
923                                             // outside GPIO IP (refer
924                                             // PAD*_config register in the
925                                             // shared comn space) Pad Weak
926                                             // Pull-Down Enable Value
927                                             // Description 1 The corresponding
928                                             // pin has a weak pull-down
929                                             // resistor. 0 The corresponding pin
930                                             // is not affected. Setting a bit in
931                                             // the GPIOPUR register clears the
932                                             // corresponding bit in the GPIOPDR
933                                             // register. The change is effective
934                                             // on the second clock cycle after
935                                             // the write if accessing GPIO via
936                                             // the APB memory aperture. If using
937                                             // AHB access@@ the change is
938                                             // effective on the next clock
939                                             // cycle.
940 #define GPIO_GPIO_PDR_PDE_S     0
941 //******************************************************************************
942 //
943 // The following are defines for the bit fields in the GPIO_O_GPIO_SLR register.
944 //
945 //******************************************************************************
946 #define GPIO_GPIO_SLR_SRL_M     0x000000FF  // This register is not used in
947                                             // cc3xx. equivalant register exsist
948                                             // outside GPIO IP (refer
949                                             // PAD*_config register in the
950                                             // shared comn space) Slew Rate
951                                             // Limit Enable (8-mA drive only)
952                                             // Value Description 1 Slew rate
953                                             // control is enabled for the
954                                             // corresponding pin. 0 Slew rate
955                                             // control is disabled for the
956                                             // corresponding pin.
957 #define GPIO_GPIO_SLR_SRL_S     0
958 //******************************************************************************
959 //
960 // The following are defines for the bit fields in the GPIO_O_GPIO_DEN register.
961 //
962 //******************************************************************************
963 #define GPIO_GPIO_DEN_DEN_M     0x000000FF  // This register is not used in
964                                             // cc3xx. equivalant register exsist
965                                             // outside GPIO IP (refer
966                                             // PAD*_config register in the
967                                             // shared comn space) Digital Enable
968                                             // Value Description 0 The digital
969                                             // functions for the corresponding
970                                             // pin are disabled. 1 The digital
971                                             // functions for the corresponding
972                                             // pin are enabled.
973 #define GPIO_GPIO_DEN_DEN_S     0
974 //******************************************************************************
975 //
976 // The following are defines for the bit fields in the GPIO_O_GPIO_LOCK register.
977 //
978 //******************************************************************************
979 #define GPIO_GPIO_LOCK_LOCK_M   0xFFFFFFFF  // This register is not used in
980                                             // cc3xx. GPIO Lock A write of the
981                                             // value 0x4C4F.434B unlocks the
982                                             // GPIO Commit (GPIOCR) register for
983                                             // write access.A write of any other
984                                             // value or a write to the GPIOCR
985                                             // register reapplies the lock@@
986                                             // preventing any register updates.
987                                             // A read of this register returns
988                                             // the following values: Value
989                                             // Description 0x1 The GPIOCR
990                                             // register is locked and may not be
991                                             // modified. 0x0 The GPIOCR register
992                                             // is unlocked and may be modified.
993 #define GPIO_GPIO_LOCK_LOCK_S   0
994 //******************************************************************************
995 //
996 // The following are defines for the bit fields in the GPIO_O_GPIO_CR register.
997 //
998 //******************************************************************************
999 #define GPIO_GPIO_CR_CR_M       0x000000FF  // This register is not used in
1000                                             // cc3xx. equivalant register exsist
1001                                             // outside GPIO IP (refer
1002                                             // PAD*_config register in the
1003                                             // shared comn space) GPIO Commit
1004                                             // Value Description The
1005                                             // corresponding GPIOAFSEL@@
1006                                             // GPIOPUR@@ GPIOPDR@@ or GPIODEN
1007                                             // bits can be written. 1 The
1008                                             // corresponding GPIOAFSEL@@
1009                                             // GPIOPUR@@ GPIOPDR@@ or GPIODEN
1010                                             // bits cannot be written. 0 Note:
1011                                             // The default register type for the
1012                                             // GPIOCR register is RO for all
1013                                             // GPIO pins with the exception of
1014                                             // the NMI pin and the four JTAG/SWD
1015                                             // pins (PD7@@ PF0@@ and PC[3:0]).
1016                                             // These six pins are the only GPIOs
1017                                             // that are protected by the GPIOCR
1018                                             // register. Because of this@@ the
1019                                             // register type for GPIO Port D7@@
1020                                             // GPIO Port F0@@ and GPIO Port
1021                                             // C[3:0] is R/W. The default reset
1022                                             // value for the GPIOCR register is
1023                                             // 0x0000.00FF for all GPIO pins@@
1024                                             // with the exception of the NMI pin
1025                                             // and the four JTAG/SWD pins (PD7@@
1026                                             // PF0@@ and PC[3:0]). To ensure
1027                                             // that the JTAG port is not
1028                                             // accidentally programmed as GPIO
1029                                             // pins@@ the PC[3:0] pins default
1030                                             // to non-committable. Similarly@@
1031                                             // to ensure that the NMI pin is not
1032                                             // accidentally programmed as a GPIO
1033                                             // pin@@ the PD7 and PF0 pins
1034                                             // default to non-committable.
1035                                             // Because of this@@ the default
1036                                             // reset value of GPIOCR for GPIO
1037                                             // Port C is 0x0000.00F0@@ for GPIO
1038                                             // Port D is 0x0000.007F@@ and for
1039                                             // GPIO Port F is 0x0000.00FE.
1040 #define GPIO_GPIO_CR_CR_S       0
1041 //******************************************************************************
1042 //
1043 // The following are defines for the bit fields in the GPIO_O_GPIO_AMSEL register.
1044 //
1045 //******************************************************************************
1046 #define GPIO_GPIO_AMSEL_GPIO_AMSEL_M \
1047                                 0x000000FF  // This register is not used in
1048                                             // cc3xx. equivalant register exsist
1049                                             // outside GPIO IP (refer
1050                                             // PAD*_config register in the
1051                                             // shared comn space) GPIO Analog
1052                                             // Mode Select Value Description 1
1053                                             // The analog function of the pin is
1054                                             // enabled@@ the isolation is
1055                                             // disabled@@ and the pin is capable
1056                                             // of analog functions. 0 The analog
1057                                             // function of the pin is disabled@@
1058                                             // the isolation is enabled@@ and
1059                                             // the pin is capable of digital
1060                                             // functions as specified by the
1061                                             // other GPIO configuration
1062                                             // registers. Note: This register
1063                                             // and bits are only valid for GPIO
1064                                             // signals that share analog
1065                                             // function through a unified I/O
1066                                             // pad. The reset state of this
1067                                             // register is 0 for all signals.
1068 
1069 #define GPIO_GPIO_AMSEL_GPIO_AMSEL_S 0
1070 //******************************************************************************
1071 //
1072 // The following are defines for the bit fields in the GPIO_O_GPIO_PCTL register.
1073 //
1074 //******************************************************************************
1075 #define GPIO_GPIO_PCTL_PMC7_M   0xF0000000  // This register is not used in
1076                                             // cc3xx. equivalant register exsist
1077                                             // outside GPIO IP (refer
1078                                             // PAD*_config register in the
1079                                             // shared comn space) Port Mux
1080                                             // Control 7 This field controls the
1081                                             // configuration for GPIO pin 7.
1082 #define GPIO_GPIO_PCTL_PMC7_S   28
1083 #define GPIO_GPIO_PCTL_PMC6_M   0x0F000000  // This register is not used in
1084                                             // cc3xx. equivalant register exsist
1085                                             // outside GPIO IP (refer
1086                                             // PAD*_config register in the
1087                                             // shared comn space) Port Mux
1088                                             // Control 6 This field controls the
1089                                             // configuration for GPIO pin 6.
1090 #define GPIO_GPIO_PCTL_PMC6_S   24
1091 #define GPIO_GPIO_PCTL_PMC5_M   0x00F00000  // This register is not used in
1092                                             // cc3xx. equivalant register exsist
1093                                             // outside GPIO IP (refer
1094                                             // PAD*_config register in the
1095                                             // shared comn space) Port Mux
1096                                             // Control 5 This field controls the
1097                                             // configuration for GPIO pin 5.
1098 #define GPIO_GPIO_PCTL_PMC5_S   20
1099 #define GPIO_GPIO_PCTL_PMC4_M   0x000F0000  // This register is not used in
1100                                             // cc3xx. equivalant register exsist
1101                                             // outside GPIO IP (refer
1102                                             // PAD*_config register in the
1103                                             // shared comn space) Port Mux
1104                                             // Control 4 This field controls the
1105                                             // configuration for GPIO pin 4.
1106 #define GPIO_GPIO_PCTL_PMC4_S   16
1107 #define GPIO_GPIO_PCTL_PMC3_M   0x0000F000  // This register is not used in
1108                                             // cc3xx. equivalant register exsist
1109                                             // outside GPIO IP (refer
1110                                             // PAD*_config register in the
1111                                             // shared comn space) Port Mux
1112                                             // Control 43 This field controls
1113                                             // the configuration for GPIO pin 3.
1114 #define GPIO_GPIO_PCTL_PMC3_S   12
1115 #define GPIO_GPIO_PCTL_PMC1_M   0x00000F00  // This register is not used in
1116                                             // cc3xx. equivalant register exsist
1117                                             // outside GPIO IP (refer
1118                                             // PAD*_config register in the
1119                                             // shared comn space) Port Mux
1120                                             // Control 1 This field controls the
1121                                             // configuration for GPIO pin 1.
1122 #define GPIO_GPIO_PCTL_PMC1_S   8
1123 #define GPIO_GPIO_PCTL_PMC2_M   0x000000F0  // This register is not used in
1124                                             // cc3xx. equivalant register exsist
1125                                             // outside GPIO IP (refer
1126                                             // PAD*_config register in the
1127                                             // shared comn space) Port Mux
1128                                             // Control 2 This field controls the
1129                                             // configuration for GPIO pin 2.
1130 #define GPIO_GPIO_PCTL_PMC2_S   4
1131 #define GPIO_GPIO_PCTL_PMC0_M   0x0000000F  // This register is not used in
1132                                             // cc3xx. equivalant register exsist
1133                                             // outside GPIO IP (refer
1134                                             // PAD*_config register in the
1135                                             // shared comn space) Port Mux
1136                                             // Control 0 This field controls the
1137                                             // configuration for GPIO pin 0.
1138 #define GPIO_GPIO_PCTL_PMC0_S   0
1139 //******************************************************************************
1140 //
1141 // The following are defines for the bit fields in the
1142 // GPIO_O_GPIO_ADCCTL register.
1143 //
1144 //******************************************************************************
1145 #define GPIO_GPIO_ADCCTL_ADCEN_M \
1146                                 0x000000FF  // This register is not used in
1147                                             // cc3xx. ADC trigger via GPIO is
1148                                             // not supported. ADC Trigger Enable
1149                                             // Value Description 1 The
1150                                             // corresponding pin is used to
1151                                             // trigger the ADC. 0 The
1152                                             // corresponding pin is not used to
1153                                             // trigger the ADC.
1154 
1155 #define GPIO_GPIO_ADCCTL_ADCEN_S 0
1156 //******************************************************************************
1157 //
1158 // The following are defines for the bit fields in the
1159 // GPIO_O_GPIO_DMACTL register.
1160 //
1161 //******************************************************************************
1162 #define GPIO_GPIO_DMACTL_DMAEN_M \
1163                                 0x000000FF  // This register is not used in the
1164                                             // cc3xx. Alternate register to
1165                                             // support this feature is coded in
1166                                             // the APPS_NWP_CMN space. refer
1167                                             // register as offset 0x400F70D8
1168                                             // ?DMA Trigger Enable Value
1169                                             // Description 1 The corresponding
1170                                             // pin is used to trigger the ?DMA.
1171                                             // 0 The corresponding pin is not
1172                                             // used to trigger the ?DMA.
1173 
1174 #define GPIO_GPIO_DMACTL_DMAEN_S 0
1175 //******************************************************************************
1176 //
1177 // The following are defines for the bit fields in the GPIO_O_GPIO_SI register.
1178 //
1179 //******************************************************************************
1180 #define GPIO_GPIO_SI_SUM        0x00000001  // Summary Interrupt Value
1181                                             // Description 1 Each pin has its
1182                                             // own interrupt vector. 0 All port
1183                                             // pin interrupts are OR'ed together
1184                                             // to produce a summary interrupt.
1185 //******************************************************************************
1186 //
1187 // The following are defines for the bit fields in the
1188 // GPIO_O_GPIO_PERIPHID4 register.
1189 //
1190 //******************************************************************************
1191 #define GPIO_GPIO_PERIPHID4_PID4_M \
1192                                 0x000000FF  // This register is not used in
1193                                             // CC3XX. GPIO Peripheral ID
1194                                             // Register [7:0]
1195 
1196 #define GPIO_GPIO_PERIPHID4_PID4_S 0
1197 //******************************************************************************
1198 //
1199 // The following are defines for the bit fields in the
1200 // GPIO_O_GPIO_PERIPHID5 register.
1201 //
1202 //******************************************************************************
1203 #define GPIO_GPIO_PERIPHID5_PID5_M \
1204                                 0x000000FF  // This register is not used in
1205                                             // CC3XX. GPIO Peripheral ID
1206                                             // Register [15:8]
1207 
1208 #define GPIO_GPIO_PERIPHID5_PID5_S 0
1209 //******************************************************************************
1210 //
1211 // The following are defines for the bit fields in the
1212 // GPIO_O_GPIO_PERIPHID6 register.
1213 //
1214 //******************************************************************************
1215 #define GPIO_GPIO_PERIPHID6_PID6_M \
1216                                 0x000000FF  // This register is not used in
1217                                             // CC3XX. GPIO Peripheral ID
1218                                             // Register [23:16]
1219 
1220 #define GPIO_GPIO_PERIPHID6_PID6_S 0
1221 //******************************************************************************
1222 //
1223 // The following are defines for the bit fields in the
1224 // GPIO_O_GPIO_PERIPHID7 register.
1225 //
1226 //******************************************************************************
1227 #define GPIO_GPIO_PERIPHID7_PID7_M \
1228                                 0x000000FF  // This register is not used in
1229                                             // CC3XX. GPIO Peripheral ID
1230                                             // Register [31:24]
1231 
1232 #define GPIO_GPIO_PERIPHID7_PID7_S 0
1233 //******************************************************************************
1234 //
1235 // The following are defines for the bit fields in the
1236 // GPIO_O_GPIO_PERIPHID0 register.
1237 //
1238 //******************************************************************************
1239 #define GPIO_GPIO_PERIPHID0_PID0_M \
1240                                 0x000000FF  // This register is not used in
1241                                             // CC3XX. GPIO Peripheral ID
1242                                             // Register [7:0] Can be used by
1243                                             // software to identify the presence
1244                                             // of this peripheral.
1245 
1246 #define GPIO_GPIO_PERIPHID0_PID0_S 0
1247 //******************************************************************************
1248 //
1249 // The following are defines for the bit fields in the
1250 // GPIO_O_GPIO_PERIPHID1 register.
1251 //
1252 //******************************************************************************
1253 #define GPIO_GPIO_PERIPHID1_PID1_M \
1254                                 0x000000FF  // GPIO Peripheral ID Register
1255                                             // [15:8] Can be used by software to
1256                                             // identify the presence of this
1257                                             // peripheral.
1258 
1259 #define GPIO_GPIO_PERIPHID1_PID1_S 0
1260 //******************************************************************************
1261 //
1262 // The following are defines for the bit fields in the
1263 // GPIO_O_GPIO_PERIPHID2 register.
1264 //
1265 //******************************************************************************
1266 #define GPIO_GPIO_PERIPHID2_PID2_M \
1267                                 0x000000FF  // This register is not used in
1268                                             // CC3XX.v GPIO Peripheral ID
1269                                             // Register [23:16] Can be used by
1270                                             // software to identify the presence
1271                                             // of this peripheral.
1272 
1273 #define GPIO_GPIO_PERIPHID2_PID2_S 0
1274 //******************************************************************************
1275 //
1276 // The following are defines for the bit fields in the
1277 // GPIO_O_GPIO_PERIPHID3 register.
1278 //
1279 //******************************************************************************
1280 #define GPIO_GPIO_PERIPHID3_PID3_M \
1281                                 0x000000FF  // This register is not used in
1282                                             // CC3XX. GPIO Peripheral ID
1283                                             // Register [31:24] Can be used by
1284                                             // software to identify the presence
1285                                             // of this peripheral.
1286 
1287 #define GPIO_GPIO_PERIPHID3_PID3_S 0
1288 //******************************************************************************
1289 //
1290 // The following are defines for the bit fields in the
1291 // GPIO_O_GPIO_PCELLID0 register.
1292 //
1293 //******************************************************************************
1294 #define GPIO_GPIO_PCELLID0_CID0_M \
1295                                 0x000000FF  // This register is not used in
1296                                             // CC3XX. GPIO PrimeCell ID Register
1297                                             // [7:0] Provides software a
1298                                             // standard cross-peripheral
1299                                             // identification system.
1300 
1301 #define GPIO_GPIO_PCELLID0_CID0_S 0
1302 //******************************************************************************
1303 //
1304 // The following are defines for the bit fields in the
1305 // GPIO_O_GPIO_PCELLID1 register.
1306 //
1307 //******************************************************************************
1308 #define GPIO_GPIO_PCELLID1_CID1_M \
1309                                 0x000000FF  // This register is not used in
1310                                             // CC3XX. GPIO PrimeCell ID Register
1311                                             // [15:8] Provides software a
1312                                             // standard cross-peripheral
1313                                             // identification system.
1314 
1315 #define GPIO_GPIO_PCELLID1_CID1_S 0
1316 //******************************************************************************
1317 //
1318 // The following are defines for the bit fields in the
1319 // GPIO_O_GPIO_PCELLID2 register.
1320 //
1321 //******************************************************************************
1322 #define GPIO_GPIO_PCELLID2_CID2_M \
1323                                 0x000000FF  // This register is not used in
1324                                             // CC3XX. GPIO PrimeCell ID Register
1325                                             // [23:16] Provides software a
1326                                             // standard cross-peripheral
1327                                             // identification system.
1328 
1329 #define GPIO_GPIO_PCELLID2_CID2_S 0
1330 //******************************************************************************
1331 //
1332 // The following are defines for the bit fields in the
1333 // GPIO_O_GPIO_PCELLID3 register.
1334 //
1335 //******************************************************************************
1336 #define GPIO_GPIO_PCELLID3_CID3_M \
1337                                 0x000000FF  // This register is not used in
1338                                             // CC3XX. GPIO PrimeCell ID Register
1339                                             // [31:24] Provides software a
1340                                             // standard cross-peripheral
1341                                             // identification system.
1342 
1343 #define GPIO_GPIO_PCELLID3_CID3_S 0
1344 
1345 
1346 
1347 #endif // __HW_GPIO_H__
1348