789 Commits

Author SHA1 Message Date
Daniel Leung
1dae40fa2e soc: rename CONFIG_INTEL_CAVS_V25 to CONFIG_SOC_CAVSV25
Just following the guideline.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-01-20 20:09:40 -05:00
Nhut Nguyen
2537ee030a drivers: intc: renesas: Update external interrupt of RZ family
Added a condition to check trigger type as high-level detection is not
supported by Renesas RZ external interrupt.

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2026-01-20 13:25:13 +00:00
Nhut Nguyen
982231a8fe drivers: intc: renesas: Add gpio interrupt (tint) for RZ family
Add support for gpio interrupt (tint) for Renesas RZ familiy.

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2026-01-20 13:25:13 +00:00
Amneesh Singh
70ca335986 drivers: intc: vim: disable all interrupts at init
Disable all interrupts when the VIM interrupt controller is initialized so
that it doesn't encounter any stray interrupts that were not enabled on
Zephyr.

Signed-off-by: Amneesh Singh <amneesh@ti.com>
2026-01-08 21:18:38 +01:00
Biwen Li
ce50e46a90 drivers: intc: irqsteer: Drop calling into NXP HAL
Supporting irqsteer using NXP HAL becomes increasingly harder with new
SoCs.

For example now there are two incompatible HAL drivers for IRQ steer
(mcux-sdk-ng/drivers/irqsteer and mcux-sdk-ng/drivers/irqsteer_1).

In order to avoid overcomplicating code and better scaling code for
newer SoCs just drop using the NXP HAL and implement an IRQ Steer native
Zephyr driver

Use irqsteer node of imx943 as example.

New features:
- Support multiple irqsteer instances.
- Indroduce new properties(nxp,irq-offset, nxp,num-irqs).

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2025-12-24 12:51:21 -05:00
Dat Nguyen Duy
377922dfcf drivers: add initial support for NXP S32K566
Initial support for NXP S32K566 M7 & R52: Clock,
Pin control, GPIO and Uart

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2025-12-23 15:18:17 +01:00
Jason Yu
bba3582b8d drivers: interrupt: pint: Add API to get pin used IRQ slot
PINT connects GPIO pin to seperate IRQ slot. This info is
hidden in PINT driver, there is no way to know which IRQ
actually the GPIO pin is connected to.
Add new API to get which IRQ slot is connected to, based on
pin index.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2025-12-17 13:58:56 -05:00
Sylvio Alves
f8d2e00a0e includes: remove duplicated entries in zephyr-tree
Remove duplicated #include directives within the same
preprocessor scope across the Zephyr tree.

Duplicates inside different #ifdef branches are preserved
as they may be intentional.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-12-17 13:57:38 -05:00
Markus Becker
80d09acfca drivers: Typo in Interrupt
Trivial typo fix.

Signed-off-by: Markus Becker <Markus.Becker@tridonic.com>
2025-12-09 11:11:03 +01:00
Guowei Li
83cfbc634f drivers: intc: gicv3: add ARM AArch32 affinity comparison
This commit introduces a new comparison for the ARM (AArch32) architecture
in the GICv3 interrupt controller.
It specifically compares the lower 24 bits of the affinity values,
because there is no aff3 in AArch32 or Arm-v7.

Signed-off-by: Guowei Li <15035660024@163.com>
2025-12-06 11:39:38 -05:00
Erwan Gouriou
6b6018e969 drivers: interrupt_controller: stm32: Fix discontinuous index in n6/mp1x
Similarly to what was present on L0, GPIO port indexes are not continuous
in EXTI configuration register and a dedicated treatment is required.
Deal with it case by case.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-11-26 12:11:48 -05:00
Mihira Madhava Bollapragada
adf1c8c693 drivers: intc: change the VIM kconfig to TI_VIM
VIM is a vector interrupt manager that TI devices have and is used a
interrupt controller. the driver's Kconfig selection is created as "VIM"
and is resulting in the confusion with a Text Editor name.

Make the VIM Kconfig option to indicate the vendor TI name in it.

Signed-off-by: Mihira Madhava Bollapragada <madhava@ti.com>
2025-11-26 07:10:13 +00:00
Josuah Demangeon
30950b888d style: drivers: sort Kconfig and CMake includes
Use the "zephyr-keep-sorted-start/stop" comment to have CI check
the alphabetical order of includes, to help reducing the chance
of conflicts while contributing drivers.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-11-17 13:48:03 -05:00
Etienne Carriere
b0ccb2295f drivers: stm32: use STM32_CLOCK_INFO_BY_NAME() and friends
Use STM32_CLOCK_INFO(), STM32_DT_INST_CLOCK_INFO(),
STM32_CLOCK_INFO_BY_NAME() and STM32_DT_INST_CLOCK_INFO_BY_NAME()
helper macros in STM32 drivers.

Using these macros ensure the clock division factor is properly
populated according to DT information. Prior these changes some
drivers only got the bus and bits position information and missed
the clock division information which is fine only when this division
factor information is 0.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-11-14 15:26:17 +02:00
Lucien Zhao
48245312bf drivers: interrupt_controller: adapt for mcxe31x series
- adapt for mcxe31x series
- due to some bit defined in header files
  add some conditional macro to separate

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-10-22 18:35:01 +03:00
Andrew Featherstone
80a54a89cd drivers: intc: RP2350: Add initial support for Hazard3
The RP2350 uses the Xh3irq interrupt controller, which supports nested
and prioritised interrupts. This adds initial support, configuring the
controller in 'direct' (non-vectored) mode.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2025-09-29 12:30:28 -04:00
Mahesh Mahadevan
efe34d04d2 drivers: nxp: Use a MACRO to enable Wakeup signals
Switch to using the new NXP_ENABLE_WAKEUP_SIGNAL and
NXP_DISABLE_WAKEUP_SIGNAL macros to avoid adding
platform specific calls in the Zephyr drivers.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2025-09-20 11:09:00 +02:00
Manuel Argüelles
936876b545 drivers: intc: nxp: drop soc name from siul2 eirq driver
The SIUL2 external interrupt driver is a native implementation usable
across all NXP SoCs with SIUL2 IP. Remove the "S32" prefix to allow
clean reuse by other families.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2025-09-17 10:07:31 +02:00
Erwan Gouriou
d12aa5bf61 drivers: interrupt_controller: stm32: Fix range handling
When iterating over range, we were going one index too far.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-09-09 17:28:48 +02:00
Benjamin Cabé
0132ea07fb doc: fix spelling errors tree-wide
fix some spelling errors in code comments and Kconfig helps

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-09-03 17:04:13 +02:00
Benjamin Cabé
7d45d3e821 driver: gicv3: doc: fix spelling errors in kconfig file
fixed a few typos / spelling mistakes

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-09-03 17:04:13 +02:00
Zhaoxiang Jin
c6e5758d46 drivers: interrupt_controller: Update CMakeLists to fix build error
Now use the 5-parameter function "PINT_PinInterruptConfig"
deprecated in MCUX SDK, need to add compile definition
'PINT_USE_LEGACY_CALBACK' to make intc_nxp_pint compatible
with updated 'fsl_pint' driver.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-08-18 22:00:19 +02:00
Quang Le
efe6812ec5 drivers: intc: Add external interrupt support for Renesas RZ/A3UL, V2L
Add external interrupt support for Renesas RZ/A3UL, V2L

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-08-18 15:58:44 +02:00
Aaron Fong
c9d50b6339 drivers: intc_dw: support multiple instances
Update the initializers to support platforms with multiple instances
of the DesignWare interrupt aggregator. Also ensure that the initialize
function calls irq_enable(). The calculation of the _sw_isr_table entry
also now takes CONFIG_GEN_IRQ_START_VECTOR into account.

Signed-off-by: Aaron Fong <afong@tenstorrent.com>
2025-08-12 09:54:43 +03:00
Lucas Tamborrino
6968e1252e drivers: intc: esp32: don't build for ESP32C6 LP Core
Espressif's interrupt controller drive should not build for
ESP32C6 LP Core since it's behavior is different.
Add proper condition for that.

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2025-08-07 13:15:36 +02:00
Vit Stanicek
e679ef486a hal_nxp: Factorise inclusion of fsl_inputmux
Create Kconfig variable NXP_INPUTMUX, which selects the fsl_inputmux
driver. Imply the MCUX component symbol from it. Imply that variable
from the NXP PINT, SmartDMA and LPC DMA drivers and from the mimxrt685s
SoC.

This needed to be done for the mimxrt700_evk/mimxrt798s/hifi4 domain, as
the INPUTMUX peripheral handles IRQ assginments and its driver
(fsl_inputmux) is used directly by the domain's soc.c. Instantiating the
currently dependent drivers (for PINT and SmartDMA) isn's possible nor
reasonable on the said target.

Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
2025-07-31 17:11:54 -04:00
Jiafei Pan
b210fa0237 drivers: intc_gicv3_its: fix sleep issue in pre-kernel
GIC v3 ITS is initialized in pre-kernel stage in which sleep function
can't work yet, so use busy delay in pre-kernel stage and use sleep
delay in post-kernel stage.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Jiafei Pan
970e0181f1 drivers: intc_gicv3_its: fix incorrect RDbase when PE number is used
For RDbase used by its command, When GITS_TYPER.PTA = 1, physicall address
is used, the RDbase field consist of bits[51:16] of the address, so need
to left shift the address by 16 bits. But when GITS_TYPER.PTA = 0, PE
number is used, no need to shit anymore.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Jiafei Pan
9bb6a82a86 drivers: gicv3_its: enable dma noncoherent support
Add DMA noncoherent support on GICv3 ITS driver.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Jiafei Pan
83c88cee19 drivers: intc_gicv3: enable dma-noncoherent support
GIC redistributor on Some platform are connected to a non-coherent
downstream interconnect, it need to use Non-cahable and Non-shareable
access atttributes to access external memory. And also flush the
data cache after CPU update related memory.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Alexander Kozhinov
de22c560a3 drivers: interrupt_controller: intc_gpio_stm32: update to new EXTI binding
integrate intc_exti_stm32 to intc_gpio_stm32

Co-authored-by: Mathieu CHOPLAIN <mathieu.choplain@st.com>
Signed-off-by: Alexander Kozhinov <ak.alexander.kozhinov@gmail.com>
2025-07-25 08:18:48 -04:00
Alexander Kozhinov
36ef80033c drivers: interrupt_controller: introduce STM32 EXTI driver
add peripheral lines support
add EXTI interface

Co-authored-by: Mathieu CHOPLAIN <mathieu.choplain@st.com>
Signed-off-by: Alexander Kozhinov <ak.alexander.kozhinov@gmail.com>
2025-07-25 08:18:48 -04:00
Alexander Kozhinov
5e727d7e83 drivers: interrupt_controller: exti_stm32: rename to intc_gpio
rename intc_exti_stm32.c to intc_gpio_stm32.c
rename EXTI_STM32 to GPIO_INTC_STM32 in Kconfig.stm32
update CMakeLists.txt

Signed-off-by: Alexander Kozhinov <ak.alexander.kozhinov@gmail.com>
2025-07-25 08:18:48 -04:00
Sylvio Alves
e794a86a94 drivers: intc: esp32: fix non-IRAM mask usage in interrupt disable
Fix the non-IRAM interrupt disable routine to use non_iram_int_mask[cpu]
directly instead of its bitwise inverse. The previous implementation used
the wrong mask and could affect unrelated interrupts. This change ensures
that only intended non-IRAM interrupts are disabled and restored.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-19 13:20:38 -04:00
Sylvio Alves
d55c550579 drivers: intc: esp32: fix and reset flags when freeing interrupt
Fix bitwise operation when freeing an interrupt to correctly clear the
VECDESC_FL_NONSHARED, VECDESC_FL_RESERVED, and VECDESC_FL_SHARED flags.
Also reset the interrupt source to ETS_INTERNAL_UNUSED_INTR_SOURCE to
ensure proper cleanup and prevent issues with future allocations.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-19 13:20:38 -04:00
Sylvio Alves
5e6d118389 drivers: intc: esp32: fix race in critical section locking
Replace global lock variable with function-local storage for irq_lock()
state. This fixes a race condition when multiple access enter or exit
the critical section at the same time. Now each lock/unlock pair uses
its own key, making interrupt safe.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-19 13:20:38 -04:00
Michael Hope
b99b7d14f1 drivers: interrupt_controller: add a WCH EXTI external interrupt driver
The WCH External Trigger and Interrupt controller (EXTI) supports
between 8 and 22 lines where each line can trigger an interrupt on
rising edge, falling edge, or both edges. Lines are assigned to a
group, and each group has a separate interrupt. On the CH32V003/6,
there is one group of 8 lines, while on the CH32V208 there are
multiple groups with between one and six lines per group.

In the same way as the STM32 and GD32, define an EXTI driver that
configures the peripheral and an internal interface that can configure
individual lines.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-06-26 09:38:56 +02:00
Tatsuya Ogawa
5560c9f12a drivers: interrupt_controller: Add interrupt controller support for RX130
Add interrupt controller driver support for RX130 series

Signed-off-by: Tatsuya Ogawa <tatsuya.ogawa.nx@renesas.com>
Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-06-24 14:18:41 +02:00
Benjamin Cabé
48a1a2a248 drivers: intc: nxp_pint: fix off-by-one error in pin_enable
Prevent out-of-bounds access in nxp_pint_pin_enable by fixing the
comparison to use >= instead of >.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-21 10:40:28 +02:00
Youssef Zini
38428c6f52 drivers: interrupt_controller: add stm32mp2 exti
Add the mp2 exti2 dts to the dtsi file.
Add mp2 exti hal and ll function calls with EXTI2 instance. We use the
EXTI2 instance because it contains the GPIO interrupts in the non-secure
context. (We are trying to build the blinky sample as a first milestone)

Signed-off-by: Youssef Zini <youssef.zini@savoirfairelinux.com>
2025-06-17 08:20:33 +02:00
Youssef Zini
64ac64d2d6 drivers: interrupt_controller: change dt macro
Replace the use of `DT_NODELABEL(exti)` which depends on the node label
with the defined EXTI_NODE macro using the instance with the
`st_stm32_exti` compatible.
Since both macros point to the same node, this change doesn't affect
the code logic, but makes it independent of the node label, in
preparation for the addition of the STM32MP2 exti nodes.

Signed-off-by: Youssef Zini <youssef.zini@savoirfairelinux.com>
2025-06-17 08:20:33 +02:00
Benjamin Cabé
aa8386929e drivers: intc_wch_pfic: replace shift operations with BIT macro
Updated intc_wch_pfic driver to use BIT() macro for clarity.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 08:18:58 +02:00
Benjamin Cabé
b15f942684 drivers: intc_wch_pfic: correct/optimize interrupt disable logic
The IRER registers are write-only and clear the enable bit for the
provided interrupt. Use a direct write instead of a read/modify/write
sequence to avoid generating a bogus read access and improve performance

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 08:18:58 +02:00
Keith Packard
513e6ed5d2 arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS
When not using dynamic interrupt mapping, various interrupt tables are
configured to be stored in read-only memory in the linker script.. Mark
them const so that the linker doesn't complain.

This affects _sw_isr_table, _irq_vector_table, and z_shared_sw_isr_table in
arch/common along with _VectorTable in arch/arc.

Signed-off-by: Keith Packard <keithp@keithp.com>
2025-06-10 22:13:09 +02:00
Raffael Rostagno
c3aa6589c3 drivers: intc: esp32: Disable IRQ before connect
Disable IRQ before connecting new handler when interrupt is not
shared. This aligns intc behavior to version before PR #87369.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-06-05 15:10:44 -05:00
Dawid Niedzwiecki
964aa56ea7 interrupt_controller: intc_plic: move unused function
Move function that is used only if some configs are defined.

Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
2025-06-02 13:29:30 +02:00
Miguel Gazquez
2b91c467f2 modules: Update hal_wch
Update hal_wch.

As the hal upstream changed name, there is now a name conflict.
Rename ch32fun.h to hal_ch32fun.h to fix this conflict.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2025-05-24 18:03:53 +02:00
Mahesh Mahadevan
dcad2e036e drivers: nxp_pint: Add power handlers for the NXP PINT driver
This is needed to restore state on wakeup from certain low power
modes.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2025-05-19 21:55:15 +02:00
Anas Nashif
2aacbcaab5 style: add missing curly braces in if/while/for statements.
Add missing curly braces in if/while/for statements.

This is a style guideline we have that was not enforced in CI. All
issues fixed here were detected by sonarqube SCA.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-05-17 14:10:33 +02:00
Vit Stanicek
405ab182a9 drivers: intc_nxp_pint: Decouple from fsl_power.h
Add drivers/interrupt_controller/intc_nxp_pint/power.h abstracting
EnableDeepSleepIRQ and DisableDeepSleepIRQ invocations from
intc_nxp_pint.c. Modify intc_nxp_pint.c to use that file.

fsl_power.c and fsl_power.h can't be built on the
mimxrt685_evk/mimxrt685s/hifi4 target, so it's excluded from it in hal_nxp.

Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
2025-05-16 19:00:30 +02:00