diff options
| author | TheStrix <parthbhatia98@gmail.com> | 2016-04-05 02:31:29 -0400 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-06-01 14:10:49 -0700 |
| commit | 34c6dd09bd6f2fa30baefffb3dc0d55d08701dd7 (patch) | |
| tree | 5ab7a3bfbac39909bfd33a88b390b7a486b42acf | |
| parent | 7a9eb6b599bb15e90d248f479e98cf305686b47c (diff) | |
msm8916: Add CMHW vibrator intensity control
Change-Id: Ibdd9b564b9bb6ff80516017bc2121634bef41f65
| -rw-r--r-- | board/hardware.mk | 4 | ||||
| -rw-r--r-- | cmhw/org/cyanogenmod/hardware/VibratorHW.java | 56 | ||||
| -rw-r--r-- | rootdir/etc/init.qcom.rc | 4 |
3 files changed, 63 insertions, 1 deletions
diff --git a/board/hardware.mk b/board/hardware.mk index 6c26031..dd5c5b1 100644 --- a/board/hardware.mk +++ b/board/hardware.mk @@ -1,2 +1,4 @@ -BOARD_HARDWARE_CLASS += hardware/cyanogen/cmhw +BOARD_HARDWARE_CLASS += \ + hardware/cyanogen/cmhw \ + device/cyanogen/msm8916-common/cmhw BOARD_USES_CYANOGEN_HARDWARE := true diff --git a/cmhw/org/cyanogenmod/hardware/VibratorHW.java b/cmhw/org/cyanogenmod/hardware/VibratorHW.java new file mode 100644 index 0000000..74efba8 --- /dev/null +++ b/cmhw/org/cyanogenmod/hardware/VibratorHW.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * 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. + */ + +package org.cyanogenmod.hardware; + +import org.cyanogenmod.hardware.util.FileUtils; +import java.io.File; + +public class VibratorHW { + private static final String DEFAULT_PATH = "/sys/class/timed_output/vibrator/vtg_default"; + private static final String LEVEL_PATH = "/sys/class/timed_output/vibrator/vtg_level"; + private static final String MAX_PATH = "/sys/class/timed_output/vibrator/vtg_max"; + private static final String MIN_PATH = "/sys/class/timed_output/vibrator/vtg_min"; + + public static boolean isSupported() { + File file = new File(LEVEL_PATH); + return file.exists() && file.canWrite(); + } + + public static int getMaxIntensity() { + return Integer.parseInt(FileUtils.readOneLine(MAX_PATH)); + } + + public static int getMinIntensity() { + return Integer.parseInt(FileUtils.readOneLine(MIN_PATH)); + } + + public static int getWarningThreshold() { + return -1; + } + + public static int getCurIntensity() { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_PATH)); + } + + public static int getDefaultIntensity() { + return Integer.parseInt(FileUtils.readOneLine(DEFAULT_PATH)); + } + + public static boolean setIntensity(int intensity) { + return FileUtils.writeLine(LEVEL_PATH, String.valueOf(intensity)); + } +} diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index e534d24..a46cc3f 100644 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -271,6 +271,10 @@ on boot chown system graphics /sys/class/graphics/fb0/mode chown system graphics /sys/class/graphics/fb0/modes + # Vibrator intensity control + chown system system /sys/class/timed_output/vibrator/vtg_level + chmod 0664 /sys/class/timed_output/vibrator/vtg_level + on property:init.svc.wpa_supplicant=stopped stop dhcpcd |
