zephyr/drivers/gpio
Derek Hageman 4462069d74 drivers: gpio: sam0: Add interrupt support
This adds interrupt support to the SAM0 GPIO driver.  This is heavily
inspired by @nzmichaelh work in #5715.  The primary difference
from that implementation is that here the External Interrupt
Controller (EIC) is separated out into an interrupt controller driver
that is less tightly coupled to the GPIO API.  Instead it implements
more of a conversion from the EIC's own odd multiplexing to a more
traditional port and pin mask IRQ-like callback.  Unfortunately,
through the EIC on the SAMD2x are relatively well behaved
in terms of pin to EIC line mappings, other chips that share the
peripheral interface are not.  So the EIC driver implements a
per-line lookup to the pin and port pair using definitions extracted
from the ASF headers.

The EIC driver still makes some assumptions about how it will be used:
mostly it assumes exactly one callback per port.  This should be fine
as the only intended user is the GPIO driver itself.

This has been tested with some simple programs and with
tests/drivers/gpio/gpio_basic_api on a SAMD21 breakout and an
adafruit_trinket_m0 board.

Signed-off-by: Derek Hageman <hageman@inthat.cloud>
2019-05-07 08:43:56 -04:00
..
CMakeLists.txt soc: ti_simplelink: add support for TI CC13x2 / CC26x2 series 2019-05-04 09:13:43 -05:00
Kconfig soc: ti_simplelink: add support for TI CC13x2 / CC26x2 series 2019-05-04 09:13:43 -05:00
Kconfig.altera_nios2
Kconfig.atmel_sam3
Kconfig.cc13xx_cc26xx soc: ti_simplelink: add support for TI CC13x2 / CC26x2 series 2019-05-04 09:13:43 -05:00
Kconfig.cc32xx license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig.cc2650
Kconfig.cmsdk_ahb
Kconfig.dw
Kconfig.esp32
Kconfig.gecko
Kconfig.imx
Kconfig.intel
Kconfig.mcux
Kconfig.mcux_igpio
Kconfig.mcux_lpc
Kconfig.mmio32
Kconfig.nrfx
Kconfig.pcal9535a
Kconfig.qmsi
Kconfig.rv32m1
Kconfig.sam soc: sam0: Enable generic peripheral selection 2019-04-19 14:37:17 -05:00
Kconfig.sam0 soc: sam0: Enable generic peripheral selection 2019-04-19 14:37:17 -05:00
Kconfig.sch
Kconfig.sifive
Kconfig.stellaris
Kconfig.stm32
Kconfig.sx1509b
gpio_altera_nios2.c
gpio_atmel_sam3.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_cc13xx_cc26xx.c soc: ti_simplelink: add support for TI CC13x2 / CC26x2 series 2019-05-04 09:13:43 -05:00
gpio_cc32xx.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_cc2650.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_cmsdk_ahb.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_cmsdk_ahb.h
gpio_dw.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_dw.h
gpio_dw_registers.h
gpio_esp32.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_gecko.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_handlers.c
gpio_imx.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_intel_apl.c drivers/gpio/gpio_intel_apl: remove dependency on shared interrupts 2019-04-23 09:10:00 -07:00
gpio_mcux.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_mcux_igpio.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_mcux_lpc.c
gpio_mmio32.c
gpio_nrfx.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_pcal9535a.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_pcal9535a.h
gpio_qmsi.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_qmsi_ss.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_rv32m1.c gpio: rv32m1: enable GPIO port clocks 2019-04-17 10:40:37 -05:00
gpio_sam.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_sam0.c drivers: gpio: sam0: Add interrupt support 2019-05-07 08:43:56 -04:00
gpio_sch.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_sch.h
gpio_shell.c
gpio_sifive.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_stellaris.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_stm32.c gpio: Add stm32mp157c_dk2 board support 2019-04-26 02:56:20 -07:00
gpio_stm32.h gpio: Add stm32mp157c_dk2 board support 2019-04-26 02:56:20 -07:00
gpio_sx1509b.c drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00
gpio_utils.h drivers: Rename reserved function names 2019-04-03 17:31:00 -04:00