|
libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
|


Go to the source code of this file.
Macros | |
| #define | GPIOA GPIOA_BASE |
| #define | GPIOB GPIOB_BASE |
| #define | GPIOC GPIOC_BASE |
| #define | GPIOD GPIOD_BASE |
| #define | GPIOE GPIOE_BASE |
| #define | GPIOF GPIOF_BASE |
| #define | GPIOG GPIOG_BASE |
| #define | GPIOH GPIOH_BASE |
| #define | GPIOJ GPIOJ_BASE |
| #define | GPIOK GPIOK_BASE |
| #define | GPIOL GPIOL_BASE |
| #define | GPIOM GPIOM_BASE |
| #define | GPION GPION_BASE |
| #define | GPIOP GPIOP_BASE |
| #define | GPIOQ GPIOQ_BASE |
| #define | GPIO0 (1 << 0) |
| #define | GPIO1 (1 << 1) |
| #define | GPIO2 (1 << 2) |
| #define | GPIO3 (1 << 3) |
| #define | GPIO4 (1 << 4) |
| #define | GPIO5 (1 << 5) |
| #define | GPIO6 (1 << 6) |
| #define | GPIO7 (1 << 7) |
| #define | GPIO_ALL 0xff |
| #define | GPIO_DATA(port) (&MMIO32((port) + 0x000)) |
| #define | GPIO_DIR(port) MMIO32((port) + 0x400) |
| #define | GPIO_IS(port) MMIO32((port) + 0x404) |
| #define | GPIO_IBE(port) MMIO32((port) + 0x408) |
| #define | GPIO_IEV(port) MMIO32((port) + 0x40c) |
| #define | GPIO_IM(port) MMIO32((port) + 0x410) |
| #define | GPIO_RIS(port) MMIO32((port) + 0x414) |
| #define | GPIO_MIS(port) MMIO32((port) + 0x418) |
| #define | GPIO_ICR(port) MMIO32((port) + 0x41c) |
| #define | GPIO_AFSEL(port) MMIO32((port) + 0x420) |
| #define | GPIO_DR2R(port) MMIO32((port) + 0x500) |
| #define | GPIO_DR4R(port) MMIO32((port) + 0x504) |
| #define | GPIO_DR8R(port) MMIO32((port) + 0x508) |
| #define | GPIO_ODR(port) MMIO32((port) + 0x50c) |
| #define | GPIO_PUR(port) MMIO32((port) + 0x510) |
| #define | GPIO_PDR(port) MMIO32((port) + 0x514) |
| #define | GPIO_SLR(port) MMIO32((port) + 0x518) |
| #define | GPIO_DEN(port) MMIO32((port) + 0x51c) |
| #define | GPIO_LOCK(port) MMIO32((port) + 0x520) |
| #define | GPIO_CR(port) MMIO32((port) + 0x524) |
| #define | GPIO_AMSEL(port) MMIO32((port) + 0x528) |
| #define | GPIO_PCTL(port) MMIO32((port) + 0x52C) |
| #define | GPIO_ADCCTL(port) MMIO32((port) + 0x530) |
| #define | GPIO_DMACTL(port) MMIO32((port) + 0x534) |
| #define | GPIO_PERIPH_ID4(port) MMIO32((port) + 0xFD0) |
| #define | GPIO_PERIPH_ID5(port) MMIO32((port) + 0xFD4) |
| #define | GPIO_PERIPH_ID6(port) MMIO32((port) + 0xFD8) |
| #define | GPIO_PERIPH_ID7(port) MMIO32((port) + 0xFDC) |
| #define | GPIO_PERIPH_ID0(port) MMIO32((port) + 0xFE0) |
| #define | GPIO_PERIPH_ID1(port) MMIO32((port) + 0xFE4) |
| #define | GPIO_PERIPH_ID2(port) MMIO32((port) + 0xFE8) |
| #define | GPIO_PERIPH_ID3(port) MMIO32((port) + 0xFEC) |
| #define | GPIO_PCELL_ID0(port) MMIO32((port) + 0xFF0) |
| #define | GPIO_PCELL_ID1(port) MMIO32((port) + 0xFF4) |
| #define | GPIO_PCELL_ID2(port) MMIO32((port) + 0xFF8) |
| #define | GPIO_PCELL_ID3(port) MMIO32((port) + 0xFFC) |
Enumerations | |
| enum | gpio_mode { GPIO_MODE_OUTPUT , GPIO_MODE_INPUT , GPIO_MODE_ANALOG } |
| enum | gpio_pullup { GPIO_PUPD_NONE , GPIO_PUPD_PULLUP , GPIO_PUPD_PULLDOWN } |
| enum | gpio_output_type { GPIO_OTYPE_PP , GPIO_OTYPE_OD } |
| enum | gpio_drive_strength { GPIO_DRIVE_2MA , GPIO_DRIVE_4MA , GPIO_DRIVE_8MA , GPIO_DRIVE_8MA_SLEW_CTL } |
| enum | gpio_trigger { GPIO_TRIG_LVL_LOW , GPIO_TRIG_LVL_HIGH , GPIO_TRIG_EDGE_FALL , GPIO_TRIG_EDGE_RISE , GPIO_TRIG_EDGE_BOTH } |
Functions | |
| void | gpio_enable_ahb_aperture (void) |
| Enable access to GPIO registers via the AHB aperture. More... | |
| void | gpio_mode_setup (uint32_t gpioport, enum gpio_mode mode, enum gpio_pullup pullup, uint8_t gpios) |
| Configure a group of pins. More... | |
| void | gpio_set_output_config (uint32_t gpioport, enum gpio_output_type otype, enum gpio_drive_strength drive, uint8_t gpios) |
| Configure output parameters of a group of pins. More... | |
| void | gpio_set_af (uint32_t gpioport, uint8_t alt_func_num, uint8_t gpios) |
| Multiplex group of pins to the given alternate function. More... | |
| void | gpio_toggle (uint32_t gpioport, uint8_t gpios) |
| Toggle a Group of Pins. More... | |
| void | gpio_unlock_commit (uint32_t gpioport, uint8_t gpios) |
| Unlock the commit control of a special function pin. More... | |
| void | gpio_configure_trigger (uint32_t gpioport, enum gpio_trigger trigger, uint8_t gpios) |
| Configure the interrupt trigger on the given GPIO pins. More... | |
| void | gpio_enable_interrupts (uint32_t gpioport, uint8_t gpios) |
| Enable interrupts on specified GPIO pins. More... | |
| void | gpio_disable_interrupts (uint32_t gpioport, uint8_t gpios) |
| Disable interrupts on specified GPIO pins. More... | |
| static uint8_t | gpio_read (uint32_t gpioport, uint8_t gpios) |
| Get status of a Group of Pins (atomic) More... | |
| static void | gpio_write (uint32_t gpioport, uint8_t gpios, uint8_t data) |
| Set level of a Group of Pins (atomic) More... | |
| static void | gpio_set (uint32_t gpioport, uint8_t gpios) |
| Set a Group of Pins (atomic) More... | |
| static void | gpio_clear (uint32_t gpioport, uint8_t gpios) |
| Clear a Group of Pins (atomic) More... | |
| static uint8_t | gpio_port_read (uint32_t gpioport) |
| Read level of all pins from a port (atomic) More... | |
| static void | gpio_port_write (uint32_t gpioport, uint8_t data) |
| Set level of of all pins from a port (atomic) More... | |
| static bool | gpio_is_interrupt_source (uint32_t gpioport, uint8_t srcpins) |
| Determine if interrupt is generated by the given pin. More... | |
| static void | gpio_clear_interrupt_flag (uint32_t gpioport, uint8_t gpios) |
| Mark interrupt as serviced. More... | |