1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
8 struct roc_bphy_irq_vec {
11 void (*handler)(int irq_num, void *isr_data);
15 struct roc_bphy_irq_chip {
16 struct roc_bphy_irq_vec *irq_vecs;
18 uint64_t avail_irq_bmask;
24 struct roc_bphy_intr {
26 void (*intr_handler)(int irq_num, void *isr_data);
29 /* stack for this interrupt, not supplied by a user */
33 __roc_api struct roc_bphy_irq_chip *roc_bphy_intr_init(void);
34 __roc_api void roc_bphy_intr_fini(struct roc_bphy_irq_chip *irq_chip);
35 __roc_api void roc_bphy_intr_handler(unsigned int irq_num);
36 __roc_api bool roc_bphy_intr_available(struct roc_bphy_irq_chip *irq_chip,
38 __roc_api int roc_bphy_intr_clear(struct roc_bphy_irq_chip *chip, int irq_num);
39 __roc_api int roc_bphy_intr_register(struct roc_bphy_irq_chip *irq_chip,
40 struct roc_bphy_intr *intr);
42 #endif /* _ROC_BPHY_IRQ_ */