cc2538_gpio.h¶
Driver for the cc2538 GPIO controller.
Header file with register and macro declarations for the cc2538 GPIO module
-
enum
@9
¶ - PORT_A
= 0
- PORT_B
= 1
- PORT_C
= 2
- PORT_D
= 3
- PORT_A
-
enum
@10
¶ - GPIO_PA0
= GPIO_PXX_TO_NUM(PORT_A, 0)
- PA0.
- GPIO_PA1
= GPIO_PXX_TO_NUM(PORT_A, 1)
- PA1.
- GPIO_PA2
= GPIO_PXX_TO_NUM(PORT_A, 2)
- PA2.
- GPIO_PA3
= GPIO_PXX_TO_NUM(PORT_A, 3)
- PA3.
- GPIO_PA4
= GPIO_PXX_TO_NUM(PORT_A, 4)
- PA4.
- GPIO_PA5
= GPIO_PXX_TO_NUM(PORT_A, 5)
- PA5.
- GPIO_PA6
= GPIO_PXX_TO_NUM(PORT_A, 6)
- PA6.
- GPIO_PA7
= GPIO_PXX_TO_NUM(PORT_A, 7)
- PA7.
- GPIO_PB0
= GPIO_PXX_TO_NUM(PORT_B, 0)
- PB0.
- GPIO_PB1
= GPIO_PXX_TO_NUM(PORT_B, 1)
- PB1.
- GPIO_PB2
= GPIO_PXX_TO_NUM(PORT_B, 2)
- PB2.
- GPIO_PB3
= GPIO_PXX_TO_NUM(PORT_B, 3)
- PB3.
- GPIO_PB4
= GPIO_PXX_TO_NUM(PORT_B, 4)
- PB4.
- GPIO_PB5
= GPIO_PXX_TO_NUM(PORT_B, 5)
- PB5.
- GPIO_PB6
= GPIO_PXX_TO_NUM(PORT_B, 6)
- PB6.
- GPIO_PB7
= GPIO_PXX_TO_NUM(PORT_B, 7)
- PB7.
- GPIO_PC0
= GPIO_PXX_TO_NUM(PORT_C, 0)
- PC0.
- GPIO_PC1
= GPIO_PXX_TO_NUM(PORT_C, 1)
- PC1.
- GPIO_PC2
= GPIO_PXX_TO_NUM(PORT_C, 2)
- PC2.
- GPIO_PC3
= GPIO_PXX_TO_NUM(PORT_C, 3)
- PC3.
- GPIO_PC4
= GPIO_PXX_TO_NUM(PORT_C, 4)
- PC4.
- GPIO_PC5
= GPIO_PXX_TO_NUM(PORT_C, 5)
- PC5.
- GPIO_PC6
= GPIO_PXX_TO_NUM(PORT_C, 6)
- PC6.
- GPIO_PC7
= GPIO_PXX_TO_NUM(PORT_C, 7)
- PC7.
- GPIO_PD0
= GPIO_PXX_TO_NUM(PORT_D, 0)
- PD0.
- GPIO_PD1
= GPIO_PXX_TO_NUM(PORT_D, 1)
- PD1.
- GPIO_PD2
= GPIO_PXX_TO_NUM(PORT_D, 2)
- PD2.
- GPIO_PD3
= GPIO_PXX_TO_NUM(PORT_D, 3)
- PD3.
- GPIO_PD4
= GPIO_PXX_TO_NUM(PORT_D, 4)
- PD4.
- GPIO_PD5
= GPIO_PXX_TO_NUM(PORT_D, 5)
- PD5.
- GPIO_PD6
= GPIO_PXX_TO_NUM(PORT_D, 6)
- PD6.
- GPIO_PD7
= GPIO_PXX_TO_NUM(PORT_D, 7)
- PD7.
- GPIO_PA0
-
GPIO_PORTNUM_SHIFT
¶ bit shift for GPIO port
1
(12U)
-
GPIO_PORTNUM_MASK
¶ bit mask for GPIO port [0-3]
1
(0x00007000)
-
GPIO_PIN_MASK
¶ bit mask for GPIO pin [0-7]
1
(0x00000007)
-
GPIO_PORT_MASK
¶ bit mask for GPIO port addr
1
(0xfffff000)
-
GPIO_A
¶ GPIO Port A instance.
1
((cc2538_gpio_t *)0x400d9000)
-
GPIO_B
¶ GPIO Port B instance.
1
((cc2538_gpio_t *)0x400da000)
-
GPIO_C
¶ GPIO Port C instance.
1
((cc2538_gpio_t *)0x400db000)
-
GPIO_D
¶ GPIO Port D instance.
1
((cc2538_gpio_t *)0x400dc000)
-
enum
cc2538_ioc_sel_t
¶ - UART0_TXD
= 0
- UART0 TXD.
- UART1_RTS
- UART1 RTS.
- UART1_TXD
- UART1 TXD.
- SSI0_TXD
- SSI0 TXD.
- SSI0_CLK_OUT
- SSI0 CLKOUT.
- SSI0_FSS_OUT
- SSI0 FSSOUT.
- SSI0_TX_SER
- SSI0 STXSER EN.
- SSI1_TXD
- SSI1 TXD.
- SSI1_CLK_OUT
- SSI1 CLKOUT.
- SSI1_FSS_OUT
- SSI1 FSSOUT.
- SSI1_TX_SER
- SSI1 STXSER EN.
- I2C_SDA_OUT
- I2C CMSSDA.
- I2C_SCL_OUT
- I2C CMSSCL.
- GPT0_ICP1
- GPT0 ICP1.
- GPT0_ICP2
- GPT0 ICP2.
- GPT1_ICP1
- GPT1 ICP1.
- GPT1_ICP2
- GPT1 ICP2.
- GPT2_ICP1
- GPT2 ICP1.
- GPT2_ICP2
- GPT2 ICP2.
- GPT3_ICP1
- GPT3 ICP1.
- GPT3_ICP2
- GPT3 ICP2.
- UART0_TXD
-
enum
cc2538_ioc_pin_t
¶ - UART0_RXD
= 0
- UART0 RXD.
- UART1_CTS
- UART1 CTS.
- UART1_RXD
- UART1 RXD.
- SSI0_CLK
- SSI0 CLK.
- SSI0_RXD
- SSI0 RXD.
- SSI0_FSS_IN
- SSI0 FSS IN.
- SSI0_CLK_IN
- SSI0 CLK IN.
- SSI1_CLK
- SSI1 CLK.
- SSI1_RXD
- SSI1 RXD.
- SSI1_FSS_IN
- SSI1 FSS IN.
- SSI1_CLK_IN
- SSI1 CLK IN.
- I2C_SDA_IN
- I2C SDA IN.
- I2C_SCL_IN
- I2C SCL IN.
- GPT0_OCP1
- GPT0 OCP1.
- GPT0_OCP2
- GPT0 OCP2.
- GPT1_OCP1
- GPT1 OCP1.
- GPT1_OCP2
- GPT1 OCP2.
- GPT2_OCP1
- GPT2 OCP1.
- GPT2_OCP2
- GPT2 OCP2.
- GPT3_OCP1
- GPT3 OCP1.
- GPT3_OCP2
- GPT3 OCP2.
- UART0_RXD
-
IOC_OVERRIDE_OE
¶ Output Enable.
1
0x00000008
-
IOC_OVERRIDE_PUE
¶ Pull Up Enable.
1
0x00000004
-
IOC_OVERRIDE_PDE
¶ Pull Down Enable.
1
0x00000002
-
IOC_OVERRIDE_ANA
¶ Analog Enable.
1
0x00000001
-
IOC_OVERRIDE_DIS
¶ Override Disabled.
1
0x00000000
-
IOC_PXX_OVER
¶ 1
(IOC->OVER)
-
IOC_PXX_SEL
¶ 1
(IOC->SEL)
-
GPIO_PORT_SHIFT
¶ Right-shift amount to obtain the port number from a GPIO number.
1
3
-
GPIO_BITS_PER_PORT
¶ Number of bits per GPIO port (8)
1
( 1 << GPIO_PORT_SHIFT )
-
GPIO_BIT_MASK
¶ Mask to obtain the bit number from a GPIO number.
1
( GPIO_BITS_PER_PORT - 1 )
-
PIN_MASK
( n)¶ Generate a bit mask in which only the specified bit is high.
1
( 1 << (n) )
Parameters
n: Number of the bit to set high in the mask. Return values
- A bit mask in which bit n is high.
-
GPIO_NUM_TO_PORT_NUM
( gpio_num)¶ Extract the GPIO port number (0-3) from a GPIO number (0-31)
1
( (gpio_num) >> GPIO_PORT_SHIFT )
Parameters
gpio_num: GPIO number (0-31) Return values
- Corresponding GPIO port number (0-3)
-
GPIO_BIT_NUM
( gpio_num)¶ Extract the GPIO port bit number (0-7) from a GPIO number (0-31)
1
( (gpio_num) & GPIO_BIT_MASK )
Parameters
gpio_num: GPIO number (0-31) Return values
- Corresponding GPIO port bit number (0-7)
-
GPIO_PXX_TO_NUM
( port_num, bit_num)¶ Generate a GPIO number given a port and bit number.
1
( ((port_num) << GPIO_PORT_SHIFT) | (bit_num) )
Parameters
port_num: GPIO port (PORT_A, PORT_B, PORT_C, or PORT_D) bit_num: GPIO bit number (0-7) Return values
- Corresponding GPIO number (0-31)
-
GPIO_NUM_TO_DEV
( gpio_num)¶ Obtain the GPIO port instance given a GPIO number (0-31)
1
( GPIO_A + GPIO_NUM_TO_PORT_NUM(gpio_num) )
Parameters
gpio_num: GPIO number (0-31) Return values
- Corresponding GPIO port instance
-
gpio_hardware_control
( gpio_num)¶ Enable hardware (peripheral) control for a given GPIO pin number.
1
( GPIO_NUM_TO_DEV(gpio_num)->AFSEL |= PIN_MASK(GPIO_BIT_NUM(gpio_num)) )
Parameters
gpio_num: GPIO number (0-31)
-
gpio_software_control
( gpio_num)¶ Enable software control for a given GPIO pin number.
1
( GPIO_NUM_TO_DEV(gpio_num)->AFSEL &= ~PIN_MASK(GPIO_BIT_NUM(gpio_num)) )
Parameters
gpio_num: GPIO number (0-31)
-
gpio_dir_output
( gpio_num)¶ Configure the given GPIO as an output.
1
( GPIO_NUM_TO_DEV(gpio_num)->DIR |= PIN_MASK(GPIO_BIT_NUM(gpio_num)) )
Parameters
gpio_num: GPIO number (0-31)
-
gpio_dir_input
( gpio_num)¶ Configure the given GPIO as an input.
1
( GPIO_NUM_TO_DEV(gpio_num)->DIR &= ~PIN_MASK(GPIO_BIT_NUM(gpio_num)) )
Parameters
gpio_num: GPIO number (0-31)
-
cc2538_gpio_read
( gpio_num)¶ Read the value of the given pin.
1
( (GPIO_NUM_TO_DEV(gpio_num)->DATA >> GPIO_BIT_NUM(gpio_num)) & 1 )
Parameters
gpio_num: GPIO number (0-31)
-
cc2538_gpio_clear
( gpio_num)¶ Set a specific GPIO output pin low.
1
( GPIO_NUM_TO_DEV(gpio_num)->DATA &= ~PIN_MASK(GPIO_BIT_NUM(gpio_num)) )
Parameters
gpio_num: GPIO number (0-31)
-
GPIO_BASE
¶ GPIO port instance base address.
1
(0x400d9000)
-
IOC
¶ IOC instance definition.
1
((cc2538_ioc_t *)0x400d4000)
-
enum
cc2538_ioc_over_t
¶ - OVERRIDE_DISABLE
= 0x0
- OVERRIDE_ANALOG
= 0x1
- OVERRIDE_PULLDOWN
= 0x2
- OVERRIDE_PULLUP
= 0x4
- OVERRIDE_ENABLE
= 0x8
- OVERRIDE_DISABLE
-
struct
cc2538_gpio_t
¶ GPIO port component registers.
-
cc2538.h::cc2538_reg_t
RESERVED1
()¶ Reserved addresses.
-
cc2538.h::cc2538_reg_t
DATA
¶ GPIO_A Data Register.
-
cc2538.h::cc2538_reg_t
DIR
¶ GPIO_A data direction register.
-
cc2538.h::cc2538_reg_t
IS
¶ GPIO_A Interrupt Sense register.
-
cc2538.h::cc2538_reg_t
IBE
¶ GPIO_A Interrupt Both-Edges register.
-
cc2538.h::cc2538_reg_t
IEV
¶ GPIO_A Interrupt Event Register.
-
cc2538.h::cc2538_reg_t
IE
¶ GPIO_A Interrupt mask register.
-
cc2538.h::cc2538_reg_t
RIS
¶ GPIO_A Raw Interrupt Status register.
-
cc2538.h::cc2538_reg_t
MIS
¶ GPIO_A Masked Interrupt Status register.
-
cc2538.h::cc2538_reg_t
IC
¶ GPIO_A Interrupt Clear register.
-
cc2538.h::cc2538_reg_t
AFSEL
¶ GPIO_A Alternate Function / mode control select register.
-
cc2538.h::cc2538_reg_t
RESERVED2
()¶ Reserved addresses.
-
cc2538.h::cc2538_reg_t
GPIOLOCK
¶ GPIO_A Lock register.
-
cc2538.h::cc2538_reg_t
GPIOCR
¶ GPIO_A Commit Register.
-
cc2538.h::cc2538_reg_t
RESERVED3
()¶ Reserved addresses.
-
cc2538.h::cc2538_reg_t
PMUX
¶ GPIO_A The PMUX register.
-
cc2538.h::cc2538_reg_t
P_EDGE_CTRL
¶ GPIO_A The Port Edge Control register.
-
cc2538.h::cc2538_reg_t
RESERVED4
()¶ Reserved addresses.
-
cc2538.h::cc2538_reg_t
PI_IEN
¶ GPIO_A The Power-up Interrupt Enable register.
-
cc2538.h::cc2538_reg_t
RESERVED5
()¶ Reserved addresses.
-
cc2538.h::cc2538_reg_t
IRQ_DETECT_ACK
¶ GPIO_A IRQ Detect ACK register.
-
cc2538.h::cc2538_reg_t
USB_IRQ_ACK
¶ GPIO_A IRQ Detect ACK for USB.
-
cc2538.h::cc2538_reg_t
IRQ_DETECT_UNMASK
¶ GPIO_A IRQ Detect ACK for masked interrupts.
-
cc2538.h::cc2538_reg_t
RESERVED6
()¶ Reserved addresses.
-