1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 2 /* 3 * Root interrupt controller for the BCM2836 ( 3 * Root interrupt controller for the BCM2836 (Raspberry Pi 2). 4 * 4 * 5 * Copyright 2015 Broadcom 5 * Copyright 2015 Broadcom 6 */ 6 */ 7 7 8 #define LOCAL_CONTROL 0x000 8 #define LOCAL_CONTROL 0x000 9 #define LOCAL_PRESCALER 0x008 9 #define LOCAL_PRESCALER 0x008 10 10 11 /* 11 /* 12 * The low 2 bits identify the CPU that the GP 12 * The low 2 bits identify the CPU that the GPU IRQ goes to, and the 13 * next 2 bits identify the CPU that the GPU F 13 * next 2 bits identify the CPU that the GPU FIQ goes to. 14 */ 14 */ 15 #define LOCAL_GPU_ROUTING 0x00c 15 #define LOCAL_GPU_ROUTING 0x00c 16 /* When setting bits 0-3, enables PMU interrup 16 /* When setting bits 0-3, enables PMU interrupts on that CPU. */ 17 #define LOCAL_PM_ROUTING_SET 0x010 17 #define LOCAL_PM_ROUTING_SET 0x010 18 /* When setting bits 0-3, disables PMU interru 18 /* When setting bits 0-3, disables PMU interrupts on that CPU. */ 19 #define LOCAL_PM_ROUTING_CLR 0x014 19 #define LOCAL_PM_ROUTING_CLR 0x014 20 /* 20 /* 21 * The low 4 bits of this are the CPU's timer 21 * The low 4 bits of this are the CPU's timer IRQ enables, and the 22 * next 4 bits are the CPU's timer FIQ enables 22 * next 4 bits are the CPU's timer FIQ enables (which override the IRQ 23 * bits). 23 * bits). 24 */ 24 */ 25 #define LOCAL_TIMER_INT_CONTROL0 0x040 25 #define LOCAL_TIMER_INT_CONTROL0 0x040 26 /* 26 /* 27 * The low 4 bits of this are the CPU's per-ma 27 * The low 4 bits of this are the CPU's per-mailbox IRQ enables, and 28 * the next 4 bits are the CPU's per-mailbox F 28 * the next 4 bits are the CPU's per-mailbox FIQ enables (which 29 * override the IRQ bits). 29 * override the IRQ bits). 30 */ 30 */ 31 #define LOCAL_MAILBOX_INT_CONTROL0 0x050 31 #define LOCAL_MAILBOX_INT_CONTROL0 0x050 32 /* 32 /* 33 * The CPU's interrupt status register. Bits !! 33 * The CPU's interrupt status register. Bits are defined by the the 34 * LOCAL_IRQ_* bits below. 34 * LOCAL_IRQ_* bits below. 35 */ 35 */ 36 #define LOCAL_IRQ_PENDING0 0x060 36 #define LOCAL_IRQ_PENDING0 0x060 37 /* Same status bits as above, but for FIQ. */ 37 /* Same status bits as above, but for FIQ. */ 38 #define LOCAL_FIQ_PENDING0 0x070 38 #define LOCAL_FIQ_PENDING0 0x070 39 /* 39 /* 40 * Mailbox write-to-set bits. There are 16 ma 40 * Mailbox write-to-set bits. There are 16 mailboxes, 4 per CPU, and 41 * these bits are organized by mailbox number 41 * these bits are organized by mailbox number and then CPU number. We 42 * use mailbox 0 for IPIs. The mailbox's inte 42 * use mailbox 0 for IPIs. The mailbox's interrupt is raised while 43 * any bit is set. 43 * any bit is set. 44 */ 44 */ 45 #define LOCAL_MAILBOX0_SET0 0x080 45 #define LOCAL_MAILBOX0_SET0 0x080 46 #define LOCAL_MAILBOX3_SET0 0x08c 46 #define LOCAL_MAILBOX3_SET0 0x08c 47 /* Mailbox write-to-clear bits. */ 47 /* Mailbox write-to-clear bits. */ 48 #define LOCAL_MAILBOX0_CLR0 0x0c0 48 #define LOCAL_MAILBOX0_CLR0 0x0c0 49 #define LOCAL_MAILBOX3_CLR0 0x0cc 49 #define LOCAL_MAILBOX3_CLR0 0x0cc 50 50 51 #define LOCAL_IRQ_CNTPSIRQ 0 51 #define LOCAL_IRQ_CNTPSIRQ 0 52 #define LOCAL_IRQ_CNTPNSIRQ 1 52 #define LOCAL_IRQ_CNTPNSIRQ 1 53 #define LOCAL_IRQ_CNTHPIRQ 2 53 #define LOCAL_IRQ_CNTHPIRQ 2 54 #define LOCAL_IRQ_CNTVIRQ 3 54 #define LOCAL_IRQ_CNTVIRQ 3 55 #define LOCAL_IRQ_MAILBOX0 4 55 #define LOCAL_IRQ_MAILBOX0 4 56 #define LOCAL_IRQ_MAILBOX1 5 56 #define LOCAL_IRQ_MAILBOX1 5 57 #define LOCAL_IRQ_MAILBOX2 6 57 #define LOCAL_IRQ_MAILBOX2 6 58 #define LOCAL_IRQ_MAILBOX3 7 58 #define LOCAL_IRQ_MAILBOX3 7 59 #define LOCAL_IRQ_GPU_FAST 8 59 #define LOCAL_IRQ_GPU_FAST 8 60 #define LOCAL_IRQ_PMU_FAST 9 60 #define LOCAL_IRQ_PMU_FAST 9 61 #define LAST_IRQ LOCAL_IRQ_PMU_ 61 #define LAST_IRQ LOCAL_IRQ_PMU_FAST 62 62
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.