Jarried Lin has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/86371?usp=email )
Change subject: soc/mediatek/mt8196: Set MT6316 deglitch time from 2ns to 4ns ......................................................................
soc/mediatek/mt8196: Set MT6316 deglitch time from 2ns to 4ns
To fix the SPMI-P glitch, set the mt6316 deglitch time from 2ns to 4ns. Additionally, a hardware solution of SPMI damping to 0 ohm is needed.
TEST=Build passed and booted successfully. 10 platforms have passed over two days. BUG=b:386438329 BRANCH=rauru
Signed-off-by: Lu Tang lu.tang@mediatek.corp-partner.google.com Change-Id: I77bd50cc6c25d6dcded57d9d65d92a0dd19c3c86 --- M src/soc/mediatek/common/include/soc/mt6316.h M src/soc/mediatek/common/mt6316.c 2 files changed, 10 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/71/86371/1
diff --git a/src/soc/mediatek/common/include/soc/mt6316.h b/src/soc/mediatek/common/include/soc/mt6316.h index 920cb34..2e26805 100644 --- a/src/soc/mediatek/common/include/soc/mt6316.h +++ b/src/soc/mediatek/common/include/soc/mt6316.h @@ -29,6 +29,7 @@ MT6316_PMIC_TEST_CON9 = 0x222, MT6316_PMIC_PLT_DIG_WPK = 0x3B1, MT6316_PMIC_PLT_DIG_WPK_H = 0x3B2, + MT6316_PMIC_RG_SPMI_RSV1_ADDR = 0x43A, MT6316_BUCK_TOP_ELR0 = 0x1448, MT6316_BUCK_TOP_ELR1 = 0x1449, MT6316_BUCK_TOP_ELR2 = 0x144A, diff --git a/src/soc/mediatek/common/mt6316.c b/src/soc/mediatek/common/mt6316.c index 89c8c83..6fc0201 100644 --- a/src/soc/mediatek/common/mt6316.c +++ b/src/soc/mediatek/common/mt6316.c @@ -169,6 +169,14 @@ mt6316_write8(mt6316_slave_id[i], MT6316_PMIC_TEST_CON9, 0x20); }
+static void mt6316_set_all_deglitch(void) +{ + /* Set deglitch time from 2ns to 4ns */ + for (int i = 0; i < ARRAY_SIZE(mt6316_slave_id); i++) + mt6316_write_field(mt6316_slave_id[i], + MT6316_PMIC_RG_SPMI_RSV1_ADDR, 0xA, 0xFF, 0); +} + static void init_pmif_arb(void) { if (pmif_arb) @@ -196,4 +204,5 @@
mt6316_init_setting(); mt6316_set_all_test_con9(); + mt6316_set_all_deglitch(); }