diff --git a/meta-google/recipes-google/host-power-ctrl/gpio-host-pwr/lib.sh b/meta-google/recipes-google/host-power-ctrl/gpio-host-pwr/lib.sh
new file mode 100644
index 0000000..16b36a5
--- /dev/null
+++ b/meta-google/recipes-google/host-power-ctrl/gpio-host-pwr/lib.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This is intended to be used as a library for managing gpio line values.
+# Executing this directly will do nothing.
+[ -n "${host_pwr_init-}" ] && return
+
+source /usr/share/gpio-ctrl/lib.sh || exit
+
+# Read by the tooling to determine if the machine is powered on or off
+HOST_GPIO_PGOOD='unset'
+# Set according to whether the host is powered on or off
+HOST_LED_PWR=''
+# Written by the tooling to assert the power button
+HOST_GPIO_PWR_BTN='unset'
+# Written by the tooling to assert a cold reset
+HOST_GPIO_COLD_RESET='unset'
+# Written by the tooling to assert a warm reset
+HOST_GPIO_WARM_RESET='unset'
+
+# Load configurations from a known location in the filesystem to populate
+# named GPIOs
+shopt -s nullglob
+for conf in /usr/share/gpio-host-pwr/conf.d/*.sh; do
+  source "$conf"
+done
+
+##################################################
+# Stop the host watchdog
+# Return:
+#   0 if success, non-zero if error
+##################################################
+host_pwr_stop_watchdog() {
+  # Check to see if we can stop the watchdog safely
+  # We don't want to stop if we are called from the watchdog itself
+  if [ -n "${DONT_STOP_WATCHDOG-}" ]; then
+    return 0
+  fi
+
+  echo 'Stopping the host watchdog' >&2
+  systemctl stop phosphor-watchdog@host0
+}
+
+##################################################
+# Start the host watchdog
+# Return:
+#   0 if success, non-zero if error
+##################################################
+host_pwr_start_watchdog() {
+  echo 'Starting the host watchdog' >&2
+  systemctl start phosphor-watchdog@host0
+}
+
+host_pwr_init=1
+return 0 2>/dev/null
+echo "gpio-host-pwr is a library, not executed directly" >&2
+exit 1
