From 34c6dd09bd6f2fa30baefffb3dc0d55d08701dd7 Mon Sep 17 00:00:00 2001 From: TheStrix Date: Tue, 5 Apr 2016 02:31:29 -0400 Subject: msm8916: Add CMHW vibrator intensity control Change-Id: Ibdd9b564b9bb6ff80516017bc2121634bef41f65 --- board/hardware.mk | 4 +- cmhw/org/cyanogenmod/hardware/VibratorHW.java | 56 +++++++++++++++++++++++++++ rootdir/etc/init.qcom.rc | 4 ++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 cmhw/org/cyanogenmod/hardware/VibratorHW.java 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 -- cgit v1.2.3