summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-12-13 14:12:46 -0600
committerTom Rini <trini@konsulko.com>2024-12-13 14:12:46 -0600
commit6b34e2e7bdadbba7e47ed5d334beba4af27682f1 (patch)
tree3d9be983f1bf21c4a6d3b6e084ccf2c78cea161e
parentb83ac2a54126aef3d0ff16c0b588479ebd70a8b1 (diff)
parent0195d81ed7ddccd00dbe164e0ed23d2ebadbeb2e (diff)
Merge patch series "J721S2: Enable ESMs and related PMIC"
Udit Kumar <u-kumar1@ti.com> says: This enables the ESMs and the associated PMIC. Programming these bits is a requirement to make the watchdog actually reset the board. Logs WDT reset J721S2 https://gist.github.com/uditkumarti/93cfe863d1f3fe3abb82b1821105f274#file-j721s2-L2708 AM68 boot (this does not support WDT) https://gist.github.com/uditkumarti/93cfe863d1f3fe3abb82b1821105f274#file-am68 Link: https://lore.kernel.org/r/20241126053426.2627686-1-u-kumar1@ti.com [trini: Merge configs/am68_sk_r5_defconfig] Signed-off-by: Tom Rini <trini@konsulko.com>
-rw-r--r--arch/arm/dts/k3-j721s2-r5-common-proc-board.dts4
-rw-r--r--board/ti/j721s2/evm.c23
-rw-r--r--configs/am68_sk_r5_defconfig3
-rw-r--r--configs/j721s2_evm_r5_defconfig2
4 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
index 506ad9b7910..09afdf3954a 100644
--- a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
+++ b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
@@ -13,6 +13,10 @@
&tps659411 {
bootph-pre-ram;
+ esm: esm {
+ compatible = "ti,tps659413-esm";
+ bootph-pre-ram;
+ };
};
&wkup_vtm0 {
diff --git a/board/ti/j721s2/evm.c b/board/ti/j721s2/evm.c
index 2cfeb3bec6c..9bcf67b7bfb 100644
--- a/board/ti/j721s2/evm.c
+++ b/board/ti/j721s2/evm.c
@@ -326,4 +326,27 @@ int board_late_init(void)
void spl_board_init(void)
{
+ struct udevice *dev;
+ int ret;
+
+ if (IS_ENABLED(CONFIG_ESM_K3)) {
+ const char * const esms[] = {"esm@700000", "esm@40800000", "esm@42080000"};
+
+ for (int i = 0; i < ARRAY_SIZE(esms); ++i) {
+ ret = uclass_get_device_by_name(UCLASS_MISC, esms[i],
+ &dev);
+ if (ret) {
+ printf("MISC init for %s failed: %d\n", esms[i], ret);
+ break;
+ }
+ }
+ }
+
+ if (IS_ENABLED(CONFIG_ESM_PMIC) && ret == 0) {
+ ret = uclass_get_device_by_driver(UCLASS_MISC,
+ DM_DRIVER_GET(pmic_esm),
+ &dev);
+ if (ret)
+ printf("ESM PMIC init failed: %d\n", ret);
+ }
}
diff --git a/configs/am68_sk_r5_defconfig b/configs/am68_sk_r5_defconfig
index 81fa58743da..097bed62061 100644
--- a/configs/am68_sk_r5_defconfig
+++ b/configs/am68_sk_r5_defconfig
@@ -5,6 +5,9 @@ CONFIG_ARCH_K3=y
CONFIG_SOC_K3_J721S2=y
CONFIG_TARGET_J721S2_R5_EVM=y
+CONFIG_ESM_K3=n
+CONFIG_K3_AVS0=n
+CONFIG_ESM_PMIC=n
CONFIG_DM_REGULATOR_TPS65941=n
CONFIG_PMIC_TPS65941=n
diff --git a/configs/j721s2_evm_r5_defconfig b/configs/j721s2_evm_r5_defconfig
index f4441d6667e..23ae991e2f6 100644
--- a/configs/j721s2_evm_r5_defconfig
+++ b/configs/j721s2_evm_r5_defconfig
@@ -111,7 +111,9 @@ CONFIG_DM_MAILBOX=y
CONFIG_K3_SEC_PROXY=y
CONFIG_FS_LOADER=y
CONFIG_SPL_FS_LOADER=y
+CONFIG_ESM_K3=y
CONFIG_K3_AVS0=y
+CONFIG_ESM_PMIC=y
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_SPL_MMC_HS400_SUPPORT=y
CONFIG_MMC_SDHCI=y