Skip to content

Commit 936876b

Browse files
manuarguehenrikbrixandersen
authored andcommitted
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 <[email protected]>
1 parent 5a0e0c9 commit 936876b

File tree

10 files changed

+140
-137
lines changed

10 files changed

+140
-137
lines changed

drivers/gpio/gpio_nxp_siul2.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
LOG_MODULE_REGISTER(nxp_siul2_gpio, CONFIG_GPIO_LOG_LEVEL);
1717

18-
#ifdef CONFIG_NXP_S32_EIRQ
19-
#include <zephyr/drivers/interrupt_controller/intc_eirq_nxp_s32.h>
18+
#ifdef CONFIG_NXP_SIUL2_EIRQ
19+
#include <zephyr/drivers/interrupt_controller/intc_nxp_siul2_eirq.h>
2020
#endif
2121
#ifdef CONFIG_NXP_S32_WKPU
2222
#include <zephyr/drivers/interrupt_controller/intc_wkpu_nxp_s32.h>
@@ -35,7 +35,7 @@ LOG_MODULE_REGISTER(nxp_siul2_gpio, CONFIG_GPIO_LOG_LEVEL);
3535
#define PORT_READ(p) sys_read32(config->port_base + SIUL2_MSCR(p))
3636
#define PORT_WRITE(p, v) sys_write32((v), config->port_base + SIUL2_MSCR(p))
3737

38-
#if defined(CONFIG_NXP_S32_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
38+
#if defined(CONFIG_NXP_SIUL2_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
3939
#define NXP_SIUL2_GPIO_LINE_NOT_FOUND 0xff
4040

4141
struct gpio_nxp_siul2_irq_map {
@@ -55,7 +55,7 @@ struct gpio_nxp_siul2_config {
5555
struct gpio_driver_config common;
5656
mem_addr_t gpio_base;
5757
mem_addr_t port_base;
58-
#ifdef CONFIG_NXP_S32_EIRQ
58+
#ifdef CONFIG_NXP_SIUL2_EIRQ
5959
struct gpio_nxp_siul2_irq_config *eirq_info;
6060
#endif
6161
#ifdef CONFIG_NXP_S32_WKPU
@@ -67,7 +67,7 @@ struct gpio_nxp_siul2_data {
6767
/* gpio_driver_data needs to be first */
6868
struct gpio_driver_data common;
6969

70-
#if defined(CONFIG_NXP_S32_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
70+
#if defined(CONFIG_NXP_SIUL2_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
7171
sys_slist_t callbacks;
7272
#if defined(CONFIG_NXP_S32_WKPU)
7373
uint32_t pin_wkpu_mask;
@@ -192,7 +192,7 @@ static int nxp_siul2_gpio_port_toggle_bits(const struct device *port,
192192
return 0;
193193
}
194194

195-
#if defined(CONFIG_NXP_S32_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
195+
#if defined(CONFIG_NXP_SIUL2_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
196196

197197
static uint8_t nxp_siul2_gpio_pin_to_line(const struct gpio_nxp_siul2_irq_config *irq_cfg,
198198
uint8_t pin)
@@ -216,19 +216,19 @@ static void nxp_siul2_gpio_isr(uint8_t pin, void *arg)
216216
gpio_fire_callbacks(&data->callbacks, dev, BIT(pin));
217217
}
218218

219-
#if defined(CONFIG_NXP_S32_EIRQ)
220-
static int nxp_siul2_gpio_eirq_get_trigger(enum eirq_nxp_s32_trigger *eirq_trigger,
219+
#if defined(CONFIG_NXP_SIUL2_EIRQ)
220+
static int nxp_siul2_gpio_eirq_get_trigger(enum nxp_siul2_eirq_trigger *eirq_trigger,
221221
enum gpio_int_trig trigger)
222222
{
223223
switch (trigger) {
224224
case GPIO_INT_TRIG_LOW:
225-
*eirq_trigger = EIRQ_NXP_S32_FALLING_EDGE;
225+
*eirq_trigger = NXP_SIUl2_EIRQ_FALLING_EDGE;
226226
break;
227227
case GPIO_INT_TRIG_HIGH:
228-
*eirq_trigger = EIRQ_NXP_S32_RISING_EDGE;
228+
*eirq_trigger = NXP_SIUl2_EIRQ_RISING_EDGE;
229229
break;
230230
case GPIO_INT_TRIG_BOTH:
231-
*eirq_trigger = EIRQ_NXP_S32_BOTH_EDGES;
231+
*eirq_trigger = NXP_SIUl2_EIRQ_BOTH_EDGES;
232232
break;
233233
default:
234234
return -ENOTSUP;
@@ -245,7 +245,7 @@ static int nxp_siul2_gpio_config_eirq(const struct device *dev,
245245
const struct gpio_nxp_siul2_config *config = dev->config;
246246
const struct gpio_nxp_siul2_irq_config *irq_cfg = config->eirq_info;
247247
uint8_t irq_line;
248-
enum eirq_nxp_s32_trigger eirq_trigger;
248+
enum nxp_siul2_eirq_trigger eirq_trigger;
249249

250250
if (irq_cfg == NULL) {
251251
LOG_ERR("external interrupt controller not available or enabled");
@@ -266,23 +266,23 @@ static int nxp_siul2_gpio_config_eirq(const struct device *dev,
266266
}
267267

268268
if (mode == GPIO_INT_MODE_DISABLED) {
269-
eirq_nxp_s32_disable_interrupt(irq_cfg->ctrl, irq_line);
270-
eirq_nxp_s32_unset_callback(irq_cfg->ctrl, irq_line);
269+
nxp_siul2_eirq_disable_interrupt(irq_cfg->ctrl, irq_line);
270+
nxp_siul2_eirq_unset_callback(irq_cfg->ctrl, irq_line);
271271
} else {
272272
if (nxp_siul2_gpio_eirq_get_trigger(&eirq_trigger, trig)) {
273273
return -ENOTSUP;
274274
}
275-
if (eirq_nxp_s32_set_callback(irq_cfg->ctrl, irq_line, pin,
275+
if (nxp_siul2_eirq_set_callback(irq_cfg->ctrl, irq_line, pin,
276276
nxp_siul2_gpio_isr, (void *)dev)) {
277277
LOG_ERR("pin %d is already in use", pin);
278278
return -EBUSY;
279279
}
280-
eirq_nxp_s32_enable_interrupt(irq_cfg->ctrl, irq_line, eirq_trigger);
280+
nxp_siul2_eirq_enable_interrupt(irq_cfg->ctrl, irq_line, eirq_trigger);
281281
}
282282

283283
return 0;
284284
}
285-
#endif /* CONFIG_NXP_S32_EIRQ */
285+
#endif /* CONFIG_NXP_SIUL2_EIRQ */
286286

287287
#if defined(CONFIG_NXP_S32_WKPU)
288288
static int nxp_siul2_gpio_wkpu_get_trigger(enum wkpu_nxp_s32_trigger *wkpu_trigger,
@@ -365,7 +365,7 @@ static int nxp_siul2_gpio_pin_interrupt_configure(const struct device *dev,
365365
}
366366
#endif
367367

368-
#if defined(CONFIG_NXP_S32_EIRQ)
368+
#if defined(CONFIG_NXP_SIUL2_EIRQ)
369369
return nxp_siul2_gpio_config_eirq(dev, pin, mode, trig);
370370
#endif
371371
}
@@ -377,7 +377,7 @@ static int nxp_siul2_gpio_manage_callback(const struct device *dev,
377377

378378
return gpio_manage_callback(&data->callbacks, cb, set);
379379
}
380-
#endif /* defined(CONFIG_NXP_S32_EIRQ) || defined(CONFIG_NXP_S32_WKPU) */
380+
#endif /* defined(CONFIG_NXP_SIUL2_EIRQ) || defined(CONFIG_NXP_S32_WKPU) */
381381

382382
#ifdef CONFIG_GPIO_GET_CONFIG
383383
static int nxp_siul2_gpio_pin_get_config(const struct device *dev,
@@ -469,7 +469,7 @@ static DEVICE_API(gpio, gpio_nxp_siul2_driver_api) = {
469469
.port_set_bits_raw = nxp_siul2_gpio_port_set_bits_raw,
470470
.port_clear_bits_raw = nxp_siul2_gpio_port_clear_bits_raw,
471471
.port_toggle_bits = nxp_siul2_gpio_port_toggle_bits,
472-
#if defined(CONFIG_NXP_S32_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
472+
#if defined(CONFIG_NXP_SIUL2_EIRQ) || defined(CONFIG_NXP_S32_WKPU)
473473
.pin_interrupt_configure = nxp_siul2_gpio_pin_interrupt_configure,
474474
.manage_callback = nxp_siul2_gpio_manage_callback,
475475
#endif
@@ -506,7 +506,7 @@ static DEVICE_API(gpio, gpio_nxp_siul2_driver_api) = {
506506
& ~(GPIO_NXP_SIUL2_RESERVED_PIN_MASK(n))), \
507507
(GPIO_PORT_PIN_MASK_FROM_DT_INST(n)))
508508

509-
#ifdef CONFIG_NXP_S32_EIRQ
509+
#ifdef CONFIG_NXP_SIUL2_EIRQ
510510
#define GPIO_NXP_SIUL2_EIRQ_NODE(n) \
511511
DT_INST_PHANDLE(n, interrupt_parent)
512512

@@ -541,7 +541,7 @@ static DEVICE_API(gpio, gpio_nxp_siul2_driver_api) = {
541541
#else
542542
#define GPIO_NXP_SIUL2_SET_EIRQ_INFO(n)
543543
#define GPIO_NXP_SIUL2_GET_EIRQ_INFO(n)
544-
#endif /* CONFIG_NXP_S32_EIRQ */
544+
#endif /* CONFIG_NXP_SIUL2_EIRQ */
545545

546546
#ifdef CONFIG_NXP_S32_WKPU
547547
#define GPIO_NXP_SIUL2_WKPU_NODE(n) DT_INST_PHANDLE(n, nxp_wkpu)

drivers/interrupt_controller/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ zephyr_library_sources_ifdef(CONFIG_CLIC intc_clic.c)
3838
zephyr_library_sources_ifdef(CONFIG_CLIC intc_clic.S)
3939
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC intc_nrfx_clic.c)
4040
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC intc_nrfx_clic.S)
41-
zephyr_library_sources_ifdef(CONFIG_NXP_S32_EIRQ intc_eirq_nxp_s32.c)
41+
zephyr_library_sources_ifdef(CONFIG_NXP_SIUL2_EIRQ intc_nxp_siul2_eirq.c)
4242
zephyr_library_sources_ifdef(CONFIG_NXP_S32_WKPU intc_wkpu_nxp_s32.c)
4343
zephyr_library_sources_ifdef(CONFIG_XMC4XXX_INTC intc_xmc4xxx.c)
4444
zephyr_library_sources_ifdef(CONFIG_NXP_PINT intc_nxp_pint.c)

drivers/interrupt_controller/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ source "drivers/interrupt_controller/Kconfig.plic"
9696

9797
source "drivers/interrupt_controller/Kconfig.nxp_s32"
9898

99+
source "drivers/interrupt_controller/Kconfig.nxp_siul2"
100+
99101
source "drivers/interrupt_controller/Kconfig.xmc4xxx"
100102

101103
source "drivers/interrupt_controller/Kconfig.nxp_pint"

drivers/interrupt_controller/Kconfig.nxp_s32

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,6 @@
1-
# Configuration for NXP S32 external interrupt controller
2-
3-
# Copyright 2022-2024 NXP
1+
# Copyright 2022-2025 NXP
42
# SPDX-License-Identifier: Apache-2.0
53

6-
config NXP_S32_EIRQ
7-
bool "External interrupt controller driver for NXP S32 MCUs"
8-
default y
9-
depends on DT_HAS_NXP_S32_SIUL2_EIRQ_ENABLED
10-
select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT
11-
select PINCTRL
12-
help
13-
External interrupt controller driver for NXP S32 MCUs
14-
15-
if NXP_S32_EIRQ
16-
17-
config NXP_S32_EIRQ_EXT_INTERRUPTS_MAX
18-
int
19-
default 8 if SOC_SERIES_S32ZE
20-
default 32 if SOC_SERIES_S32K3
21-
help
22-
Number of SIUL2 external interrupts per controller. This is a SoC
23-
integration option.
24-
25-
config NXP_S32_EIRQ_EXT_INTERRUPTS_GROUP
26-
int
27-
default 8
28-
help
29-
Number of SIUL2 external interrupts grouped into a single core
30-
interrupt line. This is a SoC integration option.
31-
32-
endif # NXP_S32_EIRQ
33-
344
config NXP_S32_WKPU
355
bool "Wake-up Unit interrupt controller driver for NXP S32 MCUs"
366
default y
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright 2022-2025 NXP
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config NXP_SIUL2_EIRQ
5+
bool "NXP SIUL2 external interrupt controller driver"
6+
default y
7+
depends on DT_HAS_NXP_SIUL2_EIRQ_ENABLED
8+
select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT
9+
select PINCTRL
10+
help
11+
NXP SIUL2 external interrupt controller driver.
12+
13+
if NXP_SIUL2_EIRQ
14+
15+
config NXP_SIUL2_EIRQ_EXT_INTERRUPTS_MAX
16+
int
17+
default 8 if SOC_SERIES_S32ZE
18+
default 32 if SOC_SERIES_S32K3
19+
help
20+
Number of SIUL2 external interrupts per controller. This is a SoC
21+
integration option.
22+
23+
config NXP_SIUL2_EIRQ_EXT_INTERRUPTS_GROUP
24+
int
25+
default 8
26+
help
27+
Number of SIUL2 external interrupts grouped into a single core
28+
interrupt line. This is a SoC integration option.
29+
30+
endif # NXP_SIUL2_EIRQ

0 commit comments

Comments
 (0)