soc/amd/cezanne/chip: add functionality to power down eMMC interface

Power down the eMMC controller via the AOAC interface when it's not
enabled in the devicetree.

BUG=b:184978118
TEST=On guybrush the unused eMMC controller is disabled in AOAC after
applying this patch. Before this patch it was enabled.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I18f4626a29fdc422218777058341b0eae401bcd4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55537
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Felix Held 2021-06-15 17:08:30 +02:00 committed by Marshall Dawson
parent a11eca149a
commit 79f28249cd
2 changed files with 7 additions and 0 deletions

View File

@ -1,10 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#include <amdblocks/aoac.h>
#include <console/console.h> #include <console/console.h>
#include <device/device.h> #include <device/device.h>
#include <device/pci.h> #include <device/pci.h>
#include <fsp/api.h> #include <fsp/api.h>
#include <soc/acpi.h> #include <soc/acpi.h>
#include <soc/aoac_defs.h>
#include <soc/cpu.h> #include <soc/cpu.h>
#include <soc/data_fabric.h> #include <soc/data_fabric.h>
#include <soc/pci_devs.h> #include <soc/pci_devs.h>
@ -57,6 +59,10 @@ static void set_mmio_dev_ops(struct device *dev)
case APU_UART1_BASE: case APU_UART1_BASE:
dev->ops = &cezanne_uart_mmio_ops; dev->ops = &cezanne_uart_mmio_ops;
break; break;
case APU_EMMC_BASE:
if (!dev->enabled)
power_off_aoac_device(FCH_AOAC_DEV_EMMC);
break;
} }
} }

View File

@ -109,4 +109,5 @@ chip soc/amd/cezanne
device mmio 0xfedc5000 alias i2c_3 off end device mmio 0xfedc5000 alias i2c_3 off end
device mmio 0xfedc9000 alias uart_0 off end device mmio 0xfedc9000 alias uart_0 off end
device mmio 0xfedca000 alias uart_1 off end device mmio 0xfedca000 alias uart_1 off end
device mmio 0xfedd5000 alias emmc off end
end end