zephyr/drivers/interrupt_controller
Laurentiu Mihalcea 202794273d drivers: intc: irqstr: add PM support
Add support for PM. The strategy is as follows:

	1) For level 1 interrupts: don't care, these don't
	require the PM domain of irqsteer to be turned on
	since they are, well, direct.

	2) For level 2 interrupts: use the reference count
	of the dispatchers.

Upon doing a get() on a dispatcher with its reference count
set to 0, before enabling the IRQ (meaning accessing the
reg. space) increment the reference count of the irqstr device
(which will result in the PM domain being enabled if 0).

Upon doin a put() on a dispatcher with its reference count
set to 1, after disabling the IRQ (meaning accessing the
reg. space) decrement the reference count of the irqstr device
(which will result in the PM domain being disabled if 0).

In summary, the PM domain of the device will be enabled if
at least one dispatcher is in use. On the other hand, the
PM domain of the device will be disabled if there's no
dispatchers in use (assuming there's no other dependencies).

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-10-11 09:27:57 +02:00
..
CMakeLists.txt drivers: intc: add STM32WB0 GPIO interrupt controller 2024-09-12 10:03:37 +02:00
intc_arcv2_irq_unit.c
intc_cavs.c
intc_cavs.h
intc_dw_ace.c
intc_dw.c
intc_dw.h
intc_eirq_nxp_s32.c drivers: nxp: convert SIUL2 drivers to native 2024-07-31 10:08:24 +02:00
intc_esp32.c
intc_esp32c3.c drivers: intc: esp32c2: Added support 2024-08-16 14:08:22 -04:00
intc_exti_stm32.c drivers: intc: stm32: correct inconsistent parameter names 2024-10-07 17:12:34 +01:00
intc_gd32_exti.c
intc_gic_common_priv.h
intc_gic.c drivers: intc: gic: implement set pending interrupt 2024-08-12 15:54:42 +02:00
intc_gicv3_its.c
intc_gicv3_priv.h
intc_gicv3.c arm/gicv3: set routing affinity before enable IRQ 2024-09-04 09:53:04 +02:00
intc_gpio_stm32wb0.c drivers: intc: stm32: correct inconsistent parameter names 2024-10-07 17:12:34 +01:00
intc_intel_vtd.c
intc_intel_vtd.h
intc_ioapic_priv.h
intc_ioapic.c
intc_irqmp.c
intc_ite_it8xxx2_v2.c Revert "drivers/interrupt: it8xxx2: Register interrupt number 0 to handle" 2024-08-28 06:49:36 -04:00
intc_ite_it8xxx2.c Revert "drivers/interrupt: it8xxx2: Register interrupt number 0 to handle" 2024-08-28 06:49:36 -04:00
intc_ite_it8xxx2.h
intc_loapic_spurious.S
intc_loapic.c
intc_mchp_ecia_xec.c zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY 2024-10-03 17:06:52 +01:00
intc_miwu.c
intc_mtk_adsp.c
intc_nrfx_clic.c
intc_nrfx_clic.S
intc_nuclei_eclic.c drivers: interrupt_controller: nuclei_eclic: always use clic common entry 2024-08-26 17:05:53 +02:00
intc_nuclei_eclic.S drivers: interrupt_controller: nuclei_eclic: always use clic common entry 2024-08-26 17:05:53 +02:00
intc_nxp_irqsteer.c drivers: intc: irqstr: add PM support 2024-10-11 09:27:57 +02:00
intc_nxp_pint.c
intc_plic.c drivers: intc: plic: convert trigger type to use Kconfig 2024-10-09 09:41:50 +02:00
intc_renesas_ra_icu.c
intc_rv32m1_intmux.c
intc_sam0_eic_priv.h
intc_sam0_eic.c
intc_shared_irq.c drivers: intc: shared_irq: change init and isr function to static 2024-09-19 18:28:58 +01:00
intc_swerv_pic.c style: drivers: comply with MISRA C:2012 Rule 15.6 2024-08-20 10:33:51 +02:00
intc_system_apic.c
intc_vexriscv_litex.c drivers: intc: litex: add helper for interrupts 2024-08-01 08:59:37 +01:00
intc_vim.c
intc_wkpu_nxp_s32.c drivers: intc: nxp: convert wkpu to native driver 2024-08-02 15:14:33 -05:00
intc_xmc4xxx.c
Kconfig
Kconfig.cavs
Kconfig.clic drivers: interrupt_controller: nuclei_eclic: always use clic common entry 2024-08-26 17:05:53 +02:00
Kconfig.dw
Kconfig.esp32 drivers: intc: esp32c2: Added support 2024-08-16 14:08:22 -04:00
Kconfig.esp32c3 drivers: intc: esp32c2: Added support 2024-08-16 14:08:22 -04:00
Kconfig.gd32_exti
Kconfig.gic drivers: interrupt controller: update GIC Kconfigs 2024-06-18 14:33:58 -04:00
Kconfig.intel_vtd
Kconfig.it8xxx2
Kconfig.loapic
Kconfig.mtk_adsp
Kconfig.multilevel
Kconfig.multilevel.aggregator_template
Kconfig.npcx
Kconfig.nxp_irqsteer
Kconfig.nxp_pint
Kconfig.nxp_s32 drivers: intc: nxp: convert wkpu to native driver 2024-08-02 15:14:33 -05:00
Kconfig.plic drivers: intc: plic: convert trigger type to use Kconfig 2024-10-09 09:41:50 +02:00
Kconfig.renesas_ra drivers: interrupt_controller: renesas_ra: Enable GEN_ISR_TABLES explicitly 2024-06-20 12:57:54 +02:00
Kconfig.rv32m1
Kconfig.sam0
Kconfig.shared_irq
Kconfig.stm32 drivers: intc: add STM32WB0 GPIO interrupt controller 2024-09-12 10:03:37 +02:00
Kconfig.vim
Kconfig.xec
Kconfig.xmc4xxx
wuc_ite_it8xxx2.c