Skip to content

Commit c8a811b

Browse files
cybertalenashif
authored andcommitted
drivers: gpio: sifive: cleanup irq initialzation code
Clean up irq initialization code with macro definitions. Signed-off-by: Song Qiang <[email protected]>
1 parent 341c230 commit c8a811b

File tree

1 file changed

+39
-160
lines changed

1 file changed

+39
-160
lines changed

drivers/gpio/gpio_sifive.c

Lines changed: 39 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -368,230 +368,109 @@ DEVICE_AND_API_INIT(gpio_sifive_0, CONFIG_GPIO_SIFIVE_GPIO_NAME,
368368
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
369369
&gpio_sifive_driver);
370370

371+
#define IRQ_INIT(n) \
372+
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_##n, \
373+
CONFIG_GPIO_SIFIVE_##n##_PRIORITY, \
374+
gpio_sifive_irq_handler, \
375+
DEVICE_GET(gpio_sifive_0), \
376+
0);
377+
371378
static void gpio_sifive_cfg_0(void)
372379
{
373380
#ifdef DT_SIFIVE_GPIO_0_IRQ_0
374-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_0,
375-
CONFIG_GPIO_SIFIVE_0_PRIORITY,
376-
gpio_sifive_irq_handler,
377-
DEVICE_GET(gpio_sifive_0),
378-
0);
381+
IRQ_INIT(0);
379382
#endif
380383
#ifdef DT_SIFIVE_GPIO_0_IRQ_1
381-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_1,
382-
CONFIG_GPIO_SIFIVE_1_PRIORITY,
383-
gpio_sifive_irq_handler,
384-
DEVICE_GET(gpio_sifive_0),
385-
0);
384+
IRQ_INIT(1);
386385
#endif
387386
#ifdef DT_SIFIVE_GPIO_0_IRQ_2
388-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_2,
389-
CONFIG_GPIO_SIFIVE_2_PRIORITY,
390-
gpio_sifive_irq_handler,
391-
DEVICE_GET(gpio_sifive_0),
392-
0);
387+
IRQ_INIT(2);
393388
#endif
394389
#ifdef DT_SIFIVE_GPIO_0_IRQ_3
395-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_3,
396-
CONFIG_GPIO_SIFIVE_3_PRIORITY,
397-
gpio_sifive_irq_handler,
398-
DEVICE_GET(gpio_sifive_0),
399-
0);
390+
IRQ_INIT(3);
400391
#endif
401392
#ifdef DT_SIFIVE_GPIO_0_IRQ_4
402-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_4,
403-
CONFIG_GPIO_SIFIVE_4_PRIORITY,
404-
gpio_sifive_irq_handler,
405-
DEVICE_GET(gpio_sifive_0),
406-
0);
393+
IRQ_INIT(4);
407394
#endif
408395
#ifdef DT_SIFIVE_GPIO_0_IRQ_5
409-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_5,
410-
CONFIG_GPIO_SIFIVE_5_PRIORITY,
411-
gpio_sifive_irq_handler,
412-
DEVICE_GET(gpio_sifive_0),
413-
0);
396+
IRQ_INIT(5);
414397
#endif
415398
#ifdef DT_SIFIVE_GPIO_0_IRQ_6
416-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_6,
417-
CONFIG_GPIO_SIFIVE_6_PRIORITY,
418-
gpio_sifive_irq_handler,
419-
DEVICE_GET(gpio_sifive_0),
420-
0);
399+
IRQ_INIT(6);
421400
#endif
422401
#ifdef DT_SIFIVE_GPIO_0_IRQ_7
423-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_7,
424-
CONFIG_GPIO_SIFIVE_7_PRIORITY,
425-
gpio_sifive_irq_handler,
426-
DEVICE_GET(gpio_sifive_0),
427-
0);
402+
IRQ_INIT(7);
428403
#endif
429404
#ifdef DT_SIFIVE_GPIO_0_IRQ_8
430-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_8,
431-
CONFIG_GPIO_SIFIVE_8_PRIORITY,
432-
gpio_sifive_irq_handler,
433-
DEVICE_GET(gpio_sifive_0),
434-
0);
405+
IRQ_INIT(8);
435406
#endif
436407
#ifdef DT_SIFIVE_GPIO_0_IRQ_9
437-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_9,
438-
CONFIG_GPIO_SIFIVE_9_PRIORITY,
439-
gpio_sifive_irq_handler,
440-
DEVICE_GET(gpio_sifive_0),
441-
0);
408+
IRQ_INIT(9);
442409
#endif
443410
#ifdef DT_SIFIVE_GPIO_0_IRQ_10
444-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_10,
445-
CONFIG_GPIO_SIFIVE_10_PRIORITY,
446-
gpio_sifive_irq_handler,
447-
DEVICE_GET(gpio_sifive_0),
448-
0);
411+
IRQ_INIT(10);
449412
#endif
450413
#ifdef DT_SIFIVE_GPIO_0_IRQ_11
451-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_11,
452-
CONFIG_GPIO_SIFIVE_11_PRIORITY,
453-
gpio_sifive_irq_handler,
454-
DEVICE_GET(gpio_sifive_0),
455-
0);
414+
IRQ_INIT(11);
456415
#endif
457416
#ifdef DT_SIFIVE_GPIO_0_IRQ_12
458-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_12,
459-
CONFIG_GPIO_SIFIVE_12_PRIORITY,
460-
gpio_sifive_irq_handler,
461-
DEVICE_GET(gpio_sifive_0),
462-
0);
417+
IRQ_INIT(12);
463418
#endif
464419
#ifdef DT_SIFIVE_GPIO_0_IRQ_13
465-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_13,
466-
CONFIG_GPIO_SIFIVE_13_PRIORITY,
467-
gpio_sifive_irq_handler,
468-
DEVICE_GET(gpio_sifive_0),
469-
0);
420+
IRQ_INIT(13);
470421
#endif
471422
#ifdef DT_SIFIVE_GPIO_0_IRQ_14
472-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_14,
473-
CONFIG_GPIO_SIFIVE_14_PRIORITY,
474-
gpio_sifive_irq_handler,
475-
DEVICE_GET(gpio_sifive_0),
476-
0);
423+
IRQ_INIT(14);
477424
#endif
478425
#ifdef DT_SIFIVE_GPIO_0_IRQ_15
479-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_15,
480-
CONFIG_GPIO_SIFIVE_15_PRIORITY,
481-
gpio_sifive_irq_handler,
482-
DEVICE_GET(gpio_sifive_0),
483-
0);
426+
IRQ_INIT(15);
484427
#endif
485428
#ifdef DT_SIFIVE_GPIO_0_IRQ_16
486-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_16,
487-
CONFIG_GPIO_SIFIVE_16_PRIORITY,
488-
gpio_sifive_irq_handler,
489-
DEVICE_GET(gpio_sifive_0),
490-
0);
429+
IRQ_INIT(16);
491430
#endif
492431
#ifdef DT_SIFIVE_GPIO_0_IRQ_17
493-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_17,
494-
CONFIG_GPIO_SIFIVE_17_PRIORITY,
495-
gpio_sifive_irq_handler,
496-
DEVICE_GET(gpio_sifive_0),
497-
0);
432+
IRQ_INIT(17);
498433
#endif
499434
#ifdef DT_SIFIVE_GPIO_0_IRQ_18
500-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_18,
501-
CONFIG_GPIO_SIFIVE_18_PRIORITY,
502-
gpio_sifive_irq_handler,
503-
DEVICE_GET(gpio_sifive_0),
504-
0);
435+
IRQ_INIT(18);
505436
#endif
506437
#ifdef DT_SIFIVE_GPIO_0_IRQ_19
507-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_19,
508-
CONFIG_GPIO_SIFIVE_19_PRIORITY,
509-
gpio_sifive_irq_handler,
510-
DEVICE_GET(gpio_sifive_0),
511-
0);
438+
IRQ_INIT(19);
512439
#endif
513440
#ifdef DT_SIFIVE_GPIO_0_IRQ_20
514-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_20,
515-
CONFIG_GPIO_SIFIVE_20_PRIORITY,
516-
gpio_sifive_irq_handler,
517-
DEVICE_GET(gpio_sifive_0),
518-
0);
441+
IRQ_INIT(20);
519442
#endif
520443
#ifdef DT_SIFIVE_GPIO_0_IRQ_21
521-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_21,
522-
CONFIG_GPIO_SIFIVE_21_PRIORITY,
523-
gpio_sifive_irq_handler,
524-
DEVICE_GET(gpio_sifive_0),
525-
0);
444+
IRQ_INIT(21);
526445
#endif
527446
#ifdef DT_SIFIVE_GPIO_0_IRQ_22
528-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_22,
529-
CONFIG_GPIO_SIFIVE_22_PRIORITY,
530-
gpio_sifive_irq_handler,
531-
DEVICE_GET(gpio_sifive_0),
532-
0);
447+
IRQ_INIT(22);
533448
#endif
534449
#ifdef DT_SIFIVE_GPIO_0_IRQ_23
535-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_23,
536-
CONFIG_GPIO_SIFIVE_23_PRIORITY,
537-
gpio_sifive_irq_handler,
538-
DEVICE_GET(gpio_sifive_0),
539-
0);
450+
IRQ_INIT(23);
540451
#endif
541452
#ifdef DT_SIFIVE_GPIO_0_IRQ_24
542-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_24,
543-
CONFIG_GPIO_SIFIVE_24_PRIORITY,
544-
gpio_sifive_irq_handler,
545-
DEVICE_GET(gpio_sifive_0),
546-
0);
453+
IRQ_INIT(24);
547454
#endif
548455
#ifdef DT_SIFIVE_GPIO_0_IRQ_25
549-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_25,
550-
CONFIG_GPIO_SIFIVE_25_PRIORITY,
551-
gpio_sifive_irq_handler,
552-
DEVICE_GET(gpio_sifive_0),
553-
0);
456+
IRQ_INIT(25);
554457
#endif
555458
#ifdef DT_SIFIVE_GPIO_0_IRQ_26
556-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_26,
557-
CONFIG_GPIO_SIFIVE_26_PRIORITY,
558-
gpio_sifive_irq_handler,
559-
DEVICE_GET(gpio_sifive_0),
560-
0);
459+
IRQ_INIT(26);
561460
#endif
562461
#ifdef DT_SIFIVE_GPIO_0_IRQ_27
563-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_27,
564-
CONFIG_GPIO_SIFIVE_27_PRIORITY,
565-
gpio_sifive_irq_handler,
566-
DEVICE_GET(gpio_sifive_0),
567-
0);
462+
IRQ_INIT(27);
568463
#endif
569464
#ifdef DT_SIFIVE_GPIO_0_IRQ_28
570-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_28,
571-
CONFIG_GPIO_SIFIVE_28_PRIORITY,
572-
gpio_sifive_irq_handler,
573-
DEVICE_GET(gpio_sifive_0),
574-
0);
465+
IRQ_INIT(28);
575466
#endif
576467
#ifdef DT_SIFIVE_GPIO_0_IRQ_29
577-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_29,
578-
CONFIG_GPIO_SIFIVE_29_PRIORITY,
579-
gpio_sifive_irq_handler,
580-
DEVICE_GET(gpio_sifive_0),
581-
0);
468+
IRQ_INIT(29);
582469
#endif
583470
#ifdef DT_SIFIVE_GPIO_0_IRQ_30
584-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_30,
585-
CONFIG_GPIO_SIFIVE_30_PRIORITY,
586-
gpio_sifive_irq_handler,
587-
DEVICE_GET(gpio_sifive_0),
588-
0);
471+
IRQ_INIT(30);
589472
#endif
590473
#ifdef DT_SIFIVE_GPIO_0_IRQ_31
591-
IRQ_CONNECT(RISCV_MAX_GENERIC_IRQ + DT_SIFIVE_GPIO_0_IRQ_31,
592-
CONFIG_GPIO_SIFIVE_31_PRIORITY,
593-
gpio_sifive_irq_handler,
594-
DEVICE_GET(gpio_sifive_0),
595-
0);
474+
IRQ_INIT(31);
596475
#endif
597476
}

0 commit comments

Comments
 (0)