meta-facebook: yosemite4: gpio: set interface of SD BIC to I3C
Set interface to SD BIC to I3C for Nuvoton BMC.
Tested:
Run yosemite4-early-sys-init successfully and boot up pass.
Signed-off-by: Tim Lee <timlee660101@gmail.com>
Change-Id: I0dc5f97257cd0ab634eb12413126ea8ac42bc754
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/probe-slot-device b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/probe-slot-device
index d837720..9640271 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/probe-slot-device
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/probe-slot-device
@@ -1,4 +1,9 @@
#!/bin/bash
+# shellcheck source=meta-facebook/meta-yosemite4/recipes-yosemite4/plat-tool/files/yosemite4-common-functions
+source /usr/libexec/yosemite4-common-functions
+
+check_nuvoton_board
+is_nuvoton_board=$?
HOST_BUS=$(($1 - 1))
HOST_VIRTUAL_BUS=$(($1 + 15))
@@ -12,3 +17,10 @@
echo $HOST_VIRTUAL_BUS-0050 > /sys/bus/i2c/drivers/at24/bind
echo $HOST_VIRTUAL_BUS-0051 > /sys/bus/i2c/drivers/at24/bind
echo $HOST_VIRTUAL_BUS-0054 > /sys/bus/i2c/drivers/at24/bind
+
+if [ "$is_nuvoton_board" -eq "1" ]
+then
+ # Set interface of SD BIC to I3C
+ GPIOCHIP=$(basename /sys/bus/i2c/devices/$HOST_BUS-0023/*gpiochip*)
+ gpioset "$GPIOCHIP" 24=1
+fi
diff --git a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
index ff0ec3c..0ee8a8d 100644
--- a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
+++ b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
@@ -13,6 +13,17 @@
done
}
+set_sd_bic_interface_to_i3c()
+{
+ for host_bus in $(seq 0 7);
+ do
+ GPIOCHIP=$(basename /sys/bus/i2c/devices/"$host_bus"-0023/*gpiochip*)
+ if [ "$GPIOCHIP" != "*gpiochip*" ]; then
+ gpioset "$GPIOCHIP" 24=1
+ fi
+ done
+}
+
# probe devices behind mux for management board cpld
rev_id_gpiochip=$(basename "/sys/bus/i2c/devices/13-0020/"*gpiochip*)
@@ -58,4 +69,10 @@
# Enable all fan input as early as possible
enable_all_fan_input
+if [ "$is_nuvoton_board" -eq "1" ]
+then
+ # Set interface to SD BIC to I3C for Nuvoton BMC
+ set_sd_bic_interface_to_i3c
+fi
+
exit 0