2018-04-27 04:07:47 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2017-08-14 22:53:16 +08:00
|
|
|
/*
|
2018-04-27 04:07:47 +08:00
|
|
|
* Copyright (C) 2017-2018 Bartosz Golaszewski <brgl@bgdev.pl>
|
2020-05-14 16:39:01 +08:00
|
|
|
* Copyright (C) 2020 Bartosz Golaszewski <bgolaszewski@baylibre.com>
|
2017-08-14 22:53:16 +08:00
|
|
|
*/
|
|
|
|
|
2018-04-27 04:07:47 +08:00
|
|
|
#ifndef _LINUX_IRQ_SIM_H
|
|
|
|
#define _LINUX_IRQ_SIM_H
|
|
|
|
|
2017-08-14 22:53:17 +08:00
|
|
|
#include <linux/device.h>
|
2020-05-14 16:39:01 +08:00
|
|
|
#include <linux/fwnode.h>
|
|
|
|
#include <linux/irqdomain.h>
|
2017-08-14 22:53:16 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Provides a framework for allocating simulated interrupts which can be
|
|
|
|
* requested like normal irqs and enqueued from process context.
|
|
|
|
*/
|
|
|
|
|
2020-05-14 16:39:01 +08:00
|
|
|
struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode,
|
|
|
|
unsigned int num_irqs);
|
|
|
|
struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
|
|
|
|
struct fwnode_handle *fwnode,
|
|
|
|
unsigned int num_irqs);
|
|
|
|
void irq_domain_remove_sim(struct irq_domain *domain);
|
2017-08-14 22:53:16 +08:00
|
|
|
|
|
|
|
#endif /* _LINUX_IRQ_SIM_H */
|