diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp index 9431c14b..af5c7724 100644 --- a/dumpstate/DumpstateDevice.cpp +++ b/dumpstate/DumpstateDevice.cpp @@ -501,8 +501,38 @@ void DumpstateDevice::dumpTouchSection(int fd) { "/sys/class/spi_master/spi6/spi6.0", "/proc/fts_ext/driver_test"}; const char lsi_spi_path[] = "/sys/devices/virtual/sec/tsp"; + const char syna_cmd_path[] = "/sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs"; char cmd[256]; + if (!access(syna_cmd_path, R_OK)) { + // Enable: force touch active + snprintf(cmd, sizeof(cmd), "echo 21 > %s/force_active", syna_cmd_path); + RunCommandToFd(fd, "Enable Force Touch Active", {"/vendor/bin/sh", "-c", cmd}); + + // Touch Firmware Information + snprintf(cmd, sizeof(cmd), "%s/info", syna_cmd_path); + DumpFileToFd(fd, "Touch Firmware Information", cmd); + + // Get Raw Data - Delta + snprintf(cmd, sizeof(cmd), + "echo 12 > %s/get_raw_data && cat %s/get_raw_data", syna_cmd_path, syna_cmd_path); + RunCommandToFd(fd, "Get Raw Data - Delta", {"/vendor/bin/sh", "-c", cmd}); + + // Get Raw Data - Raw + snprintf(cmd, sizeof(cmd), + "echo 13 > %s/get_raw_data && cat %s/get_raw_data", syna_cmd_path, syna_cmd_path); + RunCommandToFd(fd, "Get Raw Data - Raw", {"/vendor/bin/sh", "-c", cmd}); + + // Get Raw Data - Baseline + snprintf(cmd, sizeof(cmd), + "echo 14 > %s/get_raw_data && cat %s/get_raw_data", syna_cmd_path, syna_cmd_path); + RunCommandToFd(fd, "Get Raw Data - Baseline", {"/vendor/bin/sh", "-c", cmd}); + + // Disable: force touch active + snprintf(cmd, sizeof(cmd), "echo 20 > %s/force_active", syna_cmd_path); + RunCommandToFd(fd, "Disable Force Touch Active", {"/vendor/bin/sh", "-c", cmd}); + } + for (int i = 0; i < 4; i+=2) { snprintf(cmd, sizeof(cmd), "%s", stm_cmd_path[i + 1]); if (!access(cmd, R_OK)) {