diff options
author | Ben_Pai <ben_pai@wistron.com> | 2019-07-15 11:19:02 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-08-14 20:10:14 +0300 |
commit | b24a3e589e1a6eac0cb69d4c1ba2d1be36d1d2cb (patch) | |
tree | 7ea45a9cecb32ee49d64507bfc5fe96d4699f617 /meta-ibm/meta-witherspoon/recipes-phosphor/chassis | |
parent | 5117a7b4186280a54369292afecbcb2edcb7707e (diff) | |
download | openbmc-b24a3e589e1a6eac0cb69d4c1ba2d1be36d1d2cb.tar.xz |
Add mihawk platform to meta-ibm
The contents of this up-stream include the following items
1.Basic function
2.Led settings
3.GPIO monitor (id button and power supply)
4.Linux dts patch.
(From meta-ibm rev: c53430a2234917b71f29d7e61d6aea749c45a2fc)
Change-Id: Id0e47fd9197c8b2a70cbc94888bd572255664cdd
Signed-off-by: Ben Pai <Ben_Pai@wistron.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/chassis')
7 files changed, 156 insertions, 8 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb index 74e0968d38..762d1a4696 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb @@ -1,4 +1,4 @@ -SUMMARY = "Witherspoon AVSBus control" +SUMMARY = "AVSBus control" PR = "r1" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh new file mode 100755 index 0000000000..96f6cf8845 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x72 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x72 0x01 0x80 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x72 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x72 0x01 0x80 b # VDN 1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service new file mode 100755 index 0000000000..7a1df99703 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-disable@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Disable the AVS bus on the VRMs +Wants=op-power-start@.service +After=op-power-start@.service +Before=avsbus-enable@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-disable.sh +SyslogIdentifier=avsbus-disable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh new file mode 100755 index 0000000000..67acc730bc --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x72 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x72 0x01 0xB0 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x72 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x72 0x01 0xB0 b # VDN 1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service new file mode 100755 index 0000000000..810c92e231 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/mihawk/avsbus-enable@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Enable the AVS bus on VRMs +Wants=avsbus-disable@%i.service +After=avsbus-disable@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-enable.sh +SyslogIdentifier=avsbus-enable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb index fe94634411..49fcf447b9 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb @@ -1,5 +1,5 @@ -SUMMARY = "Witherspoon VRM Overrides" -DESCRIPTION = "Sets Witherspoon VRMs to custom voltages" +SUMMARY = "VRM Overrides" +DESCRIPTION = "Sets VRMs to custom voltages" PR = "r1" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" @@ -10,15 +10,18 @@ inherit obmc-phosphor-systemd RDEPENDS_${PN} += "i2c-tools bash" S = "${WORKDIR}" -SRC_URI += "file://vrm-control.sh \ - file://ir35221-unbind-bind.sh" +SRC_URI = "file://ir35221-unbind-bind.sh" +SRC_URI_append_ibm-ac-server = " file://vrm-control.sh" do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh install -m 0755 ${WORKDIR}/ir35221-unbind-bind.sh ${D}${bindir}/ir35221-unbind-bind.sh } +do_install_append_ibm-ac-server() { + install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh +} + TMPL = "vrm-control@.service" INSTFMT = "vrm-control@{0}.service" TGTFMT_ON = "obmc-chassis-poweron@{0}.target" @@ -32,7 +35,8 @@ TMPL_ON_IRUNBIND = "ir35221-on-unbind@.service" INSTFMT_ON_IRUNBIND = "ir35221-on-unbind@{0}.service" FMT_ON_IRUNBIND = "../${TMPL_ON_IRUNBIND}:${TGTFMT_ON}.requires/${INSTFMT_ON_IRUNBIND}" -SYSTEMD_SERVICE_${PN} += "${TMPL} ${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND}" -SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_SERVICE_${PN} += "${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND}" +SYSTEMD_SERVICE_${PN}_append_ibm-ac-server = " ${TMPL}" +SYSTEMD_LINK_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}" SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRBIND', 'OBMC_CHASSIS_INSTANCES')}" SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRUNBIND', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh new file mode 100755 index 0000000000..27ca3b9dcd --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/mihawk/ir35221-unbind-bind.sh @@ -0,0 +1,81 @@ +#!/bin/bash +# ######################################################### +# Script to run on mihawk 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-0072 ] + then + unbind_driver "4-0072" + fi + + if [ -e $driver_path/5-0070 ] + then + unbind_driver "5-0070" + fi + + if [ -e $driver_path/5-0072 ] + then + unbind_driver "5-0072" + 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-0072 ] + then + bind_driver "4-0072" + 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-0072 ] + then + bind_driver "5-0072" + fi +fi + +exit $status |