diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-functions_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-functions_0.1.bb
new file mode 100644
index 0000000..0581f23
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/bletchley-common-functions_0.1.bb
@@ -0,0 +1,13 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+RDEPENDS:${PN} += " bash libgpiod-tools"
+
+SRC_URI += " \
+    file://bletchley-common-functions \
+    "
+
+do_install() {
+    install -d ${D}${libexecdir}
+    install -m 0755 ${WORKDIR}/bletchley-common-functions ${D}${libexecdir}
+}
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-common-functions b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-common-functions
new file mode 100644
index 0000000..e3ca00a
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-tools/files/bletchley-common-functions
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+get_gpio()
+{
+    local NET_NAME=$1
+    local RET_VAL
+
+    mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+    if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+        echo "get_gpio: can not find gpio, $NET_NAME" >&2
+        return 1
+    fi
+    if ! RET_VAL=$(gpioget "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}") ; then
+        echo "get_gpio: get ${NET_NAME} failed" >&2
+        return 1
+    fi
+    echo "${RET_VAL}"
+    return 0
+}
+
+set_gpio()
+{
+    local NET_NAME=$1
+    local OUT_VAL=$2
+    mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+    if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+        echo "set_gpio: can not find gpio, $NET_NAME"
+        return 1
+    fi
+
+    echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
+    if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
+        echo " failed"
+        return 1
+    fi
+
+    echo " success"
+    return 0
+}
+
+set_fan()
+{
+    FAN_ID=$1
+    FAN_DUTY=$2
+    SYSFA_PWM_PATH=""
+
+    for file in /sys/devices/platform/pwm-fan"$FAN_ID"/hwmon/hwmon*/pwm1
+    do
+        if [ -e "$file" ]; then
+            SYSFA_PWM_PATH="$file"
+            break
+        fi
+    done
+
+    if [ -z "$SYSFA_PWM_PATH" ]; then
+        echo "set_fan: pwm file not found, chekc fan id ($FAN_ID)"
+        return 1
+    fi
+
+    if [ "$FAN_DUTY" -lt 0 ] || [ "$FAN_DUTY" -gt 100 ]; then
+        echo "set_fan: incorrect fan duty, $FAN_DUTY"
+        return 1
+    fi
+
+    # convert duty (0-100) to pwm value (0-255)
+    PWM_VAL=$(printf "%.0f" $((FAN_DUTY*255/100)))
+
+    echo -n "set_fan: set fan$FAN_ID = $FAN_DUTY"
+    if ! echo "$PWM_VAL" > "$SYSFA_PWM_PATH"; then
+        echo " failed"
+        return 1
+    fi
+
+    echo " success"
+    return 0
+}
+
+
+is_sled_present()
+{
+    local SLED_ID=$1
+    local SRV_NAME="xyz.openbmc_project.Inventory.Manager"
+    local OBJ_PATH="/xyz/openbmc_project/inventory/system/chassis/presence/presence_sled${SLED_ID}"
+    local INTF_NAME="xyz.openbmc_project.Inventory.Item"
+    local PRST_VAL
+
+    PRST_VAL=$(busctl get-property "${SRV_NAME}" "${OBJ_PATH}" "${INTF_NAME}" Present | awk '{print $2}')
+    if [ "$PRST_VAL" != "true" ]; then
+        # not present
+        return 1
+    fi
+
+    # present
+    return 0
+}
