2018-04-26 16:07:47 -04:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2017-08-14 10:53:16 -04:00
|
|
|
/*
|
2018-04-26 16:07:47 -04:00
|
|
|
* Copyright (C) 2017-2018 Bartosz Golaszewski <brgl@bgdev.pl>
|
2020-05-14 04:39:01 -04:00
|
|
|
* Copyright (C) 2020 Bartosz Golaszewski <bgolaszewski@baylibre.com>
|
2017-08-14 10:53:16 -04:00
|
|
|
*/
|
|
|
|
|
2018-04-26 16:07:47 -04:00
|
|
|
#ifndef _LINUX_IRQ_SIM_H
|
|
|
|
#define _LINUX_IRQ_SIM_H
|
|
|
|
|
2017-08-14 10:53:17 -04:00
|
|
|
#include <linux/device.h>
|
2020-05-14 04:39:01 -04:00
|
|
|
#include <linux/fwnode.h>
|
|
|
|
#include <linux/irqdomain.h>
|
2017-08-14 10:53:16 -04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Provides a framework for allocating simulated interrupts which can be
|
|
|
|
* requested like normal irqs and enqueued from process context.
|
|
|
|
*/
|
|
|
|
|
2020-05-14 04:39:01 -04: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 10:53:16 -04:00
|
|
|
|
|
|
|
#endif /* _LINUX_IRQ_SIM_H */
|