summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-08-08 21:20:29 +0300
committerTom Rini <trini@konsulko.com>2021-09-04 19:26:02 +0300
commita4faf1f563160b1b9cfbdbf388d33464691d0440 (patch)
treec2ec2dc3ca4ca49999d043cc7a9ee16ee5503969
parent14c251ffe156e5b5b1332efcf5ed6fb7ae62cdc3 (diff)
downloadu-boot-a4faf1f563160b1b9cfbdbf388d33464691d0440.tar.xz
power: Refactor Makefile rules
Move the power/ rules into drivers/power to avoid clutter in the Makefile and drivers/Makefile files. We must select SPL_POWER if SPL_POWER_DOMAIN is used, since the two are currently independent and boards do not necessarily enable SPL_POWER. Add a TPL_POWER as well, as that is used by one board. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
-rw-r--r--Makefile7
-rw-r--r--common/spl/Kconfig13
-rw-r--r--configs/chromebook_coral_defconfig2
-rw-r--r--drivers/Makefile5
-rw-r--r--drivers/power/Makefile8
-rw-r--r--drivers/power/acpi_pmc/Makefile2
6 files changed, 25 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index a2f7129794..9465e228fa 100644
--- a/Makefile
+++ b/Makefile
@@ -815,13 +815,6 @@ libs-y += disk/
libs-y += drivers/
libs-y += drivers/net/
libs-y += drivers/net/phy/
-libs-y += drivers/power/ \
- drivers/power/domain/ \
- drivers/power/fuel_gauge/ \
- drivers/power/mfd/ \
- drivers/power/pmic/ \
- drivers/power/battery/ \
- drivers/power/regulator/
libs-$(CONFIG_FMAN_ENET) += drivers/net/fm/
libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
libs-$(CONFIG_SYS_FSL_MMDC) += drivers/ddr/fsl/
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 2618857860..690926df09 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1038,6 +1038,7 @@ config SPL_POWER
config SPL_POWER_DOMAIN
bool "Support power domain drivers"
+ select SPL_POWER
help
Enable support for power domain control in SPL. Many SoCs allow
power to be applied to or removed from portions of the SoC (power
@@ -1425,6 +1426,18 @@ config TPL_NEEDS_SEPARATE_STACK
Enable, if the TPL stage should not inherit its initial
stack-pointer from the settings for the SPL stage.
+config TPL_POWER
+ bool "Support power drivers"
+ help
+ Enable support for power control in TPL. This includes support
+ for PMICs (Power-management Integrated Circuits) and some of the
+ features provided by PMICs. In particular, voltage regulators can
+ be used to enable/disable power and vary its voltage. That can be
+ useful in TPL to turn on boot peripherals and adjust CPU voltage
+ so that the clock speed can be increased. This enables the drivers
+ in drivers/power, drivers/power/pmic and drivers/power/regulator
+ as part of an TPL build.
+
config TPL_TEXT_BASE
hex "Base address for the .text section of the TPL stage"
depends on TPL_NEEDS_SEPARATE_TEXT_BASE
diff --git a/configs/chromebook_coral_defconfig b/configs/chromebook_coral_defconfig
index eb0884f1f5..321ad7de5b 100644
--- a/configs/chromebook_coral_defconfig
+++ b/configs/chromebook_coral_defconfig
@@ -44,7 +44,9 @@ CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SPL_CPU=y
CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_PCI=y
+CONFIG_SPL_POWER=y
# CONFIG_SPL_SPI_FLASH_TINY is not set
+CONFIG_TPL_POWER=y
CONFIG_HUSH_PARSER=y
CONFIG_CMD_CPU=y
CONFIG_CMD_PMC=y
diff --git a/drivers/Makefile b/drivers/Makefile
index 01d6bf5523..1283b88ea1 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -22,6 +22,7 @@ obj-$(CONFIG_$(SPL_TPL_)PCH) += pch/
obj-$(CONFIG_$(SPL_TPL_)PCI) += pci/
obj-$(CONFIG_$(SPL_TPL_)PHY) += phy/
obj-$(CONFIG_$(SPL_TPL_)PINCTRL) += pinctrl/
+obj-$(CONFIG_$(SPL_TPL_)POWER) += power/
obj-$(CONFIG_$(SPL_TPL_)RAM) += ram/
obj-$(CONFIG_$(SPL_TPL_)RTC) += rtc/
obj-$(CONFIG_$(SPL_TPL_)SERIAL) += serial/
@@ -32,7 +33,6 @@ obj-$(CONFIG_$(SPL_)DM_MAILBOX) += mailbox/
obj-$(CONFIG_$(SPL_)REMOTEPROC) += remoteproc/
obj-$(CONFIG_$(SPL_)SYSINFO) += sysinfo/
obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm/
-obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC) += power/acpi_pmc/
obj-$(CONFIG_XEN) += xen/
obj-$(CONFIG_$(SPL_)FPGA) += fpga/
@@ -47,9 +47,6 @@ obj-$(CONFIG_ARMADA_XP) += ddr/marvell/axp/
obj-$(CONFIG_$(SPL_)ALTERA_SDRAM) += ddr/altera/
obj-$(CONFIG_ARCH_IMX8M) += ddr/imx/imx8m/
obj-$(CONFIG_IMX8ULP_DRAM) += ddr/imx/imx8ulp/
-obj-$(CONFIG_SPL_POWER) += power/ power/pmic/
-obj-$(CONFIG_SPL_POWER) += power/regulator/
-obj-$(CONFIG_SPL_POWER_DOMAIN) += power/domain/
obj-$(CONFIG_SPL_DM_RESET) += reset/
obj-$(CONFIG_SPL_ETH) += net/
obj-$(CONFIG_SPL_ETH) += net/phy/
diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index 801b727c90..f805027784 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -3,6 +3,14 @@
# Copyright (c) 2009 Wind River Systems, Inc.
# Tom Rix <Tom.Rix at windriver.com>
+obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC) += acpi_pmc/
+obj-y += battery/
+obj-$(CONFIG_$(SPL_TPL_)POWER_DOMAIN) += domain/
+obj-y += fuel_gauge/
+obj-y += mfd/
+obj-y += pmic/
+obj-y += regulator/
+
obj-$(CONFIG_AXP152_POWER) += axp152.o
obj-$(CONFIG_AXP209_POWER) += axp209.o
obj-$(CONFIG_AXP221_POWER) += axp221.o
diff --git a/drivers/power/acpi_pmc/Makefile b/drivers/power/acpi_pmc/Makefile
index 115788f109..0db52a6582 100644
--- a/drivers/power/acpi_pmc/Makefile
+++ b/drivers/power/acpi_pmc/Makefile
@@ -2,5 +2,5 @@
#
# Copyright 2019 Google LLC
-obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC) += acpi-pmc-uclass.o
+obj-y += acpi-pmc-uclass.o
obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC_SANDBOX) += sandbox.o pmc_emul.o