soc/amd: factor out common AOAC definitions
The register locations and bit definitions are the same for Stoneyridge and Picasso. Since not all devices are present on all SoCs, keep those numbers in the SoC-specific code. Change-Id: Ib882927e399031c376738e5a35793b3d7654b9cf Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/48182 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
parent
f7b410d409
commit
5b3831c75a
|
@ -0,0 +1,35 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef AMD_BLOCK_AOAC_H
|
||||||
|
#define AMD_BLOCK_AOAC_H
|
||||||
|
|
||||||
|
#include <types.h>
|
||||||
|
|
||||||
|
/* FCH AOAC Registers 0xfed81e00 */
|
||||||
|
#define AOAC_DEV_D3_CTL(device) (0x40 + device * 2)
|
||||||
|
#define AOAC_DEV_D3_STATE(device) (AOAC_DEV_D3_CTL(device) + 1)
|
||||||
|
|
||||||
|
/* Bit definitions for Device D3 Control AOACx0000[40...7E; even byte addresses] */
|
||||||
|
#define FCH_AOAC_TARGET_DEVICE_STATE (BIT(0) + BIT(1))
|
||||||
|
#define FCH_AOAC_D0_UNINITIALIZED 0
|
||||||
|
#define FCH_AOAC_D0_INITIALIZED 1
|
||||||
|
#define FCH_AOAC_D1_2_3_WARM 2
|
||||||
|
#define FCH_AOAC_D3_COLD 3
|
||||||
|
#define FCH_AOAC_DEVICE_STATE BIT(2)
|
||||||
|
#define FCH_AOAC_PWR_ON_DEV BIT(3)
|
||||||
|
#define FCH_AOAC_SW_PWR_ON_RSTB BIT(4)
|
||||||
|
#define FCH_AOAC_SW_REF_CLK_OK BIT(5)
|
||||||
|
#define FCH_AOAC_SW_RST_B BIT(6)
|
||||||
|
#define FCH_AOAC_IS_SW_CONTROL BIT(7)
|
||||||
|
|
||||||
|
/* Bit definitions for Device D3 State AOACx0000[41...7f; odd byte addresses] */
|
||||||
|
#define FCH_AOAC_PWR_RST_STATE BIT(0)
|
||||||
|
#define FCH_AOAC_RST_CLK_OK_STATE BIT(1)
|
||||||
|
#define FCH_AOAC_RST_B_STATE BIT(2)
|
||||||
|
#define FCH_AOAC_DEV_OFF_GATING_STATE BIT(3)
|
||||||
|
#define FCH_AOAC_D3COLD BIT(4)
|
||||||
|
#define FCH_AOAC_CLK_OK_STATE BIT(5)
|
||||||
|
#define FCH_AOAC_STAT0 BIT(6)
|
||||||
|
#define FCH_AOAC_STAT1 BIT(7)
|
||||||
|
|
||||||
|
#endif /* AMD_BLOCK_AOAC_H */
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <amdblocks/acpimmio.h>
|
#include <amdblocks/acpimmio.h>
|
||||||
|
#include <amdblocks/aoac.h>
|
||||||
#include <soc/southbridge.h>
|
#include <soc/southbridge.h>
|
||||||
#include <delay.h>
|
#include <delay.h>
|
||||||
|
|
||||||
|
|
|
@ -183,10 +183,7 @@
|
||||||
#define I2C_PAD_CTRL_SPARE0 BIT(17)
|
#define I2C_PAD_CTRL_SPARE0 BIT(17)
|
||||||
#define I2C_PAD_CTRL_SPARE1 BIT(18)
|
#define I2C_PAD_CTRL_SPARE1 BIT(18)
|
||||||
|
|
||||||
/* FCH AOAC Registers 0xfed81e00 */
|
/* FCH AOAC device offsets for AOAC_DEV_D3_CTL/AOAC_DEV_D3_STATE */
|
||||||
#define AOAC_DEV_D3_CTL(device) (0x40 + device * 2)
|
|
||||||
#define AOAC_DEV_D3_STATE(device) (AOAC_DEV_D3_CTL(device) + 1)
|
|
||||||
|
|
||||||
#define FCH_AOAC_DEV_CLK_GEN 0
|
#define FCH_AOAC_DEV_CLK_GEN 0
|
||||||
#define FCH_AOAC_DEV_I2C2 7
|
#define FCH_AOAC_DEV_I2C2 7
|
||||||
#define FCH_AOAC_DEV_I2C3 8
|
#define FCH_AOAC_DEV_I2C3 8
|
||||||
|
@ -198,29 +195,6 @@
|
||||||
#define FCH_AOAC_DEV_UART3 26
|
#define FCH_AOAC_DEV_UART3 26
|
||||||
#define FCH_AOAC_DEV_ESPI 27
|
#define FCH_AOAC_DEV_ESPI 27
|
||||||
|
|
||||||
/* Bit definitions for Device D3 Control AOACx0000[40...7E] step 2 */
|
|
||||||
#define FCH_AOAC_TARGET_DEVICE_STATE (BIT(0) + BIT(1))
|
|
||||||
#define FCH_AOAC_D0_UNINITIALIZED 0
|
|
||||||
#define FCH_AOAC_D0_INITIALIZED 1
|
|
||||||
#define FCH_AOAC_D1_2_3_WARM 2
|
|
||||||
#define FCH_AOAC_D3_COLD 3
|
|
||||||
#define FCH_AOAC_DEVICE_STATE BIT(2)
|
|
||||||
#define FCH_AOAC_PWR_ON_DEV BIT(3)
|
|
||||||
#define FCH_AOAC_SW_PWR_ON_RSTB BIT(4)
|
|
||||||
#define FCH_AOAC_SW_REF_CLK_OK BIT(5)
|
|
||||||
#define FCH_AOAC_SW_RST_B BIT(6)
|
|
||||||
#define FCH_AOAC_IS_SW_CONTROL BIT(7)
|
|
||||||
|
|
||||||
/* Bit definitions for Device D3 State AOACx0000[41...7f] step 2 */
|
|
||||||
#define FCH_AOAC_PWR_RST_STATE BIT(0)
|
|
||||||
#define FCH_AOAC_RST_CLK_OK_STATE BIT(1)
|
|
||||||
#define FCH_AOAC_RST_B_STATE BIT(2)
|
|
||||||
#define FCH_AOAC_DEV_OFF_GATING_STATE BIT(3)
|
|
||||||
#define FCH_AOAC_D3COLD BIT(4)
|
|
||||||
#define FCH_AOAC_CLK_OK_STATE BIT(5)
|
|
||||||
#define FCH_AOAC_STAT0 BIT(6)
|
|
||||||
#define FCH_AOAC_STAT1 BIT(7)
|
|
||||||
|
|
||||||
#define FCH_LEGACY_UART_DECODE (ALINK_AHB_ADDRESS + 0x20) /* 0xfedc0020 */
|
#define FCH_LEGACY_UART_DECODE (ALINK_AHB_ADDRESS + 0x20) /* 0xfedc0020 */
|
||||||
#define FCH_LEGACY_UART_MAP_SHIFT 8
|
#define FCH_LEGACY_UART_MAP_SHIFT 8
|
||||||
#define FCH_LEGACY_UART_MAP_SIZE 2
|
#define FCH_LEGACY_UART_MAP_SIZE 2
|
||||||
|
|
|
@ -189,10 +189,7 @@
|
||||||
#define DEBUG_PORT_ENABLE BIT(18)
|
#define DEBUG_PORT_ENABLE BIT(18)
|
||||||
#define DEBUG_PORT_MASK (BIT(16) | BIT(17) | BIT(18))
|
#define DEBUG_PORT_MASK (BIT(16) | BIT(17) | BIT(18))
|
||||||
|
|
||||||
/* FCH AOAC Registers 0xfed81e00 */
|
/* FCH AOAC device offsets for AOAC_DEV_D3_CTL/AOAC_DEV_D3_STATE */
|
||||||
#define AOAC_DEV_D3_CTL(device) (0x40 + device * 2)
|
|
||||||
#define AOAC_DEV_D3_STATE(device) (AOAC_DEV_D3_CTL(device) + 1)
|
|
||||||
|
|
||||||
#define FCH_AOAC_DEV_CLK_GEN 0
|
#define FCH_AOAC_DEV_CLK_GEN 0
|
||||||
#define FCH_AOAC_DEV_I2C0 5
|
#define FCH_AOAC_DEV_I2C0 5
|
||||||
#define FCH_AOAC_DEV_I2C1 6
|
#define FCH_AOAC_DEV_I2C1 6
|
||||||
|
@ -204,25 +201,6 @@
|
||||||
#define FCH_AOAC_DEV_USB2 18
|
#define FCH_AOAC_DEV_USB2 18
|
||||||
#define FCH_AOAC_DEV_USB3 23
|
#define FCH_AOAC_DEV_USB3 23
|
||||||
|
|
||||||
/* Bit definitions for all FCH_AOAC_D3_CONTROL_* Registers */
|
|
||||||
#define FCH_AOAC_TARGET_DEVICE_STATE (BIT(0) + BIT(1))
|
|
||||||
#define FCH_AOAC_DEVICE_STATE BIT(2)
|
|
||||||
#define FCH_AOAC_PWR_ON_DEV BIT(3)
|
|
||||||
#define FCH_AOAC_SW_PWR_ON_RSTB BIT(4)
|
|
||||||
#define FCH_AOAC_SW_REF_CLK_OK BIT(5)
|
|
||||||
#define FCH_AOAC_SW_RST_B BIT(6)
|
|
||||||
#define FCH_AOAC_IS_SW_CONTROL BIT(7)
|
|
||||||
|
|
||||||
/* Bit definitions for all FCH_AOAC_D3_STATE_* Registers */
|
|
||||||
#define FCH_AOAC_PWR_RST_STATE BIT(0)
|
|
||||||
#define FCH_AOAC_RST_CLK_OK_STATE BIT(1)
|
|
||||||
#define FCH_AOAC_RST_B_STATE BIT(2)
|
|
||||||
#define FCH_AOAC_DEV_OFF_GATING_STATE BIT(3)
|
|
||||||
#define FCH_AOAC_D3COLD BIT(4)
|
|
||||||
#define FCH_AOAC_CLK_OK_STATE BIT(5)
|
|
||||||
#define FCH_AOAC_STAT0 BIT(6)
|
|
||||||
#define FCH_AOAC_STAT1 BIT(7)
|
|
||||||
|
|
||||||
#define PM1_LIMIT 16
|
#define PM1_LIMIT 16
|
||||||
#define GPE0_LIMIT 28
|
#define GPE0_LIMIT 28
|
||||||
#define TOTAL_BITS(a) (8 * sizeof(a))
|
#define TOTAL_BITS(a) (8 * sizeof(a))
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <acpi/acpi_gnvs.h>
|
#include <acpi/acpi_gnvs.h>
|
||||||
#include <amdblocks/amd_pci_util.h>
|
#include <amdblocks/amd_pci_util.h>
|
||||||
#include <amdblocks/agesawrapper.h>
|
#include <amdblocks/agesawrapper.h>
|
||||||
|
#include <amdblocks/aoac.h>
|
||||||
#include <amdblocks/reset.h>
|
#include <amdblocks/reset.h>
|
||||||
#include <amdblocks/acpimmio.h>
|
#include <amdblocks/acpimmio.h>
|
||||||
#include <amdblocks/lpc.h>
|
#include <amdblocks/lpc.h>
|
||||||
|
|
Loading…
Reference in New Issue