@@ -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+
371378static 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