summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Kbuild1
-rw-r--r--Makefile2
-rw-r--r--goodix_brl_hw.c2
-rw-r--r--goodix_ts_core.c88
-rw-r--r--goodix_ts_core.h6
-rw-r--r--touch_apis.c4
-rw-r--r--touch_apis.h8
-rw-r--r--touch_pm.c288
-rw-r--r--touch_pm.h87
9 files changed, 56 insertions, 430 deletions
diff --git a/Kbuild b/Kbuild
index 4bfdc99..c4272e6 100644
--- a/Kbuild
+++ b/Kbuild
@@ -12,5 +12,4 @@ goodix_brl_touch-objs += \
goodix_ts_utils.o \
goodix_ts_proc.o \
touch_apis.o \
- touch_pm.o \
touch_mf_mode.o
diff --git a/Makefile b/Makefile
index 0bde15d..e6bc349 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ M ?= $(shell pwd)
KBUILD_OPTIONS += CONFIG_TOUCHSCREEN_GOODIX_BRL=m
EXTRA_CFLAGS += -DDYNAMIC_DEBUG_MODULE
EXTRA_CFLAGS += -DCONFIG_TOUCHSCREEN_GOODIX_BRL_SPI
-EXTRA_CFLAGS += -DCONFIG_TOUCHSCREEN_PM
+EXTRA_CFLAGS += -DCONFIG_GTI_PM
#EXTRA_CFLAGS += -DCONFIG_TOUCHSCREEN_MOTION_FILTER
#EXTRA_CFLAGS += -DCONFIG_TOUCHSCREEN_TBN
EXTRA_CFLAGS += -DCONFIG_GOOG_TOUCH_INTERFACE
diff --git a/goodix_brl_hw.c b/goodix_brl_hw.c
index ce5451c..f0d6290 100644
--- a/goodix_brl_hw.c
+++ b/goodix_brl_hw.c
@@ -264,7 +264,7 @@ int brl_suspend(struct goodix_ts_core *cd)
int brl_resume(struct goodix_ts_core *cd)
{
u32 cmd_reg = cd->ic_info.misc.cmd_addr;
- u8 cmd_buf[] = { 0x00, 0x00, 0x05, 0xC4, 0x00, 0xC9, 0x00 };
+ u8 cmd_buf[] = { 0x00, 0x00, 0x04, 0xA7, 0xAB, 0x00 };
int retry = 20;
u8 rcv_buf[2];
diff --git a/goodix_ts_core.c b/goodix_ts_core.c
index 365752b..12c2fd8 100644
--- a/goodix_ts_core.c
+++ b/goodix_ts_core.c
@@ -35,6 +35,8 @@
struct goodix_module goodix_modules;
int core_module_prob_sate = CORE_MODULE_UNPROBED;
+static const struct dev_pm_ops dev_pm_ops;
+
static int goodix_send_ic_config(struct goodix_ts_core *cd, int type);
/**
* __do_register_ext_module - register external module
@@ -826,23 +828,22 @@ int set_sensing_enabled(struct device *dev, bool enabled)
return 0;
}
-bool get_wake_lock_state(struct device *dev, enum tpm_wakelock_type type)
+bool get_wake_lock_state(struct device *dev, enum gti_pm_wakelock_type type)
{
struct goodix_ts_core *cd = dev_get_drvdata(dev);
- return tpm_get_lock_state(&cd->tpm, type);
+ return goog_pm_wake_check_locked(cd->gti, type);
}
int set_wake_lock_state(
- struct device *dev, enum tpm_wakelock_type type, bool locked)
+ struct device *dev, enum gti_pm_wakelock_type type, bool locked)
{
struct goodix_ts_core *cd = dev_get_drvdata(dev);
int ret = 0;
- if (locked) {
- ret = tpm_lock_wakelock(&cd->tpm, type);
- } else {
- ret = tpm_unlock_wakelock(&cd->tpm, type);
- }
+ if (locked)
+ ret = goog_pm_wake_lock(cd->gti, type, false);
+ else
+ ret = goog_pm_wake_unlock(cd->gti, type);
return ret;
}
@@ -850,7 +851,18 @@ int set_wake_lock_state(
static int gti_default_handler(void *private_data, enum gti_cmd_type cmd_type,
struct gti_union_cmd_data *cmd)
{
- return -ESRCH;
+ int err = 0;
+
+ switch (cmd_type) {
+ case GTI_CMD_NOTIFY_DISPLAY_STATE:
+ case GTI_CMD_NOTIFY_DISPLAY_VREFRESH:
+ err = -EOPNOTSUPP;
+ break;
+ default:
+ err = -ESRCH;
+ break;
+ }
+ return err;
}
static int get_mutual_sensor_data(
@@ -1502,9 +1514,8 @@ static irqreturn_t goodix_ts_threadirq_func(int irq, void *data)
cpu_latency_qos_update_request(&core_data->pm_qos_req, 100 /* usec */);
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- tpm_lock_wakelock(&core_data->tpm,
- TPM_WAKELOCK_TYPE_IRQ | TPM_WAKELOCK_TYPE_NON_WAKE_UP);
+#if IS_ENABLED(CONFIG_GTI_PM)
+ goog_pm_wake_lock(core_data->gti, GTI_PM_WAKELOCK_TYPE_IRQ, true);
#endif
ts_esd->irq_status = true;
@@ -1518,9 +1529,8 @@ static irqreturn_t goodix_ts_threadirq_func(int irq, void *data)
ret = ext_module->funcs->irq_event(core_data, ext_module);
if (ret == EVT_CANCEL_IRQEVT) {
mutex_unlock(&goodix_modules.mutex);
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- tpm_unlock_wakelock(
- &core_data->tpm, TPM_WAKELOCK_TYPE_IRQ);
+#if IS_ENABLED(CONFIG_GTI_PM)
+ goog_pm_wake_unlock(core_data->gti, GTI_PM_WAKELOCK_TYPE_IRQ);
#endif
return IRQ_HANDLED;
}
@@ -1555,8 +1565,8 @@ static irqreturn_t goodix_ts_threadirq_func(int irq, void *data)
hw_ops->after_event_handler(core_data);
}
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- tpm_unlock_wakelock(&core_data->tpm, TPM_WAKELOCK_TYPE_IRQ);
+#if IS_ENABLED(CONFIG_GTI_PM)
+ goog_pm_wake_unlock(core_data->gti, GTI_PM_WAKELOCK_TYPE_IRQ);
#endif
cpu_latency_qos_update_request(&core_data->pm_qos_req, PM_QOS_DEFAULT_VALUE);
@@ -2209,7 +2219,7 @@ static int goodix_ts_resume(struct goodix_ts_core *core_data)
/* reset device or power on*/
if (core_data->board_data.sleep_enable)
- hw_ops->resume(core_data);
+ hw_ops->reset(core_data, GOODIX_NORMAL_RESET_DELAY_MS);
else
goodix_ts_power_on(core_data);
@@ -2360,19 +2370,6 @@ int goodix_ts_stage2_init(struct goodix_ts_core *cd)
cpu_latency_qos_add_request(&cd->pm_qos_req, PM_QOS_DEFAULT_VALUE);
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- cd->tpm.pdev = cd->pdev;
-#ifdef CONFIG_OF
- cd->tpm.of_node = cd->bus->dev->of_node;
-#endif
- cd->tpm.resume = goodix_ts_pm_resume;
- cd->tpm.suspend = goodix_ts_pm_suspend;
- ret = tpm_register_notification(&cd->tpm);
- if (ret < 0) {
- ts_info("Failed to egister touch pm");
- goto err_init_tpm;
- }
-#endif
#if IS_ENABLED(CONFIG_FB)
cd->fb_notifier.notifier_call = goodix_ts_fb_notifier_callback;
if (fb_register_client(&cd->fb_notifier))
@@ -2429,6 +2426,14 @@ int goodix_ts_stage2_init(struct goodix_ts_core *cd)
cd->gti = goog_touch_interface_probe(
cd, cd->bus->dev, cd->input_dev, gti_default_handler, options);
+
+#if IS_ENABLED(CONFIG_GTI_PM)
+ ret = goog_pm_register_notification(cd->gti, &dev_pm_ops);
+ if (ret < 0) {
+ ts_info("Failed to egister gti pm");
+ goto err_init_tpm;
+ }
+#endif
#endif
/* create procfs files */
@@ -2486,6 +2491,10 @@ err_init_gesture:
err_init_esd:
goodix_ts_procfs_exit(cd);
err_init_procfs:
+#if IS_ENABLED(CONFIG_GTI_PM)
+ goog_pm_unregister_notification(cd->gti);
+err_init_tpm:
+#endif
touch_apis_deinit(&cd->pdev->dev);
err_init_apis:
goodix_ts_sysfs_exit(cd);
@@ -2493,10 +2502,6 @@ err_init_sysfs:
#if IS_ENABLED(CONFIG_FB)
fb_unregister_client(&cd->fb_notifier);
#endif
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- tpm_unregister_notification(&cd->tpm);
-err_init_tpm:
-#endif
cpu_latency_qos_remove_request(&cd->pm_qos_req);
goodix_ts_pen_dev_remove(cd);
err_finger:
@@ -2693,6 +2698,7 @@ static int goodix_ts_probe(struct platform_device *pdev)
core_data->pdev = pdev;
core_data->bus = bus_interface;
platform_set_drvdata(pdev, core_data);
+ dev_set_drvdata(bus_interface->dev, core_data);
ret = goodix_pinctrl_init(core_data);
if (ret) {
@@ -2782,9 +2788,6 @@ static int goodix_ts_remove(struct platform_device *pdev)
gesture_module_exit();
inspect_module_exit();
hw_ops->irq_enable(core_data, false);
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- tpm_unregister_notification(&core_data->tpm);
-#endif
#if IS_ENABLED(CONFIG_FB)
fb_unregister_client(&core_data->fb_notifier);
#endif
@@ -2797,6 +2800,9 @@ static int goodix_ts_remove(struct platform_device *pdev)
goodix_ts_pen_dev_remove(core_data);
goodix_ts_sysfs_exit(core_data);
#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+#if IS_ENABLED(CONFIG_GTI_PM)
+ goog_pm_unregister_notification(core_data->gti);
+#endif
goog_touch_interface_remove(core_data->gti);
#endif
touch_apis_deinit(&core_data->pdev->dev);
@@ -2809,11 +2815,8 @@ static int goodix_ts_remove(struct platform_device *pdev)
#if IS_ENABLED(CONFIG_PM)
static const struct dev_pm_ops dev_pm_ops = {
-#if !IS_ENABLED(CONFIG_FB) && !IS_ENABLED(CONFIG_HAS_EARLYSUSPEND) && \
- !IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
.suspend = goodix_ts_pm_suspend,
.resume = goodix_ts_pm_resume,
-#endif
};
#endif
@@ -2827,8 +2830,11 @@ static struct platform_driver goodix_ts_driver = {
.name = GOODIX_CORE_DRIVER_NAME,
.owner = THIS_MODULE,
#if IS_ENABLED(CONFIG_PM)
+#if !IS_ENABLED(CONFIG_FB) && !IS_ENABLED(CONFIG_HAS_EARLYSUSPEND) && \
+ !IS_ENABLED(CONFIG_GTI_PM)
.pm = &dev_pm_ops,
#endif
+#endif
},
.probe = goodix_ts_probe,
.remove = goodix_ts_remove,
diff --git a/goodix_ts_core.h b/goodix_ts_core.h
index 4c536c1..74d1ec0 100644
--- a/goodix_ts_core.h
+++ b/goodix_ts_core.h
@@ -41,9 +41,6 @@
#include <linux/notifier.h>
#endif
#include "touch_apis.h"
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
-#include "touch_pm.h"
-#endif
#if IS_ENABLED(CONFIG_TOUCHSCREEN_MOTION_FILTER)
#include "touch_mf_mode.h"
#endif
@@ -669,9 +666,6 @@ struct goodix_ts_core {
#if IS_ENABLED(CONFIG_FB)
struct notifier_block fb_notifier;
#endif
-#if IS_ENABLED(CONFIG_TOUCHSCREEN_PM)
- struct touch_pm tpm;
-#endif
#if IS_ENABLED(CONFIG_TOUCHSCREEN_MOTION_FILTER)
struct touch_mf tmf;
#endif
diff --git a/touch_apis.c b/touch_apis.c
index 319a043..8caa94d 100644
--- a/touch_apis.c
+++ b/touch_apis.c
@@ -301,7 +301,7 @@ static ssize_t wake_lock_show(
if (apis->get_wake_lock_state != NULL) {
locked = apis->get_wake_lock_state(
- dev, TPM_WAKELOCK_TYPE_FORCE_ACTIVE);
+ dev, GTI_PM_WAKELOCK_TYPE_FORCE_ACTIVE);
ret = snprintf(buf, PAGE_SIZE, "result: %s\n",
locked ? "locked" : "unlocked");
} else {
@@ -329,7 +329,7 @@ static ssize_t wake_lock_store(struct device *dev,
if (apis->set_wake_lock_state != NULL) {
ret = apis->set_wake_lock_state(
- dev, TPM_WAKELOCK_TYPE_FORCE_ACTIVE, locked);
+ dev, GTI_PM_WAKELOCK_TYPE_FORCE_ACTIVE, locked);
if (ret < 0) {
return ret;
}
diff --git a/touch_apis.h b/touch_apis.h
index 18b7528..dda4f89 100644
--- a/touch_apis.h
+++ b/touch_apis.h
@@ -11,7 +11,9 @@
#if IS_ENABLED(CONFIG_TOUCHSCREEN_MOTION_FILTER)
#include "touch_mf_mode.h"
#endif
-#include "touch_pm.h"
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+#include <goog_touch_interface.h>
+#endif
enum scan_mode {
SCAN_MODE_AUTO = 0,
@@ -47,9 +49,9 @@ struct touch_apis_data {
int (*set_scan_mode)(struct device *dev, enum scan_mode mode);
int (*set_sensing_enabled)(struct device *dev, bool enabled);
bool (*get_wake_lock_state)(
- struct device *dev, enum tpm_wakelock_type type);
+ struct device *dev, enum gti_pm_wakelock_type type);
int (*set_wake_lock_state)(
- struct device *dev, enum tpm_wakelock_type type, bool locked);
+ struct device *dev, enum gti_pm_wakelock_type type, bool locked);
};
extern int touch_apis_init(struct device *dev, struct touch_apis_data *data);
diff --git a/touch_pm.c b/touch_pm.c
deleted file mode 100644
index d9a9d87..0000000
--- a/touch_pm.c
+++ /dev/null
@@ -1,288 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Sysfs APIs for Google Pixel devices.
- *
- * Copyright 2022 Google LLC.
- */
-
-#include "touch_pm.h"
-
-struct drm_connector *tpm_get_bridge_connector(struct drm_bridge *bridge)
-{
- struct drm_connector *connector;
- struct drm_connector_list_iter conn_iter;
-
- drm_connector_list_iter_begin(bridge->dev, &conn_iter);
- drm_for_each_connector_iter(connector, &conn_iter)
- {
- if (connector->encoder == bridge->encoder)
- break;
- }
- drm_connector_list_iter_end(&conn_iter);
- return connector;
-}
-
-static bool tpm_bridge_is_lp_mode(struct drm_connector *connector)
-{
- if (connector && connector->state) {
- struct exynos_drm_connector_state *s =
- to_exynos_connector_state(connector->state);
- return s->exynos_mode.is_lp_mode;
- }
- return false;
-}
-
-static void tpm_panel_bridge_enable(struct drm_bridge *bridge)
-{
- struct touch_pm *tpm =
- container_of(bridge, struct touch_pm, panel_bridge);
-
- pr_debug("%s\n", __func__);
- if (!tpm->is_panel_lp_mode)
- tpm_lock_wakelock(tpm, TPM_WAKELOCK_TYPE_SCREEN_ON);
-}
-
-static void tpm_panel_bridge_disable(struct drm_bridge *bridge)
-{
- struct touch_pm *tpm =
- container_of(bridge, struct touch_pm, panel_bridge);
-
- if (bridge->encoder && bridge->encoder->crtc) {
- const struct drm_crtc_state *crtc_state =
- bridge->encoder->crtc->state;
-
- if (drm_atomic_crtc_effectively_active(crtc_state))
- return;
- }
-
- pr_debug("%s\n", __func__);
- tpm_unlock_wakelock(tpm, TPM_WAKELOCK_TYPE_SCREEN_ON);
-}
-
-static void tpm_panel_bridge_mode_set(struct drm_bridge *bridge,
- const struct drm_display_mode *mode,
- const struct drm_display_mode *adjusted_mode)
-{
- struct touch_pm *tpm =
- container_of(bridge, struct touch_pm, panel_bridge);
-
- pr_debug("%s\n", __func__);
-
- if (!tpm->connector || !tpm->connector->state) {
- pr_info("%s: Get bridge connector.\n", __func__);
- tpm->connector = tpm_get_bridge_connector(bridge);
- }
-
- tpm->is_panel_lp_mode = tpm_bridge_is_lp_mode(tpm->connector);
- if (tpm->is_panel_lp_mode)
- tpm_unlock_wakelock(tpm, TPM_WAKELOCK_TYPE_SCREEN_ON);
- else
- tpm_lock_wakelock(tpm, TPM_WAKELOCK_TYPE_SCREEN_ON);
-}
-
-static const struct drm_bridge_funcs panel_bridge_funcs = {
- .enable = tpm_panel_bridge_enable,
- .disable = tpm_panel_bridge_disable,
- .mode_set = tpm_panel_bridge_mode_set,
-};
-
-static int tpm_register_panel_bridge(struct touch_pm *tpm)
-{
-#ifdef CONFIG_OF
- tpm->panel_bridge.of_node = tpm->of_node;
-#endif
- tpm->panel_bridge.funcs = &panel_bridge_funcs;
- drm_bridge_add(&tpm->panel_bridge);
- return 0;
-}
-
-static void tpm_unregister_panel_bridge(struct drm_bridge *bridge)
-{
- struct drm_bridge *node;
-
- drm_bridge_remove(bridge);
-
- if (!bridge->dev) /* not attached */
- return;
-
- drm_modeset_lock(&bridge->dev->mode_config.connection_mutex, NULL);
- list_for_each_entry(node, &bridge->encoder->bridge_chain,
- chain_node) if (node == bridge)
- {
- if (bridge->funcs->detach)
- bridge->funcs->detach(bridge);
- list_del(&bridge->chain_node);
- break;
- }
- drm_modeset_unlock(&bridge->dev->mode_config.connection_mutex);
- bridge->dev = NULL;
-}
-
-int tpm_lock_wakelock(struct touch_pm *tpm, enum tpm_wakelock_type type)
-{
- int ret = 0;
- int lock = type & TPM_WAKELOCK_TYPE_LOCK_MASK;
- bool wait_resume = false;
-
- mutex_lock(&tpm->lock_mutex);
-
- if (tpm->locks & lock) {
- dev_dbg(&tpm->pdev->dev,
- "unexpectedly lock: locks=0x%04X, lock=0x%04X\n",
- tpm->locks, lock);
- mutex_unlock(&tpm->lock_mutex);
- return -EINVAL;
- }
-
- /*
- * If NON_WAKE_UP is set and the pm is suspend, we should ignore it.
- * For example, IRQs should only keep the bus active. IRQs received
- * while the pm is suspend should be ignored.
- */
- if (type & TPM_WAKELOCK_TYPE_NON_WAKE_UP && tpm->locks == 0) {
- mutex_unlock(&tpm->lock_mutex);
- return -EAGAIN;
- }
-
- tpm->locks |= lock;
-
- if ((type & TPM_WAKELOCK_TYPE_NON_WAKE_UP) != 0) {
- mutex_unlock(&tpm->lock_mutex);
- return ret;
- }
-
- /*
- * When triggering a wake, wait up to one second to resume.
- * SCREEN_ON does not need to wait.
- */
- if (lock != TPM_WAKELOCK_TYPE_SCREEN_ON) {
- wait_resume = true;
- }
-
- mutex_unlock(&tpm->lock_mutex);
-
- /* Complete or cancel any outstanding transitions */
- cancel_work_sync(&tpm->suspend_work);
- cancel_work_sync(&tpm->resume_work);
- queue_work(tpm->event_wq, &tpm->resume_work);
-
- if (wait_resume) {
- wait_for_completion_timeout(&tpm->bus_resumed, HZ);
- if (tpm->pwr_state != TPM_PWR_ON) {
- dev_err(&tpm->pdev->dev,
- "Failed to wake the touch bus.\n");
- ret = -ETIMEDOUT;
- }
- }
-
- return ret;
-}
-
-int tpm_unlock_wakelock(struct touch_pm *tpm, enum tpm_wakelock_type type)
-{
- int ret = 0;
- int lock = type & TPM_WAKELOCK_TYPE_LOCK_MASK;
-
- mutex_lock(&tpm->lock_mutex);
-
- if (!(tpm->locks & lock)) {
- dev_dbg(&tpm->pdev->dev,
- "unexpectedly unlock: locks=0x%04X, lock=0x%04X\n",
- tpm->locks, lock);
- mutex_unlock(&tpm->lock_mutex);
- return -EINVAL;
- }
-
- tpm->locks &= ~lock;
-
- if (tpm->locks == 0) {
- mutex_unlock(&tpm->lock_mutex);
- /* Complete or cancel any outstanding transitions */
- cancel_work_sync(&tpm->suspend_work);
- cancel_work_sync(&tpm->resume_work);
-
- mutex_lock(&tpm->lock_mutex);
- if (tpm->locks == 0)
- queue_work(tpm->event_wq, &tpm->suspend_work);
- }
- mutex_unlock(&tpm->lock_mutex);
-
- return ret;
-}
-
-bool tpm_get_lock_state(struct touch_pm *tpm, enum tpm_wakelock_type type)
-{
- return tpm->locks & type ? true : false;
-}
-
-int tpm_get_lock_states(struct touch_pm *tpm)
-{
- return tpm->locks;
-}
-
-static void tpm_suspend_work(struct work_struct *work)
-{
- struct touch_pm *tpm =
- container_of(work, struct touch_pm, suspend_work);
-
- /* exit directly if device is already in suspend state */
- if (tpm->pwr_state == TPM_PWR_OFF)
- return;
- tpm->pwr_state = TPM_PWR_OFF;
-
- reinit_completion(&tpm->bus_resumed);
- if (tpm->suspend) {
- tpm->suspend(&tpm->pdev->dev);
- }
-}
-
-static void tpm_resume_work(struct work_struct *work)
-{
- struct touch_pm *tpm = container_of(work, struct touch_pm, resume_work);
-
- /* exit directly if device isn't in suspend state */
- if (tpm->pwr_state == TPM_PWR_ON)
- return;
- tpm->pwr_state = TPM_PWR_ON;
-
- if (tpm->resume) {
- tpm->resume(&tpm->pdev->dev);
- }
- complete_all(&tpm->bus_resumed);
-}
-
-int tpm_register_notification(struct touch_pm *tpm)
-{
- int ret = 0;
-
- tpm->pwr_state = TPM_PWR_ON;
- tpm->locks = 0;
- tpm->event_wq = alloc_workqueue(
- "tpm_wq", WQ_UNBOUND | WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1);
- if (!tpm->event_wq) {
- dev_err(&tpm->pdev->dev, "Cannot create work thread\n");
- ret = -ENOMEM;
- goto err_alloc_workqueue;
- }
-
- mutex_init(&tpm->lock_mutex);
- INIT_WORK(&tpm->suspend_work, tpm_suspend_work);
- INIT_WORK(&tpm->resume_work, tpm_resume_work);
-
- init_completion(&tpm->bus_resumed);
- complete_all(&tpm->bus_resumed);
-
- tpm_register_panel_bridge(tpm);
- return ret;
-
-err_alloc_workqueue:
- return ret;
-}
-
-int tpm_unregister_notification(struct touch_pm *tpm)
-{
- tpm_unregister_panel_bridge(&tpm->panel_bridge);
- tpm->resume = NULL;
- tpm->suspend = NULL;
- return 0;
-}
diff --git a/touch_pm.h b/touch_pm.h
deleted file mode 100644
index 2288015..0000000
--- a/touch_pm.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Sysfs APIs for Google Pixel devices.
- *
- * Copyright 2022 Google LLC.
- */
-
-#ifndef _TOUCH_PM_H_
-#define _TOUCH_PM_H_
-
-#include <linux/mutex.h>
-#include <linux/platform_device.h>
-#include <samsung/exynos_drm_connector.h>
-#include <samsung/panel/panel-samsung-drv.h>
-
-enum tpm_power_state {
- TPM_PWR_OFF = 0,
- TPM_PWR_ON,
-};
-
-#define TPM_WAKELOCK_TYPE_LOCK_MASK 0xFFFF
-/**
- * @brief: wakelock type.
- */
-enum tpm_wakelock_type {
- TPM_WAKELOCK_TYPE_SCREEN_ON = (1 << 0),
- TPM_WAKELOCK_TYPE_IRQ = (1 << 1),
- TPM_WAKELOCK_TYPE_FW_UPDATE = (1 << 2),
- TPM_WAKELOCK_TYPE_SYSFS = (1 << 3),
- TPM_WAKELOCK_TYPE_FORCE_ACTIVE = (1 << 4),
- TPM_WAKELOCK_TYPE_BUGREPORT = (1 << 5),
- TPM_WAKELOCK_TYPE_NON_WAKE_UP = (1 << 16),
-};
-
-struct touch_pm {
- /* PLatform device driver */
- struct platform_device *pdev;
-#ifdef CONFIG_OF
- struct device_node *of_node;
-#endif
-
- struct work_struct suspend_work;
- struct work_struct resume_work;
- struct workqueue_struct *event_wq;
- struct completion bus_resumed;
-
- u32 locks;
- struct mutex lock_mutex;
-
- /* flags */
- int pwr_state;
-
- struct drm_bridge panel_bridge;
- struct drm_connector *connector;
- bool is_panel_lp_mode;
-
- /* Specific function pointer to resume the device from suspend state.
- *
- * @param
- * [ in] dev: an instance of device
- *
- * @return
- * on success, 0; otherwise, negative value on error.
- */
- int (*resume)(struct device *dev);
-
- /* Specific function pointer to put device into suspend state.
- *
- * @param
- * [ in] dev: an instance of device
- *
- * @return
- * on success, 0; otherwise, negative value on error.
- */
- int (*suspend)(struct device *dev);
-};
-
-extern int tpm_lock_wakelock(struct touch_pm *tpm, enum tpm_wakelock_type type);
-extern int tpm_unlock_wakelock(
- struct touch_pm *tpm, enum tpm_wakelock_type type);
-extern bool tpm_get_lock_state(
- struct touch_pm *tpm, enum tpm_wakelock_type type);
-extern int tpm_get_lock_states(struct touch_pm *tpm);
-extern int tpm_register_notification(struct touch_pm *tpm);
-extern int tpm_unregister_notification(struct touch_pm *tpm);
-
-#endif