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