kernel_samsung_a34x-permissive/drivers/input/sec_input/sec_secure_touch.h
2024-04-28 15:51:13 +02:00

92 lines
2.2 KiB
C

#ifndef _SEC_SECURE_TOUCH_H_
#define _SEC_SECURE_TOUCH_H_
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/workqueue.h>
#include <linux/stat.h>
#include <linux/err.h>
#include <linux/sched.h>
#include <linux/input.h>
#include <linux/sysfs.h>
//#if defined(CONFIG_SEC_SYSFS)
//#include <linux/sec_sysfs.h>
#if IS_ENABLED(CONFIG_DRV_SAMSUNG)
#include <linux/sec_class.h>
#endif
//#else
//extern struct class *sec_class;
//#endif
#if IS_ENABLED(CONFIG_HALL_NOTIFIER)
#include <linux/hall/hall_ic_notifier.h>
#endif
#if IS_ENABLED(CONFIG_SUPPORT_SENSOR_FOLD)
#include <linux/sensor/sensors_core.h>
#endif
#define SECURE_TOUCH_DEVICE_FIRST 1
#define SECURE_TOUCH_DEVICE_SECOND 2
/*
* folder open = main screen = 0
* folder close = sub screen = 1
*/
#define SECURE_TOUCH_MAIN_DEV 0
#define SECURE_TOUCH_SUB_DEV 1
#define SECURE_TOUCH_FOLDER_OPEN 0
#define SECURE_TOUCH_FOLDER_CLOSE 1
#define SECURE_TOUCH_DEV_NAME "ss_touch"
struct sec_secure_touch_platform_data {
void (*connect)(void *);
void (*disconnect)(void *);
int data;
int temp;
};
struct sec_touch_driver {
struct list_head list;
int drv_number;
int (*enable)(void *drv_data);
int (*disable)(void *drv_data);
int (*status)(void *drv_data);
int (*irq_handle)(void *drv_data);
void *drv_data;
struct kobject *kobj;
int enabled;
int registered;
int is_running;
};
struct sec_secure_touch {
struct list_head list_head;
int secure_enabled;
void *data;
struct platform_device *pdev;
struct device *device;
#if IS_ENABLED(CONFIG_TOUCHSCREEN_DUAL_FOLDABLE)
struct delayed_work folder_work;
#endif
int hall_ic;
struct mutex lock;
struct notifier_block nb;
struct notifier_block nb_ssh;
struct sec_touch_driver touch_driver[2];
int device_number;
int current_device;
};
void sec_secure_touch_sysfs_notify(struct sec_secure_touch *data);
struct sec_touch_driver *sec_secure_touch_register(void *drv_data, int dev_num, struct kobject *kobj);
void sec_secure_touch_unregister(int dev_num);
extern void hall_ic_register_notify(struct notifier_block *nb);
extern void hall_ic_unregister_notify(struct notifier_block *nb);
#endif