91 lines
4.0 KiB
C
91 lines
4.0 KiB
C
/** @file
|
|
*
|
|
* RPi defines for constructing ACPI tables
|
|
*
|
|
* Copyright (c) 2020, Pete Batard <[email protected]>
|
|
* Copyright (c) 2019, ARM Ltd. All rights reserved.
|
|
* Copyright (c) 2018, Andrei Warkentin <[email protected]>
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
*
|
|
**/
|
|
|
|
#ifndef __RPI_ACPITABLES_H__
|
|
#define __RPI_ACPITABLES_H__
|
|
|
|
#include <acpi/acpi_table.h>
|
|
|
|
// 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__
|