lib: sbi_irqchip: Allow irqchip drivers advertise capabilities

Extend struct sbi_irqchip_device to allow irqchip drivers advertise
interrupt controller capabilities (such as wired interrupt, MSIs, etc).
This further allows other parts of OpenSBI to lookup irqchip devices
based on capabilities.

Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260608125257.3220114-2-anup.patel@oss.qualcomm.com
Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Anup Patel
2026-06-08 18:22:53 +05:30
committed by Anup Patel
parent a59c8fb9fb
commit 8570b93844
4 changed files with 32 additions and 1 deletions
+20
View File
@@ -408,6 +408,26 @@ int sbi_irqchip_unregister_handler(struct sbi_irqchip_device *chip,
return 0;
}
struct sbi_irqchip_device *sbi_irqchip_find_device_by_caps(unsigned long caps,
struct sbi_irqchip_device *first)
{
struct sbi_irqchip_device *chip;
bool found = false;
sbi_list_for_each_entry(chip, &irqchip_list, node) {
if (!found) {
if (first == chip)
found = true;
else
continue;
}
if ((chip->caps & caps) == caps)
return chip;
}
return NULL;
}
struct sbi_irqchip_device *sbi_irqchip_find_device(u32 id)
{
struct sbi_irqchip_device *chip;