drivers: Add assign event for current core for all Renesas drivers
Add assign event for current core for all Renesas drivers Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
This commit is contained in:
committed by
Benjamin Cabé
parent
7ea7e13b9c
commit
db981f65e9
@@ -1106,7 +1106,11 @@ DT_FOREACH_STATUS_OKAY(renesas_ra_canfd_global, CAN_RENESAS_RA_GLOBAL_DEFINE)
|
||||
EVENT_CAN_TX(DT_INST_PROP(index, channel)); \
|
||||
R_ICU->IELSR_b[DT_INST_IRQ_BY_NAME(index, err, irq)].IELS = \
|
||||
EVENT_CAN_CHERR(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_CAN_COMFRX(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_CAN_TX(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_CAN_CHERR(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(index, rx, irq), \
|
||||
DT_INST_IRQ_BY_NAME(index, rx, priority), canfd_common_fifo_rx_isr, \
|
||||
NULL, 0); \
|
||||
|
||||
@@ -203,10 +203,14 @@ DEVICE_DT_DEFINE(DT_COMPAT_GET_ANY_STATUS_OKAY(renesas_ra_acmphs_global),
|
||||
acmphs_renesas_ra_global_init, NULL, NULL, &acmphs_renesas_ra_global_config,
|
||||
PRE_KERNEL_2, CONFIG_COMPARATOR_INIT_PRIORITY, NULL)
|
||||
|
||||
#define EVENT_ACMPHS_INT(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_ACMPHS, channel, _INT))
|
||||
|
||||
#define ACMPHS_RENESAS_RA_IRQ_INIT(idx) \
|
||||
{ \
|
||||
R_ICU->IELSR_b[DT_INST_IRQ_BY_NAME(idx, hs, irq)].IELS = \
|
||||
BSP_PRV_IELS_ENUM(CONCAT(EVENT_ACMPHS, DT_INST_PROP(idx, channel), _INT)); \
|
||||
EVENT_ACMPHS_INT(DT_INST_PROP(idx, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_ACMPHS_INT(DT_INST_PROP(idx, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(idx, hs, irq), \
|
||||
DT_INST_IRQ_BY_NAME(idx, hs, priority), comp_hs_int_isr, \
|
||||
|
||||
@@ -536,6 +536,7 @@ static DEVICE_API(counter, agt_renesas_ra_driver_api) = {
|
||||
#define AGT_IRQ_CONFIG(inst, name, event, isr) \
|
||||
IF_ENABLED(DT_IRQ_HAS_NAME(TIMER(inst), name), \
|
||||
(R_ICU->IELSR[DT_IRQ_BY_NAME(TIMER(inst), name, irq)] = event; \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(event); \
|
||||
IRQ_CONNECT(DT_IRQ_BY_NAME(TIMER(inst), name, irq), \
|
||||
DT_IRQ_BY_NAME(TIMER(inst), name, priority), \
|
||||
isr, DEVICE_DT_INST_GET(inst), 0); \
|
||||
|
||||
@@ -420,6 +420,7 @@ static int display_init(const struct device *dev)
|
||||
{ \
|
||||
R_ICU->IELSR[DT_INST_IRQ_BY_NAME(id, line, irq)] = \
|
||||
BSP_PRV_IELS_ENUM(EVENT_GLCDC_LINE_DETECT); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(BSP_PRV_IELS_ENUM(EVENT_GLCDC_LINE_DETECT)); \
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(id, line, irq), \
|
||||
DT_INST_IRQ_BY_NAME(id, line, priority), renesas_ra_glcdc_isr, \
|
||||
DEVICE_DT_INST_GET(id), 0); \
|
||||
|
||||
@@ -499,6 +499,11 @@ static DEVICE_API(i2c, i2c_ra_iic_driver_api) = {
|
||||
R_ICU->IELSR[DT_INST_IRQ_BY_NAME(index, eri, irq)] = \
|
||||
EVENT_IIC_ERI(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_IIC_RXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_IIC_TXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_IIC_TEI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_IIC_ERI(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(index, rxi, irq), \
|
||||
DT_INST_IRQ_BY_NAME(index, rxi, priority), iic_master_rxi_isr, \
|
||||
DEVICE_DT_INST_GET(index), 0); \
|
||||
|
||||
@@ -593,13 +593,9 @@ static const struct i2c_driver_api renesas_ra_sci_b_i2c_driver_api = {
|
||||
#endif /* CONFIG_I2C_CALLBACK */
|
||||
};
|
||||
|
||||
#define _ELC_EVENT_SCI_RXI(channel) ELC_EVENT_SCI##channel##_RXI
|
||||
#define _ELC_EVENT_SCI_TXI(channel) ELC_EVENT_SCI##channel##_TXI
|
||||
#define _ELC_EVENT_SCI_TEI(channel) ELC_EVENT_SCI##channel##_TEI
|
||||
|
||||
#define ELC_EVENT_SCI_RXI(channel) _ELC_EVENT_SCI_RXI(channel)
|
||||
#define ELC_EVENT_SCI_TXI(channel) _ELC_EVENT_SCI_TXI(channel)
|
||||
#define ELC_EVENT_SCI_TEI(channel) _ELC_EVENT_SCI_TEI(channel)
|
||||
#define EVENT_SCI_RXI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _RXI))
|
||||
#define EVENT_SCI_TXI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _TXI))
|
||||
#define EVENT_SCI_TEI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _TEI))
|
||||
|
||||
#ifndef CONFIG_I2C_RENESAS_RA_SCI_B_DTC
|
||||
#define SCI_B_I2C_DTC_INIT(index)
|
||||
@@ -663,7 +659,8 @@ static const struct i2c_driver_api renesas_ra_sci_b_i2c_driver_api = {
|
||||
#define RXI_TRANSFER(index) \
|
||||
/* rxi */ \
|
||||
R_ICU->IELSR[DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, irq)] = \
|
||||
ELC_EVENT_SCI_RXI(DT_INST_PROP(index, channel)); \
|
||||
EVENT_SCI_RXI(DT_INST_PROP(index, channel)); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_RXI(DT_INST_PROP(index, channel))); \
|
||||
IRQ_CONNECT(DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, irq), \
|
||||
DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, priority), sci_b_i2c_rxi_isr, \
|
||||
DEVICE_DT_INST_GET(index), 0); \
|
||||
@@ -677,7 +674,8 @@ static const struct i2c_driver_api renesas_ra_sci_b_i2c_driver_api = {
|
||||
\
|
||||
/* txi */ \
|
||||
R_ICU->IELSR[DT_IRQ_BY_NAME(DT_INST_PARENT(index), txi, irq)] = \
|
||||
ELC_EVENT_SCI_TXI(DT_INST_PROP(index, channel)); \
|
||||
EVENT_SCI_TXI(DT_INST_PROP(index, channel)); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_TXI(DT_INST_PROP(index, channel))); \
|
||||
IRQ_CONNECT(DT_IRQ_BY_NAME(DT_INST_PARENT(index), txi, irq), \
|
||||
DT_IRQ_BY_NAME(DT_INST_PARENT(index), txi, priority), \
|
||||
sci_b_i2c_txi_isr, DEVICE_DT_INST_GET(index), 0); \
|
||||
@@ -685,7 +683,8 @@ static const struct i2c_driver_api renesas_ra_sci_b_i2c_driver_api = {
|
||||
\
|
||||
/* tei */ \
|
||||
R_ICU->IELSR[DT_IRQ_BY_NAME(DT_INST_PARENT(index), tei, irq)] = \
|
||||
ELC_EVENT_SCI_TEI(DT_INST_PROP(index, channel)); \
|
||||
EVENT_SCI_TEI(DT_INST_PROP(index, channel)); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_TEI(DT_INST_PROP(index, channel))); \
|
||||
IRQ_CONNECT(DT_IRQ_BY_NAME(DT_INST_PARENT(index), tei, irq), \
|
||||
DT_IRQ_BY_NAME(DT_INST_PARENT(index), tei, priority), \
|
||||
sci_b_i2c_tei_isr, DEVICE_DT_INST_GET(index), 0); \
|
||||
|
||||
@@ -299,6 +299,7 @@ static int mipi_dsi_renesas_ra_init(const struct device *dev)
|
||||
{ \
|
||||
R_ICU->IELSR[DT_INST_IRQ_BY_NAME(id, sq0, irq)] = \
|
||||
BSP_PRV_IELS_ENUM(EVENT_MIPIDSI_SEQ0); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(BSP_PRV_IELS_ENUM(EVENT_MIPIDSI_SEQ0)); \
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(id, sq0, irq), \
|
||||
DT_INST_IRQ_BY_NAME(id, sq0, priority), mipi_dsi_seq0_isr, NULL, 0); \
|
||||
irq_enable(DT_INST_IRQ_BY_NAME(id, sq0, irq)); \
|
||||
|
||||
@@ -149,6 +149,8 @@ static int gpio_ra_interrupt_init(const struct device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define EVENT_ICU_IRQ(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_ICU_IRQ, channel))
|
||||
|
||||
#define GPIO_INTERRUPT_INIT(index) \
|
||||
static const struct gpio_ra_irq_config gpio_ra_irq_config##index = { \
|
||||
.reg = DT_INST_REG_ADDR(index), \
|
||||
@@ -164,7 +166,10 @@ static int gpio_ra_interrupt_init(const struct device *dev)
|
||||
static int gpio_ra_irq_init##index(const struct device *dev) \
|
||||
{ \
|
||||
R_ICU->IELSR[DT_INST_IRQ(index, irq)] = \
|
||||
BSP_PRV_IELS_ENUM(UTIL_CAT(EVENT_ICU_IRQ, DT_INST_PROP(index, channel))); \
|
||||
EVENT_ICU_IRQ(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_ICU_IRQ(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ(index, irq), DT_INST_IRQ(index, priority), gpio_ra_isr, \
|
||||
DEVICE_DT_INST_GET(index), 0); \
|
||||
return gpio_ra_interrupt_init(dev); \
|
||||
|
||||
@@ -554,6 +554,10 @@ static int pwm_renesas_ra_init(const struct device *dev)
|
||||
#ifdef CONFIG_PWM_CAPTURE
|
||||
#define PWM_RA_IRQ_CONFIG_INIT(index) \
|
||||
do { \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE( \
|
||||
EVENT_GPT_CAPTURE_COMPARE_A(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE( \
|
||||
EVENT_GPT_COUNTER_OVERFLOW(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(index, gtioca, irq), \
|
||||
DT_INST_IRQ_BY_NAME(index, gtioca, priority), \
|
||||
|
||||
@@ -606,6 +606,11 @@ static DEVICE_API(sdhc, sdhc_api) = {
|
||||
R_ICU->IELSR[DT_INST_IRQ_BY_NAME(index, dma_req, irq)] = \
|
||||
EVENT_SDMMC_DMA_REQ(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SDMMC_ACCS(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SDMMC_CARD(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE( \
|
||||
EVENT_SDMMC_DMA_REQ(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(index, accs, irq), \
|
||||
DT_INST_IRQ_BY_NAME(index, accs, priority), ra_sdmmc_accs_isr, \
|
||||
DEVICE_DT_INST_GET(index), 0); \
|
||||
|
||||
@@ -1148,13 +1148,13 @@ static void uart_ra_sci_b_eri_isr(const struct device *dev)
|
||||
|
||||
#endif /* defined(CONFIG_UART_INTERRUPT_DRIVEN) || defined(CONFIG_UART_ASYNC_API) */
|
||||
|
||||
#if defined(CONFIG_UART_INTERRUPT_DRIVEN) || defined(CONFIG_UART_ASYNC_API)
|
||||
|
||||
#define EVENT_SCI_RXI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _RXI))
|
||||
#define EVENT_SCI_TXI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _TXI))
|
||||
#define EVENT_SCI_TEI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _TEI))
|
||||
#define EVENT_SCI_ERI(channel) BSP_PRV_IELS_ENUM(CONCAT(EVENT_SCI, channel, _ERI))
|
||||
|
||||
#if defined(CONFIG_UART_INTERRUPT_DRIVEN) || defined(CONFIG_UART_ASYNC_API)
|
||||
|
||||
#define UART_RA_SCI_B_IRQ_CONFIG_INIT(index) \
|
||||
do { \
|
||||
R_ICU->IELSR[DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, irq)] = \
|
||||
@@ -1166,6 +1166,11 @@ static void uart_ra_sci_b_eri_isr(const struct device *dev)
|
||||
R_ICU->IELSR[DT_IRQ_BY_NAME(DT_INST_PARENT(index), eri, irq)] = \
|
||||
EVENT_SCI_ERI(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_RXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_TXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_TEI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SCI_ERI(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, irq), \
|
||||
DT_IRQ_BY_NAME(DT_INST_PARENT(index), rxi, priority), \
|
||||
uart_ra_sci_b_rxi_isr, DEVICE_DT_INST_GET(index), 0); \
|
||||
|
||||
@@ -634,6 +634,11 @@ static void ra_spi_eri_isr(const struct device *dev)
|
||||
R_ICU->IELSR[DT_INST_IRQ_BY_NAME(index, eri, irq)] = \
|
||||
EVENT_SPI_ERI(DT_INST_PROP(index, channel)); \
|
||||
\
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SPI_RXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SPI_TXI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SPI_TEI(DT_INST_PROP(index, channel))); \
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(EVENT_SPI_ERI(DT_INST_PROP(index, channel))); \
|
||||
\
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_NAME(index, rxi, irq), \
|
||||
DT_INST_IRQ_BY_NAME(index, rxi, priority), ra_spi_rxi_isr, \
|
||||
DEVICE_DT_INST_GET(index), 0); \
|
||||
|
||||
@@ -173,6 +173,7 @@ static int sys_clock_driver_init(void)
|
||||
|
||||
/* Set up interrupts for timer instance 0. */
|
||||
R_ICU->IELSR[RA_ULPT_INST0_IRQN] = ELC_EVENT_ULPT_INT(RA_ULPT_INST0_CHANNEL);
|
||||
BSP_ASSIGN_EVENT_TO_CURRENT_CORE(ELC_EVENT_ULPT_INT(RA_ULPT_INST0_CHANNEL));
|
||||
IRQ_CONNECT(RA_ULPT_INST0_IRQN, RA_ULPT_INST0_IRQP, ra_ulpt_timer_isr, NULL, 0);
|
||||
irq_enable(RA_ULPT_INST0_IRQN);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user