berlna: sensors: Implement double tap sensor

Change-Id: I6c217c994d6e4d5ae062a31a44fffc9f097a7f6f
This commit is contained in:
Cosmin Tanislav 2022-09-21 10:09:08 +05:30 committed by Andrew Hexen
parent ccaae7da9e
commit d39e501b80
No known key found for this signature in database
GPG key ID: 8A690B4B0CD461A2
4 changed files with 25 additions and 1 deletions

View file

@ -305,4 +305,7 @@
<item>2</item> <!-- COLOR_MODE_SATURATED --> <item>2</item> <!-- COLOR_MODE_SATURATED -->
<item>3</item> <!-- COLOR_MODE_AUTOMATIC --> <!-- This uses enhanced render intents--> <item>3</item> <!-- COLOR_MODE_AUTOMATIC --> <!-- This uses enhanced render intents-->
</integer-array> </integer-array>
<!-- Type of the double tap sensor. Empty if double tap is not supported. -->
<string name="config_dozeDoubleTapSensorType" translatable="false">org.lineageos.sensor.double_tap</string>
</resources> </resources>

View file

@ -25,6 +25,11 @@ on fs
# Goodix fingerprint sensor GF3626 reuses the driver "goodix_fod_mmi.ko" # Goodix fingerprint sensor GF3626 reuses the driver "goodix_fod_mmi.ko"
insmod /vendor/lib/modules/goodix_fod_mmi.ko insmod /vendor/lib/modules/goodix_fod_mmi.ko
on post-fs
# Sensors
chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/NVT-ts/double_tap_enabled
chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/NVT-ts/double_tap_pressed
on post-fs-data on post-fs-data
mkdir /mnt/vendor/persist/tof 0755 vendor_tcmd camera mkdir /mnt/vendor/persist/tof 0755 vendor_tcmd camera
chown vendor_tcmd camera /mnt/vendor/persist/tof/refspad_cal chown vendor_tcmd camera /mnt/vendor/persist/tof/refspad_cal

View file

@ -120,6 +120,20 @@ class SysfsPollingOneShotSensor : public OneShotSensor {
int mPollFd; int mPollFd;
}; };
const std::string kTsPath = "/sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/NVT-ts/";
const std::string kTsDoubleTapPressedPath = kTsPath + "double_tap_pressed";
const std::string kTsDoubleTapEnabledPath = kTsPath + "double_tap_enabled";
class DoubleTapSensor : public SysfsPollingOneShotSensor {
public:
DoubleTapSensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: SysfsPollingOneShotSensor(
sensorHandle, callback, kTsDoubleTapPressedPath, kTsDoubleTapEnabledPath,
"Double Tap Sensor", "org.lineageos.sensor.double_tap",
static_cast<SensorType>(static_cast<int32_t>(SensorType::DEVICE_PRIVATE_BASE) + 1)) {}
};
} // namespace implementation } // namespace implementation
} // namespace subhal } // namespace subhal
} // namespace V2_1 } // namespace V2_1

View file

@ -32,7 +32,9 @@ namespace implementation {
using ::android::hardware::Void; using ::android::hardware::Void;
using ::android::hardware::sensors::V2_0::implementation::ScopedWakelock; using ::android::hardware::sensors::V2_0::implementation::ScopedWakelock;
SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) {} SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) {
AddSensor<DoubleTapSensor>();
}
Return<void> SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) { Return<void> SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) {
std::vector<SensorInfo> sensors; std::vector<SensorInfo> sensors;