@@ -22,65 +22,57 @@ void z_irq_spurious(const void *unused)
2222
2323void arch_irq_enable (unsigned int irq )
2424{
25- volatile uint32_t * int_enable_reg [] = {& IEC0 , & IEC1 , & IEC2 , & IEC3 , & IEC4 ,
26- & IEC5 , & IEC6 , & IEC7 , & IEC8 };
25+ volatile uint32_t * int_enable_reg = (uint32_t * )DT_PROP (DT_NODELABEL (intc0 ), ie_offset );
2726
2827 unsigned int reg_index = irq / (sizeof (uint32_t ) << 3 );
2928 unsigned int bit_pos = irq % (sizeof (uint32_t ) << 3 );
30-
3129 /* Enable the interrupt by setting it's bit in interrupt enable register*/
32- * int_enable_reg [reg_index ] |= (uint32_t )(1u << bit_pos );
30+ int_enable_reg [reg_index ] |= (uint32_t )(1u << bit_pos );
3331}
3432
3533int arch_irq_is_enabled (unsigned int irq )
3634{
37- volatile uint32_t * int_enable_reg [] = {& IEC0 , & IEC1 , & IEC2 , & IEC3 , & IEC4 ,
38- & IEC5 , & IEC6 , & IEC7 , & IEC8 };
35+ volatile uint32_t * int_enable_reg = (uint32_t * )DT_PROP (DT_NODELABEL (intc0 ), ie_offset );
3936
4037 unsigned int reg_index = irq / (sizeof (uint32_t ) << 3 );
4138 unsigned int bit_pos = irq % (sizeof (uint32_t ) << 3 );
4239
43- return ((* int_enable_reg [reg_index ] >> bit_pos ) & 0x1u );
40+ return ((int_enable_reg [reg_index ] >> bit_pos ) & 0x1u );
4441}
4542
4643void arch_irq_disable (unsigned int irq )
4744{
48- volatile uint32_t * int_enable_reg [] = {& IEC0 , & IEC1 , & IEC2 , & IEC3 , & IEC4 ,
49- & IEC5 , & IEC6 , & IEC7 , & IEC8 };
45+ volatile uint32_t * int_enable_reg = (uint32_t * )DT_PROP (DT_NODELABEL (intc0 ), ie_offset );
5046
5147 unsigned int reg_index = irq / (sizeof (uint32_t ) << 3 );
5248 unsigned int bit_pos = irq % (sizeof (uint32_t ) << 3 );
5349
5450 /* Disable the interrupt by clearing it's bit in interrupt enable register*/
55- * int_enable_reg [reg_index ] &= (uint32_t )(~(1u << bit_pos ));
51+ int_enable_reg [reg_index ] &= (uint32_t )(~(1u << bit_pos ));
5652}
5753
5854bool arch_dspic_irq_isset (unsigned int irq )
5955{
60- volatile uint32_t * int_ifs_reg [] = {& IFS0 , & IFS1 , & IFS2 , & IFS3 , & IFS4 ,
61- & IFS5 , & IFS6 , & IFS7 , & IFS8 };
56+ volatile uint32_t * int_ifs_reg = (uint32_t * )DT_PROP (DT_NODELABEL (intc0 ), if_offset );
6257 volatile int ret_ifs = false;
6358 unsigned int reg_index = irq / (sizeof (uint32_t ) << 3 );
6459 unsigned int bit_pos = irq % (sizeof (uint32_t ) << 3 );
6560
66- if (( bool )( void * )( * int_ifs_reg [reg_index ] & (uint32_t )( 1U << bit_pos ))) {
61+ if ( ( int_ifs_reg [reg_index ] & (1u << bit_pos )) != 0u ) {
6762 ret_ifs = true;
6863 }
6964 return ret_ifs ;
7065}
7166
72-
73-
7467void z_dspic_enter_irq (int irq )
7568{
76- volatile uint32_t * int_ifs_reg [] = {& IFS0 , & IFS1 , & IFS2 , & IFS3 , & IFS4 ,
77- & IFS5 , & IFS6 , & IFS7 , & IFS8 };
69+ volatile uint32_t * int_ifs_reg = (uint32_t * )DT_PROP (DT_NODELABEL (intc0 ), if_offset );
7870
7971 unsigned int reg_index = (unsigned int )irq / (sizeof (uint32_t ) << 3 );
8072 unsigned int bit_pos = (unsigned int )irq % (sizeof (uint32_t ) << 3 );
8173
8274 /* Enable the interrupt by setting it's bit in interrupt enable register*/
83- * int_ifs_reg [reg_index ] |= (uint32_t )(1u << bit_pos );
75+ int_ifs_reg [reg_index ] |= (uint32_t )(1u << bit_pos );
8476}
8577
8678#ifdef __cplusplus
0 commit comments