meta-facebook: yosemite5: support 2nd source PCIe clk gen This allows configuring different PCIe clock generators based on the VENDOR_ID. ``` Mar 13 08:36:18 bmc systemd[1]: Starting Deassert Power Good Drop... Mar 13 08:36:19 bmc deassert-power-good-drop[1556]: SPMU390A detected. Mar 13 08:36:22 bmc systemd[1]: Starting Deassert Power Good Drop... Mar 13 08:36:22 bmc deassert-power-good-drop[1649]: RC21008 detected. ``` Change-Id: I3d0b573aa9d82c2e2284486416b37c30de862ffa Signed-off-by: Leo Yang <Leo-Yang@quantatw.com>
diff --git a/meta-facebook/meta-yosemite5/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good-drop b/meta-facebook/meta-yosemite5/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good-drop index bcc2f13..047f73f 100644 --- a/meta-facebook/meta-yosemite5/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good-drop +++ b/meta-facebook/meta-yosemite5/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good-drop
@@ -3,24 +3,48 @@ # shellcheck source=meta-facebook/meta-yosemite5/recipes-phosphor/state/phosphor-state-manager/power-cmd source /usr/libexec/phosphor-state-manager/power-cmd -# 1. Change to page 3, for r/w regsiter 0x300 ~ 0x3FF -i2ctransfer -y 13 w2@0x09 0xfd 0x03 +#Change to page 0 +i2ctransfer -y 13 w2@0x09 0xfd 0x00 -# 2. Disable SSC -i2ctransfer -y 13 w2@0x09 0x07 0x00 +read -r b1 b2 <<< "$(i2ctransfer -y 13 w1@0x09 0x00 r2 2>/dev/null)" +vendor=$(printf "0x%02X%02X" "$((b1))" "$((b2))") -# 3. Setting SSC amplitude + step(-0.25%) -i2ctransfer -y 13 w5@0x09 0x04 0xFC 0x2D 0x28 0x80 -i2ctransfer -y 13 w5@0x09 0x04 0xB5 0x16 0x28 0x80 +#RC21008 +if [ "$vendor" == "0x3310" ]; then + echo "RC21008 detected." + # 1. Change to page 3, for r/w regsiter 0x300 ~ 0x3FF + i2ctransfer -y 13 w2@0x09 0xfd 0x03 -# 4. enable SSC -i2ctransfer -y 13 w2@0x09 0x07 0x80 + # 2. Disable SSC + i2ctransfer -y 13 w2@0x09 0x07 0x00 -# 5. Check SSC Enable/Disable status -ret=$(i2ctransfer -y 13 w1@0x09 0x07 r1 2>/dev/null | tr -d ' ') -if [ "$ret" != "0x80" ]; then - echo "Wrong SSC status read: $ret" + # 3. Setting SSC amplitude + step(-0.25%) + i2ctransfer -y 13 w5@0x09 0x04 0xFC 0x2D 0x28 0x80 + i2ctransfer -y 13 w5@0x09 0x04 0xB5 0x16 0x28 0x80 + + # 4. enable SSC + i2ctransfer -y 13 w2@0x09 0x07 0x80 + + # 5. Check SSC Enable/Disable status + ret=$(i2ctransfer -y 13 w1@0x09 0x07 r1 2>/dev/null | tr -d ' ') + if [ "$ret" != "0x80" ]; then + echo "Wrong SSC status read: $ret" + fi + +#SPMU390A +elif [ "$vendor" == "0x8B03" ]; then + echo "SPMU390A detected." + #FOD0 SSC = -0.25% Down-spread and enable + i2ctransfer -y 13 w2@0x09 0x3c 0x24 + + ret=$(i2ctransfer -y 13 w1@0x09 0x3c r1 2>/dev/null | tr -d ' ') + if [ "$ret" != "0x24" ]; then + echo "Wrong SSC status read: $ret" + fi +else + echo "Invalid Clk Gen vendor, No SSC is configured." fi + echo "SSC deassertion is triggered by power-good drop, \ set SSC to -0.25% for better signal integrity"