meta-ampere: u-boot: Disable internal PD resistors for GPIOs
Configure SCU8C - Multi-function pin control 4 to disable internal pull
down resistors for GPIOJ, GPIOG/GPIOAB, GPIOD/GPIOY, GPIOC/GPIOS as
external resistors are already installed.
Tested: scan I2C4 and check devices on the bus are detected
Signed-off-by: Thinh Pham <thinh.pham@amperecomputing.com>
Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com>
Change-Id: I5a4b682310b5243830bd9c7a66889b0a52c4770c
diff --git a/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0002-aspeed-Disable-internal-PD-resistors-for-GPIOs.patch b/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0002-aspeed-Disable-internal-PD-resistors-for-GPIOs.patch
new file mode 100644
index 0000000..249d439
--- /dev/null
+++ b/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0002-aspeed-Disable-internal-PD-resistors-for-GPIOs.patch
@@ -0,0 +1,45 @@
+From c6e0470d82417b79b23f218c6db1099eb6e160af Mon Sep 17 00:00:00 2001
+From: "Thang Q. Nguyen" <thang@os.amperecomputing.com>
+Date: Wed, 23 Dec 2020 04:42:21 +0000
+Subject: [PATCH] aspeed: Disable internal PD resistors for GPIOs
+
+Configure SCU8C - Multi-function pin control 4 to disable internal pull
+down resistors for GPIOJ, GPIOG/GPIOAB, GPIOD/GPIOY, GPIOC/GPIOS as
+external resistors are already installed.
+
+Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com>
+---
+ board/aspeed/ast-g5/ast-g5.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/board/aspeed/ast-g5/ast-g5.c b/board/aspeed/ast-g5/ast-g5.c
+index fba22a728e..9bf6c905fe 100644
+--- a/board/aspeed/ast-g5/ast-g5.c
++++ b/board/aspeed/ast-g5/ast-g5.c
+@@ -27,9 +27,23 @@ int board_init(void)
+ #ifdef CONFIG_BOARD_LATE_INIT
+ int board_late_init(void)
+ {
++ u32 val;
++
+ /* Switch PWM to GPIO mode to make FAN run in max speed */
+ ast_scu_switch_pwm_to_gpio_mode();
+
++ /*
++ * Disable internal pull down resistor for GPIOJ,
++ * GPIOG/GPIOAB, GPIOD/GPIOY, GPIOC/GPIOS as external pull up/down
++ * resistors are installed already. Unlock SCU regs before writing.
++ */
++ writel(SCU_PROTECT_UNLOCK, AST_SCU_BASE);
++ val = readl(AST_SCU_BASE + AST_SCU_FUN_PIN_CTRL4) | 0x024C0000;
++ writel(val, AST_SCU_BASE + AST_SCU_FUN_PIN_CTRL4);
++#ifdef CONFIG_AST_SCU_LOCK
++ writel(0xaa, AST_SCU_BASE);
++#endif
++
+ return 0;
+ }
+ #endif
+--
+2.25.1
+
diff --git a/meta-jade/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend b/meta-jade/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
index 983dc24..c40bfcd 100644
--- a/meta-jade/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
+++ b/meta-jade/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
@@ -2,4 +2,5 @@
SRC_URI += " \
file://0001-aspeed-scu-Switch-PWM-pin-to-GPIO-input-mode.patch \
+ file://0002-aspeed-Disable-internal-PD-resistors-for-GPIOs.patch \
"