meta-facebook: yosemite4: Adjust sled cycle method

Use FRU information to distinguish different sled cycle methods.

PVT or after : notify CPLD by GPIOO7
Before PVT : notify CPLD by CPLD IO expender

Tested:
Did sled cycle on EVT, DVT an PVT system.

Change-Id: Iad82056ff9a57ef6bf39ec1978c5d099b55706a9
Signed-off-by: Marshall Zhan <marshall.zhan.wiwynn@gmail.com>
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 9d10248..437fd44 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
@@ -23,23 +23,6 @@
     done
 }
 
-# probe devices behind mux for management board cpld
-
-rev_id_gpiochip=$(basename "/sys/bus/i2c/devices/13-0020/"*gpiochip*)
-rev_id_bit0=$(gpioget "$rev_id_gpiochip" 0)
-rev_id_bit1=$(gpioget "$rev_id_gpiochip" 1)
-rev_id_bit2=$(gpioget "$rev_id_gpiochip" 2)
-rev_id_bit3=$(gpioget "$rev_id_gpiochip" 3)
-
-# Default devicetree was set for EVT and later, only POC will do following manual devices' probing
-if [ "$rev_id_bit0" -eq 0 ] && [ "$rev_id_bit1" -eq 0 ] && [ "$rev_id_bit2" -eq 0 ] && [ "$rev_id_bit3" -eq 0 ]
-then
-    echo 24c128 "0x50" > /sys/bus/i2c/devices/i2c-12/new_device
-    echo 24c64 "0x54" > /sys/bus/i2c/devices/i2c-12/new_device
-    echo tmp75 "0x48" > /sys/bus/i2c/devices/i2c-12/new_device
-    echo nct3018y "0x6f" > /sys/bus/i2c/devices/i2c-12/new_device
-fi
-
 # set initial value for GPIO output pins
 set_gpio EN_P5V_USB_CPLD_R    1
 set_gpio EN_NIC0_POWER_BMC_R  1
@@ -51,6 +34,7 @@
 set_gpio FM_BMC_READY_R2      1
 set_gpio SPI_LOCK_REQ_BMC_N   1
 set_gpio EN_P3V_BAT_SCALED_R  0
+set_gpio FM_BMC_SLED_CYCLE_R  0
 
 set_gpio NIC0_MAIN_PWR_EN 1
 set_gpio NIC1_MAIN_PWR_EN 1
diff --git a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
index a68839e..e254977 100644
--- a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
+++ b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
@@ -3,13 +3,23 @@
 source /usr/libexec/yosemite4-common-functions
 
 # probe devices behind mux for management board cpld
+mgm_stage=$(get_product_version Management_Board)
 
-stage=$(busctl introspect xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/Medusa_Board | grep '.PRODUCT_VERSION' | awk -F\" '{print $2}')
+if [ -z "$mgm_stage" ]; then
+    echo "Failed to check management board fru info, all CPLD I/O expender are keeping default setting"
+elif [ "$mgm_stage" = "DVT" ] || [ "$mgm_stage" = "EVT" ]; then
+    echo pca9506 "0x20" > /sys/bus/i2c/devices/i2c-13/new_device
+    echo pca9506 "0x21" > /sys/bus/i2c/devices/i2c-13/new_device
+    echo pca9506 "0x22" > /sys/bus/i2c/devices/i2c-13/new_device
+    echo pca9506 "0x23" > /sys/bus/i2c/devices/i2c-13/new_device
+fi
 
 # set initial value for pca9555 i/o pins on medusa board
-if [ -z "$stage" ]; then
+medusa_stage=$(get_product_version Medusa_Board)
+
+if [ -z "$medusa_stage" ]; then
     echo "Failed to check medusa board fru info, all I/O pins are keeping default input"
-elif [ "$stage" = "POC" ]; then
+elif [ "$medusa_stage" = "POC" ]; then
     set_gpio P48V_OCP_GPIO1       0
     set_gpio P48V_OCP_GPIO2       0
     set_gpio P48V_OCP_GPIO3       0