aboutsummaryrefslogtreecommitdiffstats
path: root/roms/opensbi/include/sbi_utils/irqchip
diff options
context:
space:
mode:
Diffstat (limited to 'roms/opensbi/include/sbi_utils/irqchip')
-rw-r--r--roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h26
-rw-r--r--roms/opensbi/include/sbi_utils/irqchip/plic.h29
2 files changed, 55 insertions, 0 deletions
diff --git a/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h b/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h
new file mode 100644
index 000000000..13ef6f711
--- /dev/null
+++ b/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h
@@ -0,0 +1,26 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2020 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __FDT_IRQCHIP_H__
+#define __FDT_IRQCHIP_H__
+
+#include <sbi/sbi_types.h>
+
+struct fdt_irqchip {
+ const struct fdt_match *match_table;
+ int (*cold_init)(void *fdt, int nodeoff, const struct fdt_match *match);
+ int (*warm_init)(void);
+ void (*exit)(void);
+};
+
+void fdt_irqchip_exit(void);
+
+int fdt_irqchip_init(bool cold_boot);
+
+#endif
diff --git a/roms/opensbi/include/sbi_utils/irqchip/plic.h b/roms/opensbi/include/sbi_utils/irqchip/plic.h
new file mode 100644
index 000000000..0e56d801e
--- /dev/null
+++ b/roms/opensbi/include/sbi_utils/irqchip/plic.h
@@ -0,0 +1,29 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __IRQCHIP_PLIC_H__
+#define __IRQCHIP_PLIC_H__
+
+#include <sbi/sbi_types.h>
+
+struct plic_data {
+ unsigned long addr;
+ unsigned long num_src;
+};
+
+int plic_warm_irqchip_init(struct plic_data *plic,
+ int m_cntx_id, int s_cntx_id);
+
+int plic_cold_irqchip_init(struct plic_data *plic);
+
+void plic_set_thresh(struct plic_data *plic, u32 cntxid, u32 val);
+
+void plic_set_ie(struct plic_data *plic, u32 cntxid, u32 word_index, u32 val);
+
+#endif