zephyr/drivers
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
..
adc
audio
auxdisplay
bbram
bluetooth
cache
can
charger
clock_control uart: esp32: Fixing garbage characters on mcuboot 2024-10-10 20:22:54 -04:00
comparator drivers: comparator: add fake comparator 2024-10-10 20:24:52 -04:00
console
coredump
counter
crypto
dac
dai drivers: dai: sai: disable IRQs when not needed 2024-10-11 09:27:57 +02:00
disk
display
dma drivers: dma: dma_nxp_edma: disable IRQs when not needed 2024-10-11 09:27:57 +02:00
dp
edac
eeprom
entropy
espi ec_host_cmd: Fix generating multiple Port80 notifications 2024-10-10 20:24:06 -04:00
ethernet
firmware
flash dts: nxp: Rename nxp,iap-msf1 to nxp,msf1 2024-10-09 18:23:39 +01:00
fpga
fuel_gauge
gnss
gpio
haptics
hwinfo
hwspinlock
i2c
i2s
i3c drivers: i3c: cdns: fixup attachment and addr assignment for daa 2024-10-10 20:22:01 -04:00
ieee802154
input drivers: input: ili2132a: add support for ili2132a touch controller 2024-10-09 13:46:14 +02:00
interrupt_controller drivers: intc: irqstr: add PM support 2024-10-11 09:27:57 +02:00
ipm
kscan
led
led_strip
lora
mbox
mdio
memc
mfd
mipi_dbi drivers: mipi_dbi: update macro to get address 2024-10-10 14:57:58 -04:00
mipi_dsi
misc
mm
modem
mspi
net
pcie
peci
pinctrl
pm_cpu_ops
power_domain drivers: power_domain: add driver for NXP's SCU-managed PDs 2024-10-11 09:27:57 +02:00
ps2
ptp_clock
pwm drivers: pwm: rpi_pico: Configuring the divide ratio adaptively 2024-10-10 10:07:47 +02:00
regulator
reset
retained_mem
rtc Verification: verify code changes from PR review 2024-10-09 13:46:56 +02:00
sdhc
sensor drivers: sensor: mcux_acmp: update dts binding and adapt driver 2024-10-10 20:24:52 -04:00
serial
sip_svc
smbus
spi drivers: spi_mcux_lpspi: clang-format 2024-10-10 10:07:55 +02:00
stepper shell: stepper: add further stepper signals to shell 2024-10-09 18:24:08 +01:00
syscon
tee
timer
usb
usb_c
video include: drivers: video: Remove unused video-controls header 2024-10-11 09:27:38 +02:00
virtualization
w1
watchdog
wifi drivers: nrfwifi: Fix random MAC address setting 2024-10-10 14:57:27 -04:00
xen
CMakeLists.txt drivers: comparator: Add initial files 2024-10-10 20:24:52 -04:00
Kconfig drivers: comparator: Add initial files 2024-10-10 20:24:52 -04:00