diff --git a/DeviceParts/res/values/strings.xml b/DeviceParts/res/values/strings.xml
index 490047d..80ea157 100644
--- a/DeviceParts/res/values/strings.xml
+++ b/DeviceParts/res/values/strings.xml
@@ -78,4 +78,6 @@
     <string name="pocket_check_title">Pocket</string>
     <string name="ambient_display_enable">Ambient display must be enabled in display settings</string>
     <string name="wake_entry">Wakeup</string>
+    <string name="swipe_up_to_wake_up_title">Swipe up to wake up</string>
+    <string name="swipe_up_to_wake_up_summary">Swipe up on the screen to wake up your device from idle mode</string>
 </resources>
diff --git a/DeviceParts/res/xml/gesture_settings.xml b/DeviceParts/res/xml/gesture_settings.xml
index ace04c7..910ca57 100644
--- a/DeviceParts/res/xml/gesture_settings.xml
+++ b/DeviceParts/res/xml/gesture_settings.xml
@@ -44,6 +44,12 @@
     <PreferenceCategory
         android:title="@string/offscreen_gesture_title">
 
+        <SwitchPreference
+            android:key="swipeup"
+            android:title="@string/swipe_up_to_wake_up_title"
+            android:summary="@string/swipe_up_to_wake_up_summary"
+            android:persistent="false" />
+
         <org.omnirom.device.AppSelectListPreference
             android:key="c_gesture_app"
             android:title="@string/category_c_gesture"
diff --git a/DeviceParts/src/org/omnirom/device/GestureSettings.java b/DeviceParts/src/org/omnirom/device/GestureSettings.java
index 7977a99..64cd037 100644
--- a/DeviceParts/src/org/omnirom/device/GestureSettings.java
+++ b/DeviceParts/src/org/omnirom/device/GestureSettings.java
@@ -55,6 +55,10 @@
 
     public static final String KEY_PROXI_SWITCH = "proxi";
     public static final String KEY_OFF_SCREEN_GESTURE_FEEDBACK_SWITCH = "off_screen_gesture_feedback";
+    public static final String KEY_SWIPEUP_SWITCH = "swipeup";
+    public static final String KEY_SETTINGS_SWIPEUP_PREFIX = "gesture_setting_";
+
+    public static final String SETTINGS_GESTURE_KEY = KEY_SETTINGS_SWIPEUP_PREFIX + KEY_SWIPEUP_SWITCH;
 
     public static final int KEY_C_ID = 0;
     public static final int KEY_E_ID = 1;
@@ -83,6 +87,7 @@
     public static final String DEVICE_GESTURE_MAPPING_6 = "device_gesture_mapping_6_0";
 
     private TwoStatePreference mProxiSwitch;
+    private TwoStatePreference mSwipeUpSwitch;
     private AppSelectListPreference mFPLongPressApp;
     private AppSelectListPreference mLetterCGesture;
     private AppSelectListPreference mLetterEGesture;
@@ -92,6 +97,7 @@
     private AppSelectListPreference mLetterZGesture;
 
     public static final String GESTURE_CONTROL_PATH = "/sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_gesture_mode";
+    private static final String SWIPEUP_PATH = "/sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode";
 
     private PreferenceCategory fpGestures;
     private boolean mFpDownSwipe;
@@ -149,6 +155,10 @@
         mLetterZGesture.setValue(value);
         mLetterZGesture.setOnPreferenceChangeListener(this);
 
+        mSwipeUpSwitch = (TwoStatePreference) findPreference(KEY_SWIPEUP_SWITCH);
+        mSwipeUpSwitch.setChecked(Settings.System.getInt(getContext().getContentResolver(),
+        SETTINGS_GESTURE_KEY, 1) != 0);
+
         new FetchPackageInformationTask().execute();
     }
 
@@ -164,6 +174,11 @@
                     Settings.System.OMNI_DEVICE_PROXI_CHECK_ENABLED, mProxiSwitch.isChecked() ? 1 : 0);
             return true;
         }
+        if (preference == mSwipeUpSwitch) {
+            Settings.System.putInt(getContext().getContentResolver(), SETTINGS_GESTURE_KEY, mSwipeUpSwitch.isChecked() ? 1 : 0);
+            Utils.writeValue(getFile(), mSwipeUpSwitch.isChecked() ? "1" : "0");
+            return true;
+        }
         return super.onPreferenceTreeClick(preference);
     }
 
@@ -206,10 +221,19 @@
         return true;
     }
 
+    public static String getFile() {
+        if (Utils.fileWritable(SWIPEUP_PATH)) {
+            return SWIPEUP_PATH;
+        }
+        return null;
+    }
+
     public static String getGestureFile(String key) {
         switch(key) {
             case GESTURE_CONTROL_PATH:
                 return "/sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_gesture_mode";
+            case SWIPEUP_PATH:
+                return "/sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode";
         }
         return null;
     }
diff --git a/DeviceParts/src/org/omnirom/device/KeyHandler.java b/DeviceParts/src/org/omnirom/device/KeyHandler.java
index b8a623a..ee85805 100644
--- a/DeviceParts/src/org/omnirom/device/KeyHandler.java
+++ b/DeviceParts/src/org/omnirom/device/KeyHandler.java
@@ -87,6 +87,7 @@
     private static final int KEY_GESTURE_V = 47;
     private static final int KEY_GESTURE_W = 17;
     private static final int KEY_GESTURE_Z = 44;
+    private static final int KEY_SWIPEUP_GESTURE = 103;
 
     private static final int MIN_PULSE_INTERVAL_MS = 2500;
     private static final String DOZE_INTENT = "com.android.systemui.doze.pulse";
@@ -326,6 +327,9 @@
         if (event.getAction() != KeyEvent.ACTION_UP) {
             return false;
         }
+        if (event.getScanCode() == KEY_SWIPEUP_GESTURE) {
+            return true;
+        }
          String value = getGestureValueForScanCode(event.getScanCode());
         if (!TextUtils.isEmpty(value) && value.equals(AppSelectListPreference.WAKE_ENTRY)) {
             if (DEBUG) Log.i(TAG, "isWakeEvent " + event.getScanCode() + value);
diff --git a/DeviceParts/src/org/omnirom/device/Startup.java b/DeviceParts/src/org/omnirom/device/Startup.java
index fc66c03..a13121d 100644
--- a/DeviceParts/src/org/omnirom/device/Startup.java
+++ b/DeviceParts/src/org/omnirom/device/Startup.java
@@ -94,6 +94,9 @@
         value = Settings.System.getString(context.getContentResolver(), Settings.System.OMNI_BUTTON_EXTRA_KEY_MAPPING);
         restore(getGestureFile(GestureSettings.GESTURE_CONTROL_PATH), value);
 
+        enabled = Settings.System.getInt(context.getContentResolver(), GestureSettings.SETTINGS_GESTURE_KEY, 0) != 0;
+        restore(GestureSettings.getFile(), enabled);
+
         enabled = Settings.System.getInt(context.getContentResolver(), GloveModeSwitch.SETTINGS_KEY, 0) != 0;
         restore(GloveModeSwitch.getFile(), enabled);
     }
diff --git a/keylayout/fts_ts.kl b/keylayout/fts_ts.kl
index c366d5e..2c22921 100644
--- a/keylayout/fts_ts.kl
+++ b/keylayout/fts_ts.kl
@@ -1,5 +1,5 @@
 #key 116    GESTURE_DOUBLE_CLICK          WAKE    VIRTUAL
-#key 103    GESTURE_SWIPE_UP          WAKE    VIRTUAL
+key 103    GESTURE_SWIPE_UP          WAKE    VIRTUAL
 key 158    BACK               VIRTUAL
 #key 139    APP_SWITCH         VIRTUAL
 key 102    HOME               VIRTUAL
diff --git a/prebuilt/system/etc/init/init.qcom.rc b/prebuilt/system/etc/init/init.qcom.rc
index a713d78..547e663 100644
--- a/prebuilt/system/etc/init/init.qcom.rc
+++ b/prebuilt/system/etc/init/init.qcom.rc
@@ -11,6 +11,9 @@
     chmod 0660 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_gesture_mode
     chown system system /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/dclick_mode
     chmod 0660 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/dclick_mode
+    chown system system /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode
+    chmod 0660 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode
+
     chown system system /sys/devices/platform/soc/soc:goodixfp/proximity_state
     chmod 0660 /sys/devices/platform/soc/soc:goodixfp/proximity_state
 
diff --git a/sepolicy/private/file_contexts b/sepolicy/private/file_contexts
index eed95a4..ef2e277 100644
--- a/sepolicy/private/file_contexts
+++ b/sepolicy/private/file_contexts
@@ -14,6 +14,7 @@
 # Gestures
 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_glove_mode        u:object_r:sysfs_gesture:s0
 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_gesture_mode      u:object_r:sysfs_gesture:s0
+/sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode          u:object_r:sysfs_gesture:s0
 
 # Modules
 /system/lib/modules/wlan\.ko                  u:object_r:vendor_file:s0
