summaryrefslogtreecommitdiff
path: root/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2019-07-18 00:35:55 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-07-24 04:18:54 +0300
commita29c2d5e6187adb2c309d049226085eb1283b555 (patch)
tree0fa19fd4aa4a95779e503e235109b769a013138d /meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh
parentead9ee683e5829b00afae3032df6d4e505f492b6 (diff)
downloadopenbmc-a29c2d5e6187adb2c309d049226085eb1283b555.tar.xz
meta-ibm: use ibm-ac-server MACHINEOVERRIDE
Use an override in bbappends in meta-witherspoon as described and recommended in the "following best practices when creating layers" section of the the Yocto development tasks manual. ibm-ac-server represents common machine configuration shared by all of IBMs "Accelerated Compute" class of servers. Apply it wherever any variables are un-bounded by any override. This enables more flexible use of meta-witherspoon in build configurations, and easy addition of machines to the layer. (From meta-ibm rev: bb0e1d0699a4b9905c053c94af7d882cd71779fc) Change-Id: I82f7338b0d7a64b5e7a67e19bcdff07f48a332d4 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh')
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh81
1 files changed, 81 insertions, 0 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh
new file mode 100644
index 000000000..85d77412d
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ibm-ac-server/ir35221-unbind-bind.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+# #########################################################
+# Script to run on witherspoon BMC to unbind/bind the ir35221
+# driver's devices
+
+status=0
+max_retries=3
+driver_path="/sys/bus/i2c/drivers/ir35221/"
+platform_path="/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/"
+
+unbind_driver () {
+ echo $1 > $driver_path/unbind
+}
+
+bind_driver () {
+ device=$1
+ tries=0
+
+ until [ $tries -ge $max_retries ]; do
+ tries=$((tries+1))
+ ret=0
+ echo $device > $driver_path/bind || ret=$?
+ if [ $ret -ne 0 ]; then
+ echo "VRM $1 bind failed. Try $tries"
+ sleep 1
+ else
+ tries=$((max_retries+1))
+ fi
+ done
+
+ #Script will return a nonzero value if any binds fail.
+ if [ $ret -ne 0 ]; then
+ status=$ret
+ fi
+}
+
+if [ "$1" = "unbind" ]
+then
+ if [ -e $driver_path/4-0070 ]
+ then
+ unbind_driver "4-0070"
+ fi
+
+ if [ -e $driver_path/4-0071 ]
+ then
+ unbind_driver "4-0071"
+ fi
+
+ if [ -e $driver_path/5-0070 ]
+ then
+ unbind_driver "5-0070"
+ fi
+
+ if [ -e $driver_path/5-0071 ]
+ then
+ unbind_driver "5-0071"
+ fi
+elif [ "$1" = "bind" ]
+then
+ if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0070 ]
+ then
+ bind_driver "4-0070"
+ fi
+
+ if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0071 ]
+ then
+ bind_driver "4-0071"
+ fi
+
+ if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0070 ]
+ then
+ bind_driver "5-0070"
+ fi
+
+ if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0071 ]
+ then
+ bind_driver "5-0071"
+ fi
+fi
+
+exit $status