/** @file * * RPi defines for constructing ACPI tables * * Copyright (c) 2020, Pete Batard * Copyright (c) 2019, ARM Ltd. All rights reserved. * Copyright (c) 2018, Andrei Warkentin * Copyright (c) Microsoft Corporation. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * **/ #ifndef __RPI_ACPITABLES_H__ #define __RPI_ACPITABLES_H__ #include // The ASL compiler can't perform arithmetic on MEMORY32FIXED () // parameters so you can't pass a constant like BASE + OFFSET. // We therefore define a macro that can perform arithmetic base // address update with an offset. #define MEMORY32SETBASE(BufName, MemName, VarName, Offset) \ CreateDwordField (^BufName, ^MemName._BAS, VarName) \ Add (BCM2836_SOC_REGISTERS, Offset, VarName) //------------------------------------------------------------------------ // Interrupts. These are specific to each platform //------------------------------------------------------------------------ #if defined(CONFIG_TARGET_RPI_3) #define BCM2836_V3D_BUS_INTERRUPT 0x2A #define BCM2836_DMA_INTERRUPT 0x3B #define BCM2836_SPI1_INTERRUPT 0x3D #define BCM2836_SPI2_INTERRUPT 0x3D #define BCM2836_HVS_INTERRUPT 0x41 #define BCM2836_HDMI0_INTERRUPT 0x48 #define BCM2836_HDMI1_INTERRUPT 0x49 #define BCM2836_PV2_INTERRUPT 0x4A #define BCM2836_PV0_INTERRUPT 0x4D #define BCM2836_PV1_INTERRUPT 0x4E #define BCM2836_MBOX_INTERRUPT 0x61 #define BCM2836_VCHIQ_INTERRUPT 0x62 #define BCM2386_GPIO_INTERRUPT0 0x51 #define BCM2386_GPIO_INTERRUPT1 0x52 #define BCM2386_GPIO_INTERRUPT2 0x53 #define BCM2386_GPIO_INTERRUPT3 0x54 #define BCM2836_I2C1_INTERRUPT 0x55 #define BCM2836_I2C2_INTERRUPT 0x55 #define BCM2836_SPI0_INTERRUPT 0x56 #define BCM2836_USB_INTERRUPT 0x29 #define BCM2836_SDHOST_INTERRUPT 0x58 #define BCM2836_MMCHS1_INTERRUPT 0x5E #define BCM2836_MINI_UART_INTERRUPT 0x3D #define BCM2836_PL011_UART_INTERRUPT 0x59 #elif defined(CONFIG_TARGET_RPI_4) #define BCM2836_V3D_BUS_INTERRUPT 0x2A #define BCM2836_DMA_INTERRUPT 0x3B #define BCM2836_SPI1_INTERRUPT 0x7D #define BCM2836_SPI2_INTERRUPT 0x7D #define BCM2836_HVS_INTERRUPT 0x41 #define BCM2836_HDMI0_INTERRUPT 0x48 #define BCM2836_HDMI1_INTERRUPT 0x49 #define BCM2836_PV2_INTERRUPT 0x4A #define BCM2836_PV0_INTERRUPT 0x4D #define BCM2836_PV1_INTERRUPT 0x4E #define BCM2836_MBOX_INTERRUPT 0x41 #define BCM2836_VCHIQ_INTERRUPT 0x42 #define BCM2386_GPIO_INTERRUPT0 0x91 #define BCM2386_GPIO_INTERRUPT1 0x92 #define BCM2386_GPIO_INTERRUPT2 0x93 #define BCM2386_GPIO_INTERRUPT3 0x94 #define BCM2836_I2C1_INTERRUPT 0x95 #define BCM2836_I2C2_INTERRUPT 0x95 #define BCM2836_SPI0_INTERRUPT 0x96 #define BCM2836_USB_INTERRUPT 0x69 #define BCM2836_SDHOST_INTERRUPT 0x98 #define BCM2836_MMCHS1_INTERRUPT 0x9E #define BCM2836_MINI_UART_INTERRUPT 0x7D #define BCM2836_PL011_UART_INTERRUPT 0x99 #define GENET_INTERRUPT0 0xBD #define GENET_INTERRUPT1 0xBE #define GENET_BASE_ADDRESS 0xFD580000 #define GENET_LENGTH 0x10000 #define THERM_SENSOR_BASE_ADDRESS 0xFD5d2200 #define THERM_SENSOR_LENGTH 0x8 #else #error "Unsupported rpi module for ACPI tables" #endif #endif // __ACPITABLES_H__