Lines Matching +full:three +full:- +full:level

1 // SPDX-License-Identifier: GPL-2.0
18 * Dreamcast System ASIC Hardware Events -
28 * There are three 32-bit ESRs located at 0xa05f6900 - 0xa05f6908. Event
29 * types can be found in arch/sh/include/mach-dreamcast/mach/sysasic.h.
30 * There are three groups of EMRs that parallel the ESRs. Each EMR group
31 * corresponds to an IRQ, so 0xa05f6910 - 0xa05f6918 triggers IRQ 13,
32 * 0xa05f6920 - 0xa05f6928 triggers IRQ 11, and 0xa05f6930 - 0xa05f6938
39 * 6900/6910 - Events 0-31, IRQ 13
40 * 6904/6924 - Events 32-63, IRQ 11
41 * 6908/6938 - Events 64-95, IRQ 9
52 #define LEVEL(event) (((event) - HW_EVENT_IRQ_BASE) / 32) macro
55 #define EVENT_BIT(event) (((event) - HW_EVENT_IRQ_BASE) & 31)
65 unsigned int irq = data->irq; in disable_systemasic_irq()
66 __u32 emr = EMR_BASE + (LEVEL(irq) << 4) + (LEVEL(irq) << 2); in disable_systemasic_irq()
77 unsigned int irq = data->irq; in enable_systemasic_irq()
78 __u32 emr = EMR_BASE + (LEVEL(irq) << 4) + (LEVEL(irq) << 2); in enable_systemasic_irq()
89 unsigned int irq = data->irq; in mask_ack_systemasic_irq()
90 __u32 esr = ESR_BASE + (LEVEL(irq) << 2); in mask_ack_systemasic_irq()
107 __u32 emr, esr, status, level; in systemasic_irq_demux() local
112 level = 0; in systemasic_irq_demux()
115 level = 1; in systemasic_irq_demux()
118 level = 2; in systemasic_irq_demux()
123 emr = EMR_BASE + (level << 4) + (level << 2); in systemasic_irq_demux()
124 esr = ESR_BASE + (level << 2); in systemasic_irq_demux()
133 irq = HW_EVENT_IRQ_BASE + j + (level << 5); in systemasic_irq_demux()
147 HW_EVENT_IRQ_MAX - HW_EVENT_IRQ_BASE, -1); in systemasic_irq_init()