1350 lines
91 KiB
C
1350 lines
91 KiB
C
|
//*****************************************************************************
|
||
|
//
|
||
|
// Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
|
||
|
//
|
||
|
//
|
||
|
// Redistribution and use in source and binary forms, with or without
|
||
|
// modification, are permitted provided that the following conditions
|
||
|
// are met:
|
||
|
//
|
||
|
// Redistributions of source code must retain the above copyright
|
||
|
// notice, this list of conditions and the following disclaimer.
|
||
|
//
|
||
|
// Redistributions in binary form must reproduce the above copyright
|
||
|
// notice, this list of conditions and the following disclaimer in the
|
||
|
// documentation and/or other materials provided with the
|
||
|
// distribution.
|
||
|
//
|
||
|
// Neither the name of Texas Instruments Incorporated nor the names of
|
||
|
// its contributors may be used to endorse or promote products derived
|
||
|
// from this software without specific prior written permission.
|
||
|
//
|
||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
|
||
|
#ifndef __HW_GPIO_H__
|
||
|
#define __HW_GPIO_H__
|
||
|
|
||
|
//*****************************************************************************
|
||
|
//
|
||
|
// The following are defines for the GPIO register offsets.
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#define GPIO_O_GPIO_DATA 0x00000000 // 0x4000 5000 0x4000 6000 0x4000
|
||
|
// 7000 0x4002 4000 GPIO Data
|
||
|
// (GPIODATA)@@ offset 0x000 The
|
||
|
// GPIODATA register is the data
|
||
|
// register. In software control
|
||
|
// mode@@ values written in the
|
||
|
// GPIODATA register are transferred
|
||
|
// onto the GPIO port pins if the
|
||
|
// respective pins have been
|
||
|
// configured as outputs through the
|
||
|
// GPIO Direction (GPIODIR) register
|
||
|
// (see page 653). In order to write
|
||
|
// to GPIODATA@@ the corresponding
|
||
|
// bits in the mask@@ resulting from
|
||
|
// the address bus bits [9:2]@@ must
|
||
|
// be set. Otherwise@@ the bit
|
||
|
// values remain unchanged by the
|
||
|
// write. Similarly@@ the values
|
||
|
// read from this register are
|
||
|
// determined for each bit by the
|
||
|
// mask bit derived from the address
|
||
|
// used to access the data
|
||
|
// register@@ bits [9:2]. Bits that
|
||
|
// are set in the address mask cause
|
||
|
// the corresponding bits in
|
||
|
// GPIODATA to be read@@ and bits
|
||
|
// that are clear in the address
|
||
|
// mask cause the corresponding bits
|
||
|
// in GPIODATA to be read as 0@@
|
||
|
// regardless of their value. A read
|
||
|
// from GPIODATA returns the last
|
||
|
// bit value written if the
|
||
|
// respective pins are configured as
|
||
|
// outputs@@ or it returns the value
|
||
|
// on the corresponding input pin
|
||
|
// when these are configured as
|
||
|
// inputs. All bits are cleared by a
|
||
|
// reset.
|
||
|
#define GPIO_O_GPIO_DIR 0x00000400 // 0x4000 5400 0x4000 6400 0x4000
|
||
|
// 7400 0x4002 4400 GPIO Direction
|
||
|
// (GPIODIR)@@ offset 0x400 The
|
||
|
// GPIODIR register is the data
|
||
|
// direction register. Setting a bit
|
||
|
// in the GPIODIR register
|
||
|
// configures the corresponding pin
|
||
|
// to be an output@@ while clearing
|
||
|
// a bit configures the
|
||
|
// corresponding pin to be an input.
|
||
|
// All bits are cleared by a reset@@
|
||
|
// meaning all GPIO pins are inputs
|
||
|
// by default.
|
||
|
#define GPIO_O_GPIO_IS 0x00000404 // 0x4000 5404 0x4000 6404 0x4000
|
||
|
// 7404 0x4002 4404 GPIO Interrupt
|
||
|
// Sense (GPIOIS)@@ offset 0x404 The
|
||
|
// GPIOIS register is the interrupt
|
||
|
// sense register. Setting a bit in
|
||
|
// the GPIOIS register configures
|
||
|
// the corresponding pin to detect
|
||
|
// levels@@ while clearing a bit
|
||
|
// configures the corresponding pin
|
||
|
// to detect edges. All bits are
|
||
|
// cleared by a reset.
|
||
|
#define GPIO_O_GPIO_IBE 0x00000408 // 0x4000 5408 0x4000 6408 0x4000
|
||
|
// 7408 0x4002 4408 GPIO Interrupt
|
||
|
// Both Edges (GPIOIBE)@@ offset
|
||
|
// 0x408 The GPIOIBE register allows
|
||
|
// both edges to cause interrupts.
|
||
|
// When the corresponding bit in the
|
||
|
// GPIO Interrupt Sense (GPIOIS)
|
||
|
// register is set to detect edges@@
|
||
|
// setting a bit in the GPIOIBE
|
||
|
// register configures the
|
||
|
// corresponding pin to detect both
|
||
|
// rising and falling edges@@
|
||
|
// regardless of the corresponding
|
||
|
// bit in the GPIO Interrupt Event
|
||
|
// (GPIOIEV) register . Clearing a
|
||
|
// bit configures the pin to be
|
||
|
// controlled by the GPIOIEV
|
||
|
// register. All bits are cleared by
|
||
|
// a reset.
|
||
|
#define GPIO_O_GPIO_IEV 0x0000040C // 0x4000 540C 0x4000 640C 0x4000
|
||
|
// 740C 0x4002 440C GPIO Interrupt
|
||
|
// Event (GPIOIEV)@@ offset 0x40C
|
||
|
// The GPIOIEV register is the
|
||
|
// interrupt event register. Setting
|
||
|
// a bit in the GPIOIEV register
|
||
|
// configures the corresponding pin
|
||
|
// to detect rising edges or high
|
||
|
// levels@@ depending on the
|
||
|
// corresponding bit value in the
|
||
|
// GPIO Interrupt Sense (GPIOIS)
|
||
|
// register . Clearing a bit
|
||
|
// configures the pin to detect
|
||
|
// falling edges or low levels@@
|
||
|
// depending on the corresponding
|
||
|
// bit value in the GPIOIS register.
|
||
|
// All bits are cleared by a reset.
|
||
|
#define GPIO_O_GPIO_IM 0x00000410 // 0x4000 5410 0x4000 6410 0x4000
|
||
|
// 7410 0x4002 4410 GPIO Interrupt
|
||
|
// Mask (GPIOIM)@@ offset 0x410 The
|
||
|
// GPIOIM register is the interrupt
|
||
|
// mask register. Setting a bit in
|
||
|
// the GPIOIM register allows
|
||
|
// interrupts that are generated by
|
||
|
// the corresponding pin to be sent
|
||
|
// to the interrupt controller on
|
||
|
// the combined interrupt signal.
|
||
|
// Clearing a bit prevents an
|
||
|
// interrupt on the corresponding
|
||
|
// pin from being sent to the
|
||
|
// interrupt controller. All bits
|
||
|
// are cleared by a reset.
|
||
|
#define GPIO_O_GPIO_RIS 0x00000414 // 0x4000 5414 0x4000 6414 0x4000
|
||
|
// 7414 0x4002 4414 GPIO Raw
|
||
|
// Interrupt Status (GPIORIS)@@
|
||
|
// offset 0x414 The GPIORIS register
|
||
|
// is the raw interrupt status
|
||
|
// register. A bit in this register
|
||
|
// is set when an interrupt
|
||
|
// condition occurs on the
|
||
|
// corresponding GPIO pin. If the
|
||
|
// corresponding bit in the GPIO
|
||
|
// Interrupt Mask (GPIOIM) register
|
||
|
// is set@@ the interrupt is sent to
|
||
|
// the interrupt controller. Bits
|
||
|
// read as zero indicate that
|
||
|
// corresponding input pins have not
|
||
|
// initiated an interrupt. A bit in
|
||
|
// this register can be cleared by
|
||
|
// writing a 1 to the corresponding
|
||
|
// bit in the GPIO Interrupt Clear
|
||
|
// (GPIOICR) register.
|
||
|
#define GPIO_O_GPIO_MIS 0x00000418 // 0x4000 5418 0x4000 6418 0x4000
|
||
|
// 7418 0x4002 4418 GPIO Masked
|
||
|
// Interrupt Status (GPIOMIS)@@
|
||
|
// offset 0x418 The GPIOMIS register
|
||
|
// is the masked interrupt status
|
||
|
// register. If a bit is set in this
|
||
|
// register@@ the corresponding
|
||
|
// interrupt has triggered an
|
||
|
// interrupt to the interrupt
|
||
|
// controller. If a bit is clear@@
|
||
|
// either no interrupt has been
|
||
|
// generated@@ or the interrupt is
|
||
|
// masked. If no port pin@@ other
|
||
|
// than the one that is being used
|
||
|
// as an ADC trigger@@ is being used
|
||
|
// to generate interrupts@@ the
|
||
|
// appropriate Interrupt Set Enable
|
||
|
// (ENn) register can disable the
|
||
|
// interrupts for the port@@ and the
|
||
|
// ADC interrupt can be used to read
|
||
|
// back the converted data.
|
||
|
// Otherwise@@ the port interrupt
|
||
|
// handler must ignore and clear
|
||
|
// interrupts on the port pin and
|
||
|
// wait for the ADC interrupt@@ or
|
||
|
// the ADC interrupt must be
|
||
|
// disabled in the EN0 register and
|
||
|
// the port interrupt handler must
|
||
|
// poll the ADC registers until the
|
||
|
// conversion is completed. If no
|
||
|
// port pin@@ other than the one
|
||
|
// that is being used as an ADC
|
||
|
// trigger@@ is being used to
|
||
|
// generate interrupts@@ the
|
||
|
// appropriate Interrupt Set Enable
|
||
|
// (ENn) register can disable the
|
||
|
// interrupts for the port@@ and the
|
||
|
// ADC interrupt can be used to read
|
||
|
// back the converted data.
|
||
|
// Otherwise@@ the port interrupt
|
||
|
// handler must ignore and clear
|
||
|
// interrupts on the port pin and
|
||
|
// wait for the ADC interrupt@@ or
|
||
|
// the ADC interrupt must be
|
||
|
// disabled in the EN0 register and
|
||
|
// the port interrupt handler must
|
||
|
// poll the ADC registers until the
|
||
|
// conversion is completed. Note
|
||
|
// that if the Port B GPIOADCCTL
|
||
|
// register is cleared@@ PB4 can
|
||
|
// still be used as an external
|
||
|
// trigger for the ADC. This is a
|
||
|
// legacy mode which allows code
|
||
|
// written for previous Stellaris
|
||
|
// devices to operate on this
|
||
|
// microcontroller. GPIOMIS is the
|
||
|
// state of the interrupt after
|
||
|
// masking.
|
||
|
#define GPIO_O_GPIO_ICR 0x0000041C // 0x4000 541C 0x4000 641C 0x4000
|
||
|
// 741C 0x4002 441C GPIO Interrupt
|
||
|
// Clear (GPIOICR)@@ offset 0x41C
|
||
|
// The GPIOICR register is the
|
||
|
// interrupt clear register. Writing
|
||
|
// a 1 to a bit in this register
|
||
|
// clears the corresponding
|
||
|
// interrupt bit in the GPIORIS and
|
||
|
// GPIOMIS registers. Writing a 0
|
||
|
// has no effect.
|
||
|
#define GPIO_O_GPIO_AFSEL 0x00000420 // 0x4000 5420 0x4000 6420 0x4000
|
||
|
// 7420 0x4002 4420 GPIO Alternate
|
||
|
// Function Select (GPIOAFSEL)@@
|
||
|
// offset 0x420 The GPIOAFSEL
|
||
|
// register is the mode control
|
||
|
// select register. If a bit is
|
||
|
// clear@@ the pin is used as a GPIO
|
||
|
// and is controlled by the GPIO
|
||
|
// registers. Setting a bit in this
|
||
|
// register configures the
|
||
|
// corresponding GPIO line to be
|
||
|
// controlled by an associated
|
||
|
// peripheral. Several possible
|
||
|
// peripheral functions are
|
||
|
// multiplexed on each GPIO. The
|
||
|
// GPIO Port Control (GPIOPCTL)
|
||
|
// register is used to select one of
|
||
|
// the possible functions.
|
||
|
#define GPIO_O_GPIO_DR2R 0x00000500 // 0x4000 5500 0x4000 6500 0x4000
|
||
|
// 7500 0x4002 4500 GPIO 2-mA Drive
|
||
|
// Select (GPIODR2R)@@ offset 0x500
|
||
|
// The GPIODR2R register is the 2-mA
|
||
|
// drive control register. Each GPIO
|
||
|
// signal in the port can be
|
||
|
// individually configured without
|
||
|
// affecting the other pads. When
|
||
|
// setting the DRV2 bit for a GPIO
|
||
|
// signal@@ the corresponding DRV4
|
||
|
// bit in the GPIODR4R register and
|
||
|
// DRV8 bit in the GPIODR8R register
|
||
|
// are automatically cleared by
|
||
|
// hardware. By default@@ all GPIO
|
||
|
// pins have 2-mA drive.
|
||
|
#define GPIO_O_GPIO_DR4R 0x00000504 // 0x4000 5504 0x4000 6504 0x4000
|
||
|
// 7504 0x4002 4504 GPIO 4-mA Drive
|
||
|
// Select (GPIODR4R)@@ offset 0x504
|
||
|
// The GPIODR4R register is the 4-mA
|
||
|
// drive control register. Each GPIO
|
||
|
// signal in the port can be
|
||
|
// individually configured without
|
||
|
// affecting the other pads. When
|
||
|
// setting the DRV4 bit for a GPIO
|
||
|
// signal@@ the corresponding DRV2
|
||
|
// bit in the GPIODR2R register and
|
||
|
// DRV8 bit in the GPIODR8R register
|
||
|
// are automatically cleared by
|
||
|
// hardware.
|
||
|
#define GPIO_O_GPIO_DR8R 0x00000508 // 0x4000 5508 0x4000 6508 0x4000
|
||
|
// 7508 0x4002 4508 GPIO 8-mA Drive
|
||
|
// Select (GPIODR8R)@@ offset 0x508
|
||
|
// The GPIODR8R register is the 8-mA
|
||
|
// drive control register. Each GPIO
|
||
|
// signal in the port can be
|
||
|
// individually configured without
|
||
|
// affecting the other pads. When
|
||
|
// setting the DRV8 bit for a GPIO
|
||
|
// signal@@ the corresponding DRV2
|
||
|
// bit in the GPIODR2R register and
|
||
|
// DRV4 bit in the GPIODR4R register
|
||
|
// are automatically cleared by
|
||
|
// hardware. The 8-mA setting is
|
||
|
// also used for high-current
|
||
|
// operation. Note: There is no
|
||
|
// configuration difference between
|
||
|
// 8-mA and high-current operation.
|
||
|
// The additional current capacity
|
||
|
// results from a shift in the
|
||
|
// VOH/VOL levels.
|
||
|
#define GPIO_O_GPIO_ODR 0x0000050C // 0x4000 550C 0x4000 650C 0x4000
|
||
|
// 750C 0x4002 450C GPIO Open Drain
|
||
|
// Select (GPIOODR)@@ offset 0x50C
|
||
|
// The GPIOODR register is the open
|
||
|
// drain control register. Setting a
|
||
|
// bit in this register enables the
|
||
|
// open-drain configuration of the
|
||
|
// corresponding GPIO pad. When
|
||
|
// open-drain mode is enabled@@ the
|
||
|
// corresponding bit should also be
|
||
|
// set in the GPIO Digital Input
|
||
|
// Enable (GPIODEN) register .
|
||
|
// Corresponding bits in the drive
|
||
|
// strength and slew rate control
|
||
|
// registers (GPIODR2R@@ GPIODR4R@@
|
||
|
// GPIODR8R@@ and GPIOSLR) can be
|
||
|
// set to achieve the desired rise
|
||
|
// and fall times. The GPIO acts as
|
||
|
// an open-drain input if the
|
||
|
// corresponding bit in the GPIODIR
|
||
|
// register is cleared. If open
|
||
|
// drain is selected while the GPIO
|
||
|
// is configured as an input@@ the
|
||
|
// GPIO will remain an input and the
|
||
|
// open-drain selection has no
|
||
|
// effect until the GPIO is changed
|
||
|
// to an output. When using the I2C
|
||
|
// module@@ in addition to
|
||
|
// configuring the pin to open
|
||
|
// drain@@ the GPIO Alternate
|
||
|
// Function Select (GPIOAFSEL)
|
||
|
// register bits for the I2C clock
|
||
|
// and data pins should be set
|
||
|
#define GPIO_O_GPIO_PUR 0x00000510 // 0x4000 5510 0x4000 6510 0x4000
|
||
|
// 7510 0x4002 4510 GPIO Pull-Up
|
||
|
// Select (GPIOPUR)@@ offset 0x510
|
||
|
// The GPIOPUR register is the
|
||
|
// pull-up control register. When a
|
||
|
// bit is set@@ a weak pull-up
|
||
|
// resistor on the corresponding
|
||
|
// GPIO signal is enabled. Setting a
|
||
|
// bit in GPIOPUR automatically
|
||
|
// clears the corresponding bit in
|
||
|
// the GPIO Pull-Down Select
|
||
|
// (GPIOPDR) register . Write access
|
||
|
// to this register is protected
|
||
|
// with the GPIOCR register. Bits in
|
||
|
// GPIOCR that are cleared prevent
|
||
|
// writes to the equivalent bit in
|
||
|
// this register.
|
||
|
#define GPIO_O_GPIO_PDR 0x00000514 // 0x4000 5514 0x4000 6514 0x4000
|
||
|
// 7514 0x4002 4514 GPIO Pull-Down
|
||
|
// Select (GPIOPDR)@@ offset 0x514
|
||
|
// The GPIOPDR register is the
|
||
|
// pull-down control register. When
|
||
|
// a bit is set@@ a weak pull-down
|
||
|
// resistor on the corresponding
|
||
|
// GPIO signal is enabled. Setting a
|
||
|
// bit in GPIOPDR automatically
|
||
|
// clears the corresponding bit in
|
||
|
// the GPIO Pull-Up Select (GPIOPUR)
|
||
|
// register
|
||
|
#define GPIO_O_GPIO_SLR 0x00000518 // 0x4000 5518 0x4000 6518 0x4000
|
||
|
// 7518 0x4002 4518 The GPIOSLR
|
||
|
// register is the slew rate control
|
||
|
// register. Slew rate control is
|
||
|
// only available when using the
|
||
|
// 8-mA drive strength option via
|
||
|
// the GPIO 8-mA Drive Select
|
||
|
// (GPIODR8R) register
|
||
|
#define GPIO_O_GPIO_DEN 0x0000051C // 0x4000 551C 0x4000 651C 0x4000
|
||
|
// 751C 0x4002 451C GPIO Digital
|
||
|
// Enable (GPIODEN)@@ offset 0x51C
|
||
|
// Note: Pins configured as digital
|
||
|
// inputs are Schmitt-triggered. The
|
||
|
// GPIODEN register is the digital
|
||
|
// enable register. By default@@ all
|
||
|
// GPIO signals except those listed
|
||
|
// below are configured out of reset
|
||
|
// to be undriven (tristate). Their
|
||
|
// digital function is disabled;
|
||
|
// they do not drive a logic value
|
||
|
// on the pin and they do not allow
|
||
|
// the pin voltage into the GPIO
|
||
|
// receiver. To use the pin as a
|
||
|
// digital input or output (either
|
||
|
// GPIO or alternate function)@@ the
|
||
|
// corresponding GPIODEN bit must be
|
||
|
// set.
|
||
|
#define GPIO_O_GPIO_LOCK 0x00000520 // 0x4000 5520 0x4000 6520 0x4000
|
||
|
// 7520 0x4002 4520 GPIO Lock
|
||
|
// (GPIOLOCK)@@ offset 0x520 The
|
||
|
// GPIOLOCK register enables write
|
||
|
// access to the GPIOCR register .
|
||
|
// Writing 0x4C4F.434B to the
|
||
|
// GPIOLOCK register unlocks the
|
||
|
// GPIOCR register. Writing any
|
||
|
// other value to the GPIOLOCK
|
||
|
// register re-enables the locked
|
||
|
// state. Reading the GPIOLOCK
|
||
|
// register returns the lock status
|
||
|
// rather than the 32-bit value that
|
||
|
// was previously written.
|
||
|
// Therefore@@ when write accesses
|
||
|
// are disabled@@ or locked@@
|
||
|
// reading the GPIOLOCK register
|
||
|
// returns 0x0000.0001. When write
|
||
|
// accesses are enabled@@ or
|
||
|
// unlocked@@ reading the GPIOLOCK
|
||
|
// register returns 0x0000.0000.
|
||
|
#define GPIO_O_GPIO_CR 0x00000524 // 0x4000 5524 0x4000 6524 0x4000
|
||
|
// 7524 0x4002 4524 GPIO Commit
|
||
|
// (GPIOCR)@@ offset 0x524 The
|
||
|
// GPIOCR register is the commit
|
||
|
// register. The value of the GPIOCR
|
||
|
// register determines which bits of
|
||
|
// the GPIOAFSEL@@ GPIOPUR@@
|
||
|
// GPIOPDR@@ and GPIODEN registers
|
||
|
// are committed when a write to
|
||
|
// these registers is performed. If
|
||
|
// a bit in the GPIOCR register is
|
||
|
// cleared@@ the data being written
|
||
|
// to the corresponding bit in the
|
||
|
// GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
|
||
|
// or GPIODEN registers cannot be
|
||
|
// committed and retains its
|
||
|
// previous value. If a bit in the
|
||
|
// GPIOCR register is set@@ the data
|
||
|
// being written to the
|
||
|
// corresponding bit of the
|
||
|
// GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
|
||
|
// or GPIODEN registers is committed
|
||
|
// to the register and reflects the
|
||
|
// new value. The contents of the
|
||
|
// GPIOCR register can only be
|
||
|
// modified if the status in the
|
||
|
// GPIOLOCK register is unlocked.
|
||
|
// Writes to the GPIOCR register are
|
||
|
// ignored if the status in the
|
||
|
// GPIOLOCK register is locked.
|
||
|
#define GPIO_O_GPIO_AMSEL 0x00000528 // 0x4000 5528 0x4000 6528 0x4000
|
||
|
// 7528 0x4002 4528 The GPIOAMSEL
|
||
|
// register controls isolation
|
||
|
// circuits to the analog side of a
|
||
|
// unified I/O pad. Because the
|
||
|
// GPIOs may be driven by a 5-V
|
||
|
// source and affect analog
|
||
|
// operation@@ analog circuitry
|
||
|
// requires isolation from the pins
|
||
|
// when they are not used in their
|
||
|
// analog function. Each bit of this
|
||
|
// register controls the isolation
|
||
|
// circuitry for the corresponding
|
||
|
// GPIO signal.
|
||
|
#define GPIO_O_GPIO_PCTL 0x0000052C // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) 0x4000 552C
|
||
|
// 0x4000 652C 0x4000 752C 0x4002
|
||
|
// 452C GPIO Port Control
|
||
|
// (GPIOPCTL)@@ offset 0x52C The
|
||
|
// GPIOPCTL register is used in
|
||
|
// conjunction with the GPIOAFSEL
|
||
|
// register and selects the specific
|
||
|
// peripheral signal for each GPIO
|
||
|
// pin when using the alternate
|
||
|
// function mode. Most bits in the
|
||
|
// GPIOAFSEL register are cleared on
|
||
|
// reset@@ therefore most GPIO pins
|
||
|
// are configured as GPIOs by
|
||
|
// default. When a bit is set in the
|
||
|
// GPIOAFSEL register@@ the
|
||
|
// corresponding GPIO signal is
|
||
|
// controlled by an associated
|
||
|
// peripheral. The GPIOPCTL register
|
||
|
// selects one out of a set of
|
||
|
// peripheral functions for each
|
||
|
// GPIO@@ providing additional
|
||
|
// flexibility in signal definition.
|
||
|
#define GPIO_O_GPIO_ADCCTL 0x00000530 // This register is not used in
|
||
|
// cc3xx. ADC trigger via GPIO is
|
||
|
// not supported. 0x4000 5530 0x4000
|
||
|
// 6530 0x4000 7530 0x4002 4530 GPIO
|
||
|
// ADC Control (GPIOADCCTL)@@ offset
|
||
|
// 0x530 This register is used to
|
||
|
// configure a GPIO pin as a source
|
||
|
// for the ADC trigger. Note that if
|
||
|
// the Port B GPIOADCCTL register is
|
||
|
// cleared@@ PB4 can still be used
|
||
|
// as an external trigger for the
|
||
|
// ADC. This is a legacy mode which
|
||
|
// allows code written for previous
|
||
|
// Stellaris devices to operate on
|
||
|
// this microcontroller.
|
||
|
#define GPIO_O_GPIO_DMACTL 0x00000534 // 0x4000 5534 0x4000 6534 0x4000
|
||
|
// 7534 0x4002 4534 GPIO DMA Control
|
||
|
// (GPIODMACTL)@@ offset 0x534 This
|
||
|
// register is used to configure a
|
||
|
// GPIO pin as a source for the ?DMA
|
||
|
// trigger.
|
||
|
#define GPIO_O_GPIO_SI 0x00000538 // 0x4000 5538 0x4000 6538 0x4000
|
||
|
// 7538 0x4002 4538 GPIO Select
|
||
|
// Interrupt (GPIOSI)@@ offset 0x538
|
||
|
// This register is used to enable
|
||
|
// individual interrupts for each
|
||
|
// pin. Note: This register is only
|
||
|
// available on Port P and Port Q.
|
||
|
#define GPIO_O_GPIO_PERIPHID4 0x00000FD0 // 0x4000 5FD0 0x4000 6FD0 0x4000
|
||
|
// 7FD0 0x4002 4FD0 GPIO Peripheral
|
||
|
// Identification 4
|
||
|
// (GPIOPeriphID4)@@ offset 0xFD0
|
||
|
// The GPIOPeriphID4@@
|
||
|
// GPIOPeriphID5@@ GPIOPeriphID6@@
|
||
|
// and GPIOPeriphID7 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID5 0x00000FD4 // 0x4000 5FD4 0x4000 6FD4 0x4000
|
||
|
// 7FD4 0x4002 4FD4 GPIO Peripheral
|
||
|
// Identification 5
|
||
|
// (GPIOPeriphID5)@@ offset 0xFD4
|
||
|
// The GPIOPeriphID4@@
|
||
|
// GPIOPeriphID5@@ GPIOPeriphID6@@
|
||
|
// and GPIOPeriphID7 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID6 0x00000FD8 // 0x4000 5FD8 0x4000 6FD8 0x4000
|
||
|
// 7FD8 0x4002 4FD8 GPIO Peripheral
|
||
|
// Identification 6
|
||
|
// (GPIOPeriphID6)@@ offset 0xFD8
|
||
|
// The GPIOPeriphID4@@
|
||
|
// GPIOPeriphID5@@ GPIOPeriphID6@@
|
||
|
// and GPIOPeriphID7 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID7 0x00000FDC // 0x4000 5FDC 0x4000 6FDC 0x4000
|
||
|
// 7FDC 0x4002 4FDC GPIO Peripheral
|
||
|
// Identification 7
|
||
|
// (GPIOPeriphID7)@@ offset 0xFDC
|
||
|
// The GPIOPeriphID4@@
|
||
|
// GPIOPeriphID5@@ GPIOPeriphID6@@
|
||
|
// and GPIOPeriphID7 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID0 0x00000FE0 // 0x4000 5FE0 0x4000 6FE0 0x4000
|
||
|
// 7FE0 0x4002 4FE0 GPIO Peripheral
|
||
|
// Identification 0
|
||
|
// (GPIOPeriphID0)@@ offset 0xFE0
|
||
|
// The GPIOPeriphID0@@
|
||
|
// GPIOPeriphID1@@ GPIOPeriphID2@@
|
||
|
// and GPIOPeriphID3 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID1 0x00000FE4 // 0x4000 5FE4 0x4000 6FE4 0x4000
|
||
|
// 7FE4 0x4002 4FE4 GPIO Peripheral
|
||
|
// Identification 1
|
||
|
// (GPIOPeriphID1)@@ offset 0xFE4
|
||
|
// The GPIOPeriphID0@@
|
||
|
// GPIOPeriphID1@@ GPIOPeriphID2@@
|
||
|
// and GPIOPeriphID3 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID2 0x00000FE8 // 0x4000 5FE8 0x4000 6FE8 0x4000
|
||
|
// 7FE8 0x4002 4FE8 GPIO Peripheral
|
||
|
// Identification 2
|
||
|
// (GPIOPeriphID2)@@ offset 0xFE8
|
||
|
// The GPIOPeriphID0@@
|
||
|
// GPIOPeriphID1@@ GPIOPeriphID2@@
|
||
|
// and GPIOPeriphID3 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PERIPHID3 0x00000FEC // 0x4000 5FEC 0x4000 6FEC 0x4000
|
||
|
// 7FEC 0x4002 4FEC GPIO Peripheral
|
||
|
// Identification 3
|
||
|
// (GPIOPeriphID3)@@ offset 0xFEC
|
||
|
// The GPIOPeriphID0@@
|
||
|
// GPIOPeriphID1@@ GPIOPeriphID2@@
|
||
|
// and GPIOPeriphID3 registers can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register; each register
|
||
|
// contains eight bits of the 32-bit
|
||
|
// register@@ used by software to
|
||
|
// identify the peripheral.
|
||
|
#define GPIO_O_GPIO_PCELLID0 0x00000FF0 // 0x4000 5FF0 0x4000 6FF0 0x4000
|
||
|
// 7FF0 0x4002 4FF0 GPIO PrimeCell
|
||
|
// Identification 0 (GPIOPCellID0)@@
|
||
|
// offset 0xFF0 The GPIOPCellID0@@
|
||
|
// GPIOPCellID1@@ GPIOPCellID2@@ and
|
||
|
// GPIOPCellID3 registers are four
|
||
|
// 8-bit wide registers@@ that can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register. The register is
|
||
|
// used as a standard
|
||
|
// cross-peripheral identification
|
||
|
// system.
|
||
|
#define GPIO_O_GPIO_PCELLID1 0x00000FF4 // 0x4000 5FF4 0x4000 6FF4 0x4000
|
||
|
// 7FF4 0x4002 4FF4 GPIO PrimeCell
|
||
|
// Identification 1 (GPIOPCellID1)@@
|
||
|
// offset 0xFF4 The GPIOPCellID0@@
|
||
|
// GPIOPCellID1@@ GPIOPCellID2@@ and
|
||
|
// GPIOPCellID3 registers are four
|
||
|
// 8-bit wide registers@@ that can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register. The register is
|
||
|
// used as a standard
|
||
|
// cross-peripheral identification
|
||
|
// system.
|
||
|
#define GPIO_O_GPIO_PCELLID2 0x00000FF8 // 0x4000 5FF8 0x4000 6FF8 0x4000
|
||
|
// 7FF8 0x4002 4FF8 GPIO PrimeCell
|
||
|
// Identification 2 (GPIOPCellID2)@@
|
||
|
// offset 0xFF8 The GPIOPCellID0@@
|
||
|
// GPIOPCellID1@@ GPIOPCellID2@@ and
|
||
|
// GPIOPCellID3 registers are four
|
||
|
// 8-bit wide registers@@ that can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register. The register is
|
||
|
// used as a standard
|
||
|
// cross-peripheral identification
|
||
|
// system.
|
||
|
#define GPIO_O_GPIO_PCELLID3 0x00000FFC // 0x4000 5FFC 0x4000 6FFC 0x4000
|
||
|
// 7FFC 0x4002 4FFC GPIO PrimeCell
|
||
|
// Identification 3 (GPIOPCellID3)@@
|
||
|
// offset 0xFFC The GPIOPCellID0@@
|
||
|
// GPIOPCellID1@@ GPIOPCellID2@@ and
|
||
|
// GPIOPCellID3 registers are four
|
||
|
// 8-bit wide registers@@ that can
|
||
|
// conceptually be treated as one
|
||
|
// 32-bit register. The register is
|
||
|
// used as a standard
|
||
|
// cross-peripheral identification
|
||
|
// system.0xb1
|
||
|
|
||
|
|
||
|
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DATA register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DATA_DATA_M 0x000000FF // GPIO Data This register is
|
||
|
// virtually mapped to 256 locations
|
||
|
// in the address space. To
|
||
|
// facilitate the reading and
|
||
|
// writing of data to these
|
||
|
// registers by independent
|
||
|
// drivers@@ the data read from and
|
||
|
// written to the registers are
|
||
|
// masked by the eight address lines
|
||
|
// [9:2]. Reads from this register
|
||
|
// return its current state. Writes
|
||
|
// to this register only affect bits
|
||
|
// that are not masked by ADDR[9:2]
|
||
|
// and are configured as outputs.
|
||
|
#define GPIO_GPIO_DATA_DATA_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DIR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DIR_DIR_M 0x000000FF // GPIO Data Direction Value
|
||
|
// Description 0 Corresponding pin
|
||
|
// is an input. 1 Corresponding pins
|
||
|
// is an output.
|
||
|
#define GPIO_GPIO_DIR_DIR_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_IS register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_IS_IS_M 0x000000FF // GPIO Interrupt Sense Value
|
||
|
// Description 0 The edge on the
|
||
|
// corresponding pin is detected
|
||
|
// (edge-sensitive). 1 The level on
|
||
|
// the corresponding pin is detected
|
||
|
// (level-sensitive).
|
||
|
#define GPIO_GPIO_IS_IS_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_IBE register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_IBE_IBE_M 0x000000FF // GPIO Interrupt Both Edges Value
|
||
|
// Description 0 Interrupt
|
||
|
// generation is controlled by the
|
||
|
// GPIO Interrupt Event (GPIOIEV)
|
||
|
// register. 1 Both edges on the
|
||
|
// corresponding pin trigger an
|
||
|
// interrupt.
|
||
|
#define GPIO_GPIO_IBE_IBE_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_IEV register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_IEV_IEV_M 0x000000FF // GPIO Interrupt Event Value
|
||
|
// Description 1 A falling edge or a
|
||
|
// Low level on the corresponding
|
||
|
// pin triggers an interrupt. 0 A
|
||
|
// rising edge or a High level on
|
||
|
// the corresponding pin triggers an
|
||
|
// interrupt.
|
||
|
#define GPIO_GPIO_IEV_IEV_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_IM register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_IM_IME_M 0x000000FF // GPIO Interrupt Mask Enable Value
|
||
|
// Description 0 The interrupt from
|
||
|
// the corresponding pin is masked.
|
||
|
// 1 The interrupt from the
|
||
|
// corresponding pin is sent to the
|
||
|
// interrupt controller.
|
||
|
#define GPIO_GPIO_IM_IME_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_RIS register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_RIS_RIS_M 0x000000FF // GPIO Interrupt Raw Status Value
|
||
|
// Description 1 An interrupt
|
||
|
// condition has occurred on the
|
||
|
// corresponding pin. 0 interrupt
|
||
|
// condition has not occurred on the
|
||
|
// corresponding pin. A bit is
|
||
|
// cleared by writing a 1 to the
|
||
|
// corresponding bit in the GPIOICR
|
||
|
// register.
|
||
|
#define GPIO_GPIO_RIS_RIS_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_MIS register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_MIS_MIS_M 0x000000FF // GPIO Masked Interrupt Status
|
||
|
// Value Description 1 An interrupt
|
||
|
// condition on the corresponding
|
||
|
// pin has triggered an interrupt to
|
||
|
// the interrupt controller. 0 An
|
||
|
// interrupt condition on the
|
||
|
// corresponding pin is masked or
|
||
|
// has not occurred. A bit is
|
||
|
// cleared by writing a 1 to the
|
||
|
// corresponding bit in the GPIOICR
|
||
|
// register.
|
||
|
#define GPIO_GPIO_MIS_MIS_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_ICR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_ICR_IC_M 0x000000FF // GPIO Interrupt Clear Value
|
||
|
// Description 1 The corresponding
|
||
|
// interrupt is cleared. 0 The
|
||
|
// corresponding interrupt is
|
||
|
// unaffected.
|
||
|
#define GPIO_GPIO_ICR_IC_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_AFSEL register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DR2R register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DR2R_DRV2_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Output Pad
|
||
|
// 2-mA Drive Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// GPIO pin has 2-mA drive. The
|
||
|
// drive for the corresponding GPIO
|
||
|
// pin is controlled by the GPIODR4R
|
||
|
// or GPIODR8R register. 0 Setting a
|
||
|
// bit in either the GPIODR4
|
||
|
// register or the GPIODR8 register
|
||
|
// clears the corresponding 2-mA
|
||
|
// enable bit. The change is
|
||
|
// effective on the second clock
|
||
|
// cycle after the write if
|
||
|
// accessing GPIO via the APB memory
|
||
|
// aperture. If using AHB access@@
|
||
|
// the change is effective on the
|
||
|
// next clock cycle.
|
||
|
#define GPIO_GPIO_DR2R_DRV2_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DR4R register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DR4R_DRV4_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Output Pad
|
||
|
// 4-mA Drive Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// GPIO pin has 4-mA drive. The
|
||
|
// drive for the corresponding GPIO
|
||
|
// pin is controlled by the GPIODR2R
|
||
|
// or GPIODR8R register. 0 Setting a
|
||
|
// bit in either the GPIODR2
|
||
|
// register or the GPIODR8 register
|
||
|
// clears the corresponding 4-mA
|
||
|
// enable bit. The change is
|
||
|
// effective on the second clock
|
||
|
// cycle after the write if
|
||
|
// accessing GPIO via the APB memory
|
||
|
// aperture. If using AHB access@@
|
||
|
// the change is effective on the
|
||
|
// next clock cycle.
|
||
|
#define GPIO_GPIO_DR4R_DRV4_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DR8R register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DR8R_DRV8_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Output Pad
|
||
|
// 8-mA Drive Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// GPIO pin has 8-mA drive. The
|
||
|
// drive for the corresponding GPIO
|
||
|
// pin is controlled by the GPIODR2R
|
||
|
// or GPIODR4R register. 0 Setting a
|
||
|
// bit in either the GPIODR2
|
||
|
// register or the GPIODR4 register
|
||
|
// clears the corresponding 8-mA
|
||
|
// enable bit. The change is
|
||
|
// effective on the second clock
|
||
|
// cycle after the write if
|
||
|
// accessing GPIO via the APB memory
|
||
|
// aperture. If using AHB access@@
|
||
|
// the change is effective on the
|
||
|
// next clock cycle.
|
||
|
#define GPIO_GPIO_DR8R_DRV8_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_ODR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_ODR_ODE_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Output Pad
|
||
|
// Open Drain Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// pin is configured as open drain.
|
||
|
// 0 The corresponding pin is not
|
||
|
// configured as open drain.
|
||
|
#define GPIO_GPIO_ODR_ODE_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_PUR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PUR_PUE_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Pad Weak
|
||
|
// Pull-Up Enable Value Description
|
||
|
// 1 The corresponding pin has a
|
||
|
// weak pull-up resistor. 0 The
|
||
|
// corresponding pin is not
|
||
|
// affected. Setting a bit in the
|
||
|
// GPIOPDR register clears the
|
||
|
// corresponding bit in the GPIOPUR
|
||
|
// register. The change is effective
|
||
|
// on the second clock cycle after
|
||
|
// the write if accessing GPIO via
|
||
|
// the APB memory aperture. If using
|
||
|
// AHB access@@ the change is
|
||
|
// effective on the next clock
|
||
|
// cycle.
|
||
|
#define GPIO_GPIO_PUR_PUE_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_PDR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PDR_PDE_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Pad Weak
|
||
|
// Pull-Down Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// pin has a weak pull-down
|
||
|
// resistor. 0 The corresponding pin
|
||
|
// is not affected. Setting a bit in
|
||
|
// the GPIOPUR register clears the
|
||
|
// corresponding bit in the GPIOPDR
|
||
|
// register. The change is effective
|
||
|
// on the second clock cycle after
|
||
|
// the write if accessing GPIO via
|
||
|
// the APB memory aperture. If using
|
||
|
// AHB access@@ the change is
|
||
|
// effective on the next clock
|
||
|
// cycle.
|
||
|
#define GPIO_GPIO_PDR_PDE_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_SLR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_SLR_SRL_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Slew Rate
|
||
|
// Limit Enable (8-mA drive only)
|
||
|
// Value Description 1 Slew rate
|
||
|
// control is enabled for the
|
||
|
// corresponding pin. 0 Slew rate
|
||
|
// control is disabled for the
|
||
|
// corresponding pin.
|
||
|
#define GPIO_GPIO_SLR_SRL_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_DEN register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DEN_DEN_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Digital Enable
|
||
|
// Value Description 0 The digital
|
||
|
// functions for the corresponding
|
||
|
// pin are disabled. 1 The digital
|
||
|
// functions for the corresponding
|
||
|
// pin are enabled.
|
||
|
#define GPIO_GPIO_DEN_DEN_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_LOCK register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_LOCK_LOCK_M 0xFFFFFFFF // This register is not used in
|
||
|
// cc3xx. GPIO Lock A write of the
|
||
|
// value 0x4C4F.434B unlocks the
|
||
|
// GPIO Commit (GPIOCR) register for
|
||
|
// write access.A write of any other
|
||
|
// value or a write to the GPIOCR
|
||
|
// register reapplies the lock@@
|
||
|
// preventing any register updates.
|
||
|
// A read of this register returns
|
||
|
// the following values: Value
|
||
|
// Description 0x1 The GPIOCR
|
||
|
// register is locked and may not be
|
||
|
// modified. 0x0 The GPIOCR register
|
||
|
// is unlocked and may be modified.
|
||
|
#define GPIO_GPIO_LOCK_LOCK_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_CR register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_CR_CR_M 0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) GPIO Commit
|
||
|
// Value Description The
|
||
|
// corresponding GPIOAFSEL@@
|
||
|
// GPIOPUR@@ GPIOPDR@@ or GPIODEN
|
||
|
// bits can be written. 1 The
|
||
|
// corresponding GPIOAFSEL@@
|
||
|
// GPIOPUR@@ GPIOPDR@@ or GPIODEN
|
||
|
// bits cannot be written. 0 Note:
|
||
|
// The default register type for the
|
||
|
// GPIOCR register is RO for all
|
||
|
// GPIO pins with the exception of
|
||
|
// the NMI pin and the four JTAG/SWD
|
||
|
// pins (PD7@@ PF0@@ and PC[3:0]).
|
||
|
// These six pins are the only GPIOs
|
||
|
// that are protected by the GPIOCR
|
||
|
// register. Because of this@@ the
|
||
|
// register type for GPIO Port D7@@
|
||
|
// GPIO Port F0@@ and GPIO Port
|
||
|
// C[3:0] is R/W. The default reset
|
||
|
// value for the GPIOCR register is
|
||
|
// 0x0000.00FF for all GPIO pins@@
|
||
|
// with the exception of the NMI pin
|
||
|
// and the four JTAG/SWD pins (PD7@@
|
||
|
// PF0@@ and PC[3:0]). To ensure
|
||
|
// that the JTAG port is not
|
||
|
// accidentally programmed as GPIO
|
||
|
// pins@@ the PC[3:0] pins default
|
||
|
// to non-committable. Similarly@@
|
||
|
// to ensure that the NMI pin is not
|
||
|
// accidentally programmed as a GPIO
|
||
|
// pin@@ the PD7 and PF0 pins
|
||
|
// default to non-committable.
|
||
|
// Because of this@@ the default
|
||
|
// reset value of GPIOCR for GPIO
|
||
|
// Port C is 0x0000.00F0@@ for GPIO
|
||
|
// Port D is 0x0000.007F@@ and for
|
||
|
// GPIO Port F is 0x0000.00FE.
|
||
|
#define GPIO_GPIO_CR_CR_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_AMSEL register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_AMSEL_GPIO_AMSEL_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) GPIO Analog
|
||
|
// Mode Select Value Description 1
|
||
|
// The analog function of the pin is
|
||
|
// enabled@@ the isolation is
|
||
|
// disabled@@ and the pin is capable
|
||
|
// of analog functions. 0 The analog
|
||
|
// function of the pin is disabled@@
|
||
|
// the isolation is enabled@@ and
|
||
|
// the pin is capable of digital
|
||
|
// functions as specified by the
|
||
|
// other GPIO configuration
|
||
|
// registers. Note: This register
|
||
|
// and bits are only valid for GPIO
|
||
|
// signals that share analog
|
||
|
// function through a unified I/O
|
||
|
// pad. The reset state of this
|
||
|
// register is 0 for all signals.
|
||
|
|
||
|
#define GPIO_GPIO_AMSEL_GPIO_AMSEL_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_PCTL register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PCTL_PMC7_M 0xF0000000 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 7 This field controls the
|
||
|
// configuration for GPIO pin 7.
|
||
|
#define GPIO_GPIO_PCTL_PMC7_S 28
|
||
|
#define GPIO_GPIO_PCTL_PMC6_M 0x0F000000 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 6 This field controls the
|
||
|
// configuration for GPIO pin 6.
|
||
|
#define GPIO_GPIO_PCTL_PMC6_S 24
|
||
|
#define GPIO_GPIO_PCTL_PMC5_M 0x00F00000 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 5 This field controls the
|
||
|
// configuration for GPIO pin 5.
|
||
|
#define GPIO_GPIO_PCTL_PMC5_S 20
|
||
|
#define GPIO_GPIO_PCTL_PMC4_M 0x000F0000 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 4 This field controls the
|
||
|
// configuration for GPIO pin 4.
|
||
|
#define GPIO_GPIO_PCTL_PMC4_S 16
|
||
|
#define GPIO_GPIO_PCTL_PMC3_M 0x0000F000 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 43 This field controls
|
||
|
// the configuration for GPIO pin 3.
|
||
|
#define GPIO_GPIO_PCTL_PMC3_S 12
|
||
|
#define GPIO_GPIO_PCTL_PMC1_M 0x00000F00 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 1 This field controls the
|
||
|
// configuration for GPIO pin 1.
|
||
|
#define GPIO_GPIO_PCTL_PMC1_S 8
|
||
|
#define GPIO_GPIO_PCTL_PMC2_M 0x000000F0 // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 2 This field controls the
|
||
|
// configuration for GPIO pin 2.
|
||
|
#define GPIO_GPIO_PCTL_PMC2_S 4
|
||
|
#define GPIO_GPIO_PCTL_PMC0_M 0x0000000F // This register is not used in
|
||
|
// cc3xx. equivalant register exsist
|
||
|
// outside GPIO IP (refer
|
||
|
// PAD*_config register in the
|
||
|
// shared comn space) Port Mux
|
||
|
// Control 0 This field controls the
|
||
|
// configuration for GPIO pin 0.
|
||
|
#define GPIO_GPIO_PCTL_PMC0_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_ADCCTL register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_ADCCTL_ADCEN_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// cc3xx. ADC trigger via GPIO is
|
||
|
// not supported. ADC Trigger Enable
|
||
|
// Value Description 1 The
|
||
|
// corresponding pin is used to
|
||
|
// trigger the ADC. 0 The
|
||
|
// corresponding pin is not used to
|
||
|
// trigger the ADC.
|
||
|
|
||
|
#define GPIO_GPIO_ADCCTL_ADCEN_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_DMACTL register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_DMACTL_DMAEN_M \
|
||
|
0x000000FF // This register is not used in the
|
||
|
// cc3xx. Alternate register to
|
||
|
// support this feature is coded in
|
||
|
// the APPS_NWP_CMN space. refer
|
||
|
// register as offset 0x400F70D8
|
||
|
// ?DMA Trigger Enable Value
|
||
|
// Description 1 The corresponding
|
||
|
// pin is used to trigger the ?DMA.
|
||
|
// 0 The corresponding pin is not
|
||
|
// used to trigger the ?DMA.
|
||
|
|
||
|
#define GPIO_GPIO_DMACTL_DMAEN_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the GPIO_O_GPIO_SI register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_SI_SUM 0x00000001 // Summary Interrupt Value
|
||
|
// Description 1 Each pin has its
|
||
|
// own interrupt vector. 0 All port
|
||
|
// pin interrupts are OR'ed together
|
||
|
// to produce a summary interrupt.
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID4 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID4_PID4_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [7:0]
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID4_PID4_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID5 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID5_PID5_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [15:8]
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID5_PID5_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID6 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID6_PID6_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [23:16]
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID6_PID6_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID7 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID7_PID7_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [31:24]
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID7_PID7_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID0 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID0_PID0_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [7:0] Can be used by
|
||
|
// software to identify the presence
|
||
|
// of this peripheral.
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID0_PID0_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID1 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID1_PID1_M \
|
||
|
0x000000FF // GPIO Peripheral ID Register
|
||
|
// [15:8] Can be used by software to
|
||
|
// identify the presence of this
|
||
|
// peripheral.
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID1_PID1_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID2 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID2_PID2_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX.v GPIO Peripheral ID
|
||
|
// Register [23:16] Can be used by
|
||
|
// software to identify the presence
|
||
|
// of this peripheral.
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID2_PID2_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PERIPHID3 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PERIPHID3_PID3_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO Peripheral ID
|
||
|
// Register [31:24] Can be used by
|
||
|
// software to identify the presence
|
||
|
// of this peripheral.
|
||
|
|
||
|
#define GPIO_GPIO_PERIPHID3_PID3_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PCELLID0 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PCELLID0_CID0_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO PrimeCell ID Register
|
||
|
// [7:0] Provides software a
|
||
|
// standard cross-peripheral
|
||
|
// identification system.
|
||
|
|
||
|
#define GPIO_GPIO_PCELLID0_CID0_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PCELLID1 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PCELLID1_CID1_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO PrimeCell ID Register
|
||
|
// [15:8] Provides software a
|
||
|
// standard cross-peripheral
|
||
|
// identification system.
|
||
|
|
||
|
#define GPIO_GPIO_PCELLID1_CID1_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PCELLID2 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PCELLID2_CID2_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO PrimeCell ID Register
|
||
|
// [23:16] Provides software a
|
||
|
// standard cross-peripheral
|
||
|
// identification system.
|
||
|
|
||
|
#define GPIO_GPIO_PCELLID2_CID2_S 0
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// The following are defines for the bit fields in the
|
||
|
// GPIO_O_GPIO_PCELLID3 register.
|
||
|
//
|
||
|
//******************************************************************************
|
||
|
#define GPIO_GPIO_PCELLID3_CID3_M \
|
||
|
0x000000FF // This register is not used in
|
||
|
// CC3XX. GPIO PrimeCell ID Register
|
||
|
// [31:24] Provides software a
|
||
|
// standard cross-peripheral
|
||
|
// identification system.
|
||
|
|
||
|
#define GPIO_GPIO_PCELLID3_CID3_S 0
|
||
|
|
||
|
|
||
|
|
||
|
#endif // __HW_GPIO_H__
|