Browse Source

touch: enable touch drivers

Enable new drivers for internal projects

Change-Id: I902bec374358a836ff01de6f7a88c4122bc9c366
Signed-off-by: Fei Mao <[email protected]>
Fei Mao 3 years ago
parent
commit
9eca8d1fc6
9 changed files with 302 additions and 0 deletions
  1. 60 0
      Android.mk
  2. 84 0
      Kbuild
  3. 15 0
      Makefile
  4. 20 0
      Makefile.am
  5. 95 0
      NOTICE
  6. 6 0
      config/gki_waipiotouch.conf
  7. 10 0
      config/gki_waipiotouchconf.h
  8. 8 0
      touch_driver_board.mk
  9. 4 0
      touch_driver_product.mk

+ 60 - 0
Android.mk

@@ -0,0 +1,60 @@
+# Android makefile for display kernel modules
+TOUCH_SELECT := CONFIG_MSM_TOUCH=m
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+# This makefile is only for DLKM
+ifneq ($(findstring vendor,$(LOCAL_PATH)),)
+
+ifneq ($(findstring opensource,$(LOCAL_PATH)),)
+	TOUCH_BLD_DIR := $(shell pwd)/vendor/qcom/opensource/touch-drivers
+endif # opensource
+
+DLKM_DIR := $(TOP)/device/qcom/common/dlkm
+
+LOCAL_ADDITIONAL_DEPENDENCIES := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+
+# Build
+###########################################################
+# This is set once per LOCAL_PATH, not per (kernel) module
+KBUILD_OPTIONS := TOUCH_ROOT=$(TOUCH_BLD_DIR)
+
+KBUILD_OPTIONS += MODNAME=touch_dlkm
+KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
+KBUILD_OPTIONS += $(TOUCH_SELECT)
+
+###########################################################
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+LOCAL_MODULE              := focaltech_fts.ko
+LOCAL_MODULE_KBUILD_NAME  := focaltech_fts.ko
+LOCAL_MODULE_TAGS         := optional
+#LOCAL_MODULE_DEBUG_ENABLE := true
+LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
+include $(DLKM_DIR)/Build_external_kernelmodule.mk
+###########################################################
+
+###########################################################
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+LOCAL_MODULE              := synaptics_dsx.ko
+LOCAL_MODULE_KBUILD_NAME  := synaptics_dsx.ko
+LOCAL_MODULE_TAGS         := optional
+#LOCAL_MODULE_DEBUG_ENABLE := true
+LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
+include $(DLKM_DIR)/Build_external_kernelmodule.mk
+###########################################################
+
+###########################################################
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+LOCAL_MODULE              := nt36xxx-i2c.ko
+LOCAL_MODULE_KBUILD_NAME  := nt36xxx-i2c.ko
+LOCAL_MODULE_TAGS         := optional
+#LOCAL_MODULE_DEBUG_ENABLE := true
+LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
+include $(DLKM_DIR)/Build_external_kernelmodule.mk
+###########################################################
+
+endif # DLKM check

+ 84 - 0
Kbuild

@@ -0,0 +1,84 @@
+
+KDIR := $(TOP)/kernel_platform/common
+
+ifeq ($(CONFIG_ARCH_WAIPIO), y)
+	include $(TOUCH_ROOT)/config/gki_waipiotouch.conf
+	LINUX_INC += -include $(TOUCH_ROOT)/config/gki_waipiotouchconf.h
+endif
+
+LINUX_INC +=	-Iinclude/linux \
+		-Iinclude/linux/drm \
+		-Iinclude/linux/gunyah \
+		-Iinclude/linux/input
+
+CDEFINES +=	-DANI_LITTLE_BYTE_ENDIAN \
+	-DANI_LITTLE_BIT_ENDIAN \
+	-DDOT11F_LITTLE_ENDIAN_HOST \
+	-DANI_COMPILER_TYPE_GCC \
+	-DANI_OS_TYPE_ANDROID=6 \
+	-DPTT_SOCK_SVC_ENABLE \
+	-Wall\
+	-Werror\
+	-D__linux__
+
+KBUILD_CPPFLAGS += $(CDEFINES)
+
+ccflags-y += $(LINUX_INC)
+
+ifeq ($(call cc-option-yn, -Wmaybe-uninitialized),y)
+EXTRA_CFLAGS += -Wmaybe-uninitialized
+endif
+
+ifeq ($(call cc-option-yn, -Wheader-guard),y)
+EXTRA_CFLAGS += -Wheader-guard
+endif
+
+######### CONFIG_MSM_TOUCH ########
+
+ifeq ($(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX), y)
+
+	LINUX_INC += -include $(TOUCH_ROOT)/synaptics_dsx/synaptics_dsx.h
+	LINUX_INC += -include $(TOUCH_ROOT)/synaptics_dsx/synaptics_dsx_core.h
+
+	synaptics_dsx-y := \
+		 ./synaptics_dsx/synaptics_dsx_core.o \
+		 ./synaptics_dsx/synaptics_dsx_i2c.o
+
+	obj-$(CONFIG_MSM_TOUCH) += synaptics_dsx.o
+endif
+
+ifeq ($(CONFIG_TOUCH_FOCALTECH), y)
+	LINUX_INC += -include $(TOUCH_ROOT)/focaltech_touch/focaltech_common.h
+	LINUX_INC += -include $(TOUCH_ROOT)/focaltech_touch/focaltech_config.h
+	LINUX_INC += -include $(TOUCH_ROOT)/focaltech_touch/focaltech_core.h
+	LINUX_INC += -include $(TOUCH_ROOT)/focaltech_touch/focaltech_flash.h
+
+	focaltech_fts-y := \
+		 ./focaltech_touch/focaltech_core.o \
+		 ./focaltech_touch/focaltech_ex_fun.o \
+		 ./focaltech_touch/focaltech_ex_mode.o \
+		 ./focaltech_touch/focaltech_gesture.o \
+		 ./focaltech_touch/focaltech_esdcheck.o \
+		 ./focaltech_touch/focaltech_point_report_check.o \
+		 ./focaltech_touch/focaltech_i2c.o \
+		 ./focaltech_touch/focaltech_flash.o \
+		 ./focaltech_touch/focaltech_flash/focaltech_upgrade_ft3518.o
+
+	obj-$(CONFIG_MSM_TOUCH) += focaltech_fts.o
+endif
+
+ifeq ($(CONFIG_TOUCHSCREEN_NT36XXX_I2C), y)
+	LINUX_INC += -include $(TOUCH_ROOT)/nt36xxx/nt36xxx.h
+	LINUX_INC += -include $(TOUCH_ROOT)/nt36xxx/nt36xxx_mem_map.h
+	LINUX_INC += -include $(TOUCH_ROOT)/nt36xxx/nt36xxx_mp_ctrlram.h
+
+	nt36xxx-i2c-y := \
+		 ./nt36xxx/nt36xxx.o \
+		 ./nt36xxx/nt36xxx_fw_update.o \
+		 ./nt36xxx/nt36xxx_ext_proc.o \
+		 ./nt36xxx/nt36xxx_mp_ctrlram.o
+
+	obj-$(CONFIG_MSM_TOUCH) += nt36xxx-i2c.o
+endif
+
+CDEFINES += -DBUILD_TIMESTAMP=\"$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')\"

+ 15 - 0
Makefile

@@ -0,0 +1,15 @@
+
+KBUILD_OPTIONS+= TOUCH_ROOT=$(KERNEL_SRC)/$(M)
+
+all:
+	$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
+
+modules_install:
+	$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
+
+%:
+	$(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS)
+
+clean:
+	rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers
+	rm -rf .tmp_versions

+ 20 - 0
Makefile.am

@@ -0,0 +1,20 @@
+
+TOUCH_ROOT=$(ROOTDIR)vendor/qcom/opensource/touch-drivers
+KBUILD_OPTIONS := TOUCH_ROOT=$(TOUCH_ROOT) CONFIG_MSM_TOUCH=m
+
+ifeq ($(TARGET_SUPPORT),genericarmv8)
+	KBUILD_OPTIONS += CONFIG_ARCH_WAIPIO=y
+endif
+
+all:
+	$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
+
+modules_install:
+	$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
+
+%:
+	$(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS)
+
+clean:
+	rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers
+	rm -rf .tmp_versions

+ 95 - 0
NOTICE

@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
+*/
+
+/*
+ *
+ * FocalTech fts TouchScreen driver.
+ *
+ * Copyright (c) 2012-2019, Focaltech Ltd. All rights reserved.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+/*
+ * Synaptics DSX touchscreen driver
+ *
+ * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved.
+ *
+ * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
+ * Copyright (C) 2012 Alexandra Chin <[email protected]>
+ * Copyright (C) 2012 Scott Lin <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND SYNAPTICS
+ * EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES, INCLUDING ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
+ * AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS.
+ * IN NO EVENT SHALL SYNAPTICS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED
+ * AND BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF COMPETENT JURISDICTION DOES
+ * NOT PERMIT THE DISCLAIMER OF DIRECT DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS'
+ * TOTAL CUMULATIVE LIABILITY TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S.
+ * DOLLARS.
+ */
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2010 - 2018 Novatek, Inc.
+ *
+ * $Revision: 47247 $
+ * $Date: 2019-07-10 10:41:36 +0800 (Wed, 10 Jul 2019) $
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ */
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * FTS Capacitive touch screen controller (FingerTipS)
+ *
+ * Copyright (C) 2016-2019, STMicroelectronics Limited.
+ * Authors: AMG(Analog Mems Group) <[email protected]>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */

+ 6 - 0
config/gki_waipiotouch.conf

@@ -0,0 +1,6 @@
+export CONFIG_TOUCH_FOCALTECH=y
+export CONFIG_TOUCHSCREEN_FTS_DIRECTORY="focaltech_touch"
+export CONFIG_FTS_TRUSTED_TOUCH=y
+export CONFIG_TOUCHSCREEN_SYNAPTICS_DSX=y
+export CONFIG_TOUCHSCREEN_NT36XXX_I2C=y
+export CONFIG_TOUCH_BUILD=m

+ 10 - 0
config/gki_waipiotouchconf.h

@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ */
+
+#define CONFIG_TOUCH_FOCALTECH 1
+#define CONFIG_TOUCHSCREEN_FTS_DIRECTORY "focaltech_touch"
+#define CONFIG_FTS_TRUSTED_TOUCH 1
+#define CONFIG_TOUCHSCREEN_SYNAPTICS_DSX 1
+#define CONFIG_TOUCHSCREEN_NT36XXX_I2C 1

+ 8 - 0
touch_driver_board.mk

@@ -0,0 +1,8 @@
+
+ifneq ($(TARGET_BOARD_AUTO),true)
+	ifeq ($(call is-board-platform-in-list,$(TARGET_BOARD_PLATFORM)),true)
+		BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/focaltech_fts.ko \
+			$(KERNEL_MODULES_OUT)/synaptics_dsx.ko \
+			$(KERNEL_MODULES_OUT)/nt36xxx-i2c.ko
+	endif
+endif

+ 4 - 0
touch_driver_product.mk

@@ -0,0 +1,4 @@
+
+PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/focaltech_fts.ko \
+	$(KERNEL_MODULES_OUT)/synaptics_dsx.ko \
+	$(KERNEL_MODULES_OUT)/nt36xxx-i2c.ko