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 RenesasRA4_GPIO : RenesasRA_GPIO
14     {
RenesasRA4_GPIO(IMachine machine, int portNumber, int numberOfConnections, RenesasRA_GPIOMisc pfsMisc)15         public RenesasRA4_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(5,  IRQ10),
30                 new InterruptOutput(11, IRQ15),
31                 new InterruptOutput(15, IRQ7),
32             },
33             /* PORT1 */ new List<InterruptOutput>
34             {
35                 new InterruptOutput(0,  IRQ2),
36                 new InterruptOutput(1,  IRQ1),
37                 new InterruptOutput(4,  IRQ1),
38                 new InterruptOutput(5,  IRQ0),
39                 new InterruptOutput(10, IRQ3),
40                 new InterruptOutput(11, IRQ4),
41             },
42             /* PORT2 */ new List<InterruptOutput>
43             {
44                 new InterruptOutput(5,  IRQ1),
45                 new InterruptOutput(6,  IRQ0),
46                 new InterruptOutput(12, IRQ3),
47                 new InterruptOutput(13, IRQ2),
48             },
49             /* PORT3 */ new List<InterruptOutput>
50             {
51                 new InterruptOutput(1,  IRQ6),
52                 new InterruptOutput(2,  IRQ5),
53                 new InterruptOutput(4,  IRQ9),
54                 new InterruptOutput(5,  IRQ8),
55             },
56             /* PORT4 */ new List<InterruptOutput>
57             {
58                 new InterruptOutput(0,  IRQ0),
59                 new InterruptOutput(1,  IRQ5),
60                 new InterruptOutput(2,  IRQ4),
61                 new InterruptOutput(8,  IRQ7),
62                 new InterruptOutput(9,  IRQ6),
63                 new InterruptOutput(10, IRQ5),
64                 new InterruptOutput(11, IRQ4),
65                 new InterruptOutput(14, IRQ9),
66                 new InterruptOutput(15, IRQ8),
67             },
68             /* PORT5 */ new List<InterruptOutput>
69             {
70                 new InterruptOutput(1,  IRQ11),
71                 new InterruptOutput(2,  IRQ12),
72                 new InterruptOutput(5,  IRQ14),
73             },
74             /* PORT6 */ new List<InterruptOutput>
75             {
76                 // Intentionally left blank
77             },
78             /* PORT7 */ new List<InterruptOutput>
79             {
80                 // Intentionally left blank
81             },
82             /* PORT8 */ new List<InterruptOutput>
83             {
84                 // Intentionally left blank
85             },
86             /* PORT9 */ new List<InterruptOutput>
87             {
88                 // Intentionally left blank
89             },
90             /* PORTA */ new List<InterruptOutput>
91             {
92                 // Intentionally left blank
93             },
94             /* PORTB */ new List<InterruptOutput>
95             {
96                 // Intentionally left blank
97             },
98         };
99     }
100 }
101