Skip to content

Commit

Permalink
drivers: interrupt_controller: Add driver for NXP's IRQ_STEER IP
Browse files Browse the repository at this point in the history
This commit introduces a new interrupt controller driver used
for NXP's IRQ_STEER IP.

Apart from introducing the driver itself, this commit contains
the following changes:
	1) Switch i.MX8MP to using the XTENSA core interrupt
	controller instead of the dummy irqsteer one.
		* this is required because the binding for the
		irqsteer driver is no longer a dummy one
		(since it's being used by the irqsteer driver).
		As such, to avoid having problems, switch to
		using another dummy binding.
	2) Modify the irqsteer dummy binding such that it
	serves the IRQ_STEER driver's needs.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
  • Loading branch information
LaurentiuM1234 committed Nov 15, 2023
1 parent 174b939 commit 1279402
Show file tree
Hide file tree
Showing 7 changed files with 581 additions and 16 deletions.
1 change: 1 addition & 0 deletions drivers/interrupt_controller/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ zephyr_library_sources_ifdef(CONFIG_NXP_S32_WKPU intc_wkpu_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_XMC4XXX_INTC intc_xmc4xxx.c)
zephyr_library_sources_ifdef(CONFIG_NXP_PINT intc_nxp_pint.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RA_ICU intc_ra_icu.c)
zephyr_library_sources_ifdef(CONFIG_NXP_IRQSTEER intc_nxp_irqsteer.c)

if(CONFIG_INTEL_VTD_ICTL)
zephyr_library_include_directories(${ZEPHYR_BASE}/arch/x86/include)
Expand Down
2 changes: 2 additions & 0 deletions drivers/interrupt_controller/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,6 @@ source "drivers/interrupt_controller/Kconfig.vim"

source "drivers/interrupt_controller/Kconfig.ra"

source "drivers/interrupt_controller/Kconfig.nxp_irqsteer"

endmenu
26 changes: 26 additions & 0 deletions drivers/interrupt_controller/Kconfig.nxp_irqsteer
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright 2023 NXP
# SPDX-License-Identifier: Apache-2.0

config NXP_IRQSTEER
bool "IRQ_STEER interrupt controller for NXP chips"
default y
depends on DT_HAS_NXP_IRQSTEER_INTC_ENABLED
depends on MULTI_LEVEL_INTERRUPTS
depends on XTENSA
help
The IRQSTEER INTC provides support for MUX-ing
multiple interrupts from peripheral to one or
more CPU interrupt lines. This is used for CPUs
such as XTENSA DSPs.

config NXP_IRQSTEER_ISR_THRESHOLD
int "Error threshold for a dispatcher's ISR"
default 5
depends on NXP_IRQSTEER
help
This config controls how many times a
dispatcher's ISR is allowed to iterate
over its assigned interrupt status register
before it can conclude that an interrupt
will get retriggered ad-infinitum (or at
least for an unacceptable number of times).
Loading

0 comments on commit 1279402

Please sign in to comment.