irq/irq_sim: add irq_set_type() callback
Implement the irq_set_type() callback and call irqd_set_trigger_type() internally so that users interested in the configured trigger type can later retrieve it using irqd_get_trigger_type(). We only support edge trigger types. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
68b7587baa
commit
8d91ecc84d
|
@ -25,10 +25,22 @@ static void irq_sim_irqunmask(struct irq_data *data)
|
|||
irq_ctx->enabled = true;
|
||||
}
|
||||
|
||||
static int irq_sim_set_type(struct irq_data *data, unsigned int type)
|
||||
{
|
||||
/* We only support rising and falling edge trigger types. */
|
||||
if (type & ~IRQ_TYPE_EDGE_BOTH)
|
||||
return -EINVAL;
|
||||
|
||||
irqd_set_trigger_type(data, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct irq_chip irq_sim_irqchip = {
|
||||
.name = "irq_sim",
|
||||
.irq_mask = irq_sim_irqmask,
|
||||
.irq_unmask = irq_sim_irqunmask,
|
||||
.irq_set_type = irq_sim_set_type,
|
||||
};
|
||||
|
||||
static void irq_sim_handle_irq(struct irq_work *work)
|
||||
|
|
Loading…
Reference in a new issue