samarth jain
03/01/2024, 7:02 AMTim Edwards
03/01/2024, 2:30 PMcaravel_mgmt_soc_litex/litex/
: There are 6 IRQs defined:
# Add 6 IRQ lines
user_irq = platform.request("user_irq")
for i in range(len(user_irq)):
setattr(self.submodules,"user_irq_"+str(i),GPIOIn(user_irq[i], with_irq=True))
self.irq.add("user_irq_"+str(i), use_loc_if_exists=True)
Three of these are the "user IRQ" signals that are defined as pins on the user project wrapper. The other three come from housekeeping: Two of them routed (if the routing is enabled) from pins GPIO 7 and 12, as you note above, and the other generated in a housekeeping register.samarth jain
03/23/2024, 7:25 AMsamarth jain
03/23/2024, 8:02 AMTim Edwards
03/23/2024, 1:55 PMreg_irq_source
(memory map address 0x2620000C
) that can be used to enable the GPIOs for interrupt use. If I recall correctly, bit 0 enables GPIO 7 for IRQ, and bit 1 enables GPIO 12 for IRQ.samarth jain
03/23/2024, 1:58 PMTim Edwards
03/23/2024, 1:59 PMsamarth jain
03/23/2024, 2:24 PMTim Edwards
03/23/2024, 2:25 PMMarwan Abbas
03/24/2024, 8:26 AMMostafa Rady
03/24/2024, 8:37 AMsamarth jain
03/24/2024, 12:48 PMMostafa Rady
03/24/2024, 12:51 PMsamarth jain
03/27/2024, 2:38 PMMostafa Rady
03/27/2024, 5:27 PM