zephyr/include/drivers
Stephanos Ioannidis 50519ce7ba interrupt_controller: gic: Refactor GIC driver interface
The current Generic Interrupt Controller (GIC) driver makes use of the
multi-level interrupt mechanism and `irq_nextlevel` public interface.

This is a less-than-ideal implementation for the following reasons:

1. The GIC is often used as the main interrupt controller for the
  Cortex-A and Cortex-R family SoCs and, in this case, it is not a 2nd
  level interrupt controller; in fact, it is the root interrupt
  controller and therefore should be treated as such.

2. The only reason for using `irq_nextlevel` here is to interface the
  architecture implementation to the interrupt controller functions.
  Since there is no nesting or multiple instances of an interrupt
  controller involved, there is really no point in adding such an
  abstraction.

3. 2nd level topology adds many unnecessary abstractions and results
  in strange coding artefacts as well as performance penalty due to
  additional branching.

This commit refactors the GIC driver interface as follows:

1. Remove the current GIC driver interface based on the multi-level
  interrupt mechanism and the `irq_nextlevel` public interface.

2. Define the GIC driver interface in
  `include/drivers/interrupt_controller/gic.h` and allow the arch
  implementation to directly invoke this interface.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-03-13 09:59:59 +01:00
..
adc drivers: gpio: lmp90xxx: update to use new GPIO API 2020-02-05 12:00:36 +01:00
bluetooth drivers: bluetooth: Added EVT_DATA_BUF_OVERFLOW to bt_hci_evt_is_prio 2019-10-07 12:43:46 +03:00
clock_control drivers: clock_control: nrf: Switch to single clock device 2019-12-17 14:38:19 +01:00
console console: Remove deprecated function console_register_line_input 2019-09-18 19:14:25 -05:00
gpio drivers: gpio_mmio32: add support for pin validation 2020-02-05 12:00:36 +01:00
i2c/slave
ieee802154 drivers/ieee802154: Adapt cc1200 driver to new GPIO API 2020-02-05 12:00:36 +01:00
interrupt_controller interrupt_controller: gic: Refactor GIC driver interface 2020-03-13 09:59:59 +01:00
led doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
pcie drivers/pcie/shell: add basic probe for MSI-X capability 2019-06-10 10:52:02 -04:00
sensor drivers: sensor: ccs811: provide API to fetch configuration and versions 2020-01-14 15:44:09 -06:00
timer drivers: timer: Add per-core ARM architected timer 2020-02-01 08:08:43 -05:00
usb usb: Remove usb_dc_ep_set_callback return code 2019-04-28 12:22:23 -04:00
adc.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
can.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
clock_control.h drivers: clock_control: Add subsys argument to the callback 2020-02-05 17:07:01 +01:00
counter.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
display.h driver: display: Added BGR565 pixel format 2020-01-20 09:21:04 -06:00
dma.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
eeprom.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
entropy.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
espi.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
flash.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
gna.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
gpio.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
hwinfo.h doc: hwinfo: Clarify return values. 2020-02-27 21:14:54 +01:00
i2c.h drivers: i2c: Remove invalid syscalls 2020-03-12 19:52:01 +02:00
i2s.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
ipm.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
kscan.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
led_strip.h cleanup: include/: move led_strip.h to drivers/led_strip.h 2019-06-27 22:55:49 -04:00
led.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
lora.h include: drivers: lora: Added support for RSSI and SNR in the recv API 2020-01-28 17:28:26 -05:00
pinmux.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
ps2.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
pwm.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
sensor.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
spi.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
uart.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
video-controls.h drivers: Add video API 2019-10-25 15:13:53 -05:00
video.h doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
watchdog.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00