1 //
2 // Copyright (c) 2010-2024 Antmicro
3 //
4 // This file is licensed under the MIT License.
5 // Full license text is available in 'licenses/MIT.txt'.
6 //
7 
8 using System.Collections.Generic;
9 using Antmicro.Renode.Core;
10 
11 namespace Antmicro.Renode.Peripherals.GPIOPort
12 {
13     public class RenesasRA2_GPIO : RenesasRA_GPIO
14     {
RenesasRA2_GPIO(IMachine machine, int portNumber, int numberOfConnections, RenesasRA_GPIOMisc pfsMisc)15         public RenesasRA2_GPIO(IMachine machine, int portNumber, int numberOfConnections, RenesasRA_GPIOMisc pfsMisc)
16             : base(machine, portNumber, numberOfConnections, pfsMisc)
17         {
18             // Intentionally left blank
19         }
20 
21         protected override List<InterruptOutput>[] PinInterruptOutputs => new List<InterruptOutput>[]
22         {
23             /* PORT0 */ new List<InterruptOutput>
24             {
25                 new InterruptOutput(0,  IRQ6),
26                 new InterruptOutput(1,  IRQ7),
27                 new InterruptOutput(2,  IRQ2),
28                 new InterruptOutput(4,  IRQ3),
29                 new InterruptOutput(15, IRQ7),
30             },
31             /* PORT1 */ new List<InterruptOutput>
32             {
33                 new InterruptOutput(0,  IRQ2),
34                 new InterruptOutput(1,  IRQ1),
35                 new InterruptOutput(4,  IRQ1),
36                 new InterruptOutput(5,  IRQ0),
37                 new InterruptOutput(10, IRQ3),
38                 new InterruptOutput(11, IRQ4),
39             },
40             /* PORT2 */ new List<InterruptOutput>
41             {
42                 new InterruptOutput(5,  IRQ1),
43                 new InterruptOutput(6,  IRQ0),
44                 new InterruptOutput(12, IRQ3),
45                 new InterruptOutput(13, IRQ2),
46             },
47             /* PORT3 */ new List<InterruptOutput>
48             {
49                 new InterruptOutput(1,  IRQ6),
50                 new InterruptOutput(2,  IRQ5),
51             },
52             /* PORT4 */ new List<InterruptOutput>
53             {
54                 new InterruptOutput(0,  IRQ0),
55                 new InterruptOutput(1,  IRQ5),
56                 new InterruptOutput(2,  IRQ4),
57                 new InterruptOutput(8,  IRQ7),
58                 new InterruptOutput(9,  IRQ6),
59                 new InterruptOutput(10, IRQ5),
60                 new InterruptOutput(11, IRQ4),
61             },
62             /* PORT5 */ new List<InterruptOutput>
63             {
64                 // Intentionally left blank
65             },
66             /* PORT6 */ new List<InterruptOutput>
67             {
68                 // Intentionally left blank
69             },
70             /* PORT7 */ new List<InterruptOutput>
71             {
72                 // Intentionally left blank
73             },
74             /* PORT8 */ new List<InterruptOutput>
75             {
76                 // Intentionally left blank
77             },
78             /* PORT9 */ new List<InterruptOutput>
79             {
80                 // Intentionally left blank
81             },
82             /* PORTA */ new List<InterruptOutput>
83             {
84                 // Intentionally left blank
85             },
86             /* PORTB */ new List<InterruptOutput>
87             {
88                 // Intentionally left blank
89             },
90         };
91     }
92 }
93