summaryrefslogtreecommitdiffstats
path: root/src/soc/mediatek
diff options
context:
space:
mode:
authorJason Chen <Jason-ch.Chen@mediatek.com>2023-03-23 14:59:34 +0800
committerRex-BC Chen <rex-bc.chen@mediatek.com>2023-04-10 01:55:31 +0000
commit132a3ab1a71aa19a38eef9bb81f1b8e8ec437495 (patch)
tree10bfed7c31ee2d12a954e892d683d0eabf4fbc44 /src/soc/mediatek
parentb7089e98e7d230d9e6be615f9d28397cc06119d2 (diff)
downloadcoreboot-132a3ab1a71aa19a38eef9bb81f1b8e8ec437495.tar.gz
coreboot-132a3ab1a71aa19a38eef9bb81f1b8e8ec437495.tar.bz2
coreboot-132a3ab1a71aa19a38eef9bb81f1b8e8ec437495.zip
soc/mediatek/mt8188: Set pin drive strength to 8mA for NOR
Set NOR pin drive to 8mA to comply with HW requirement. This implementation is according to chapter 5.8 and 5.19 in MT8188 Functional Specification. BUG=b:270911452 TEST=boot with following logs [DEBUG] mtk_snfc_init: got pin drive: 0x3 [DEBUG] mtk_snfc_init: got pin drive: 0x3 [DEBUG] mtk_snfc_init: got pin drive: 0x3 [DEBUG] mtk_snfc_init: got pin drive: 0x3 Change-Id: If8344449f5b34cefcaaee6936e94f7f669c7148b Signed-off-by: Jason Chen <Jason-ch.Chen@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74064 Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Reviewed-by: Yidi Lin <yidilin@google.com> Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/mediatek')
-rw-r--r--src/soc/mediatek/mt8188/spi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/soc/mediatek/mt8188/spi.c b/src/soc/mediatek/mt8188/spi.c
index 56efec5d9d43..0596bb9b7f77 100644
--- a/src/soc/mediatek/mt8188/spi.c
+++ b/src/soc/mediatek/mt8188/spi.c
@@ -6,6 +6,7 @@
*/
#include <assert.h>
+#include <console/console.h>
#include <device/mmio.h>
#include <gpio.h>
#include <soc/addressmap.h>
@@ -105,6 +106,14 @@ void mtk_snfc_init(void)
for (size_t i = 0; i < ARRAY_SIZE(nor_pinmux); i++) {
gpio_set_pull(ptr[i].gpio, GPIO_PULL_ENABLE, ptr[i].select);
gpio_set_mode(ptr[i].gpio, ptr[i].func);
+
+ if (gpio_set_driving(ptr[i].gpio, GPIO_DRV_8_MA) < 0)
+ printk(BIOS_ERR,
+ "%s: failed to set pin drive to 8 mA for %d\n",
+ __func__, ptr[i].gpio.id);
+ else
+ printk(BIOS_DEBUG, "%s: got pin drive: %#x\n", __func__,
+ gpio_get_driving(ptr[i].gpio));
}
}