Merge "input: touchscreen: nt36xxx: add new touch driver"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
dd22fab72f
12
drivers/input/touchscreen/nt36xxx/Kconfig
Normal file
12
drivers/input/touchscreen/nt36xxx/Kconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Novatek NT36xxx touchscreen driver configuration
|
||||
#
|
||||
config TOUCHSCREEN_NT36xxx
|
||||
bool "Novatek NT36xxx"
|
||||
default y
|
||||
help
|
||||
Say Y here if you have a Novatek NT36xxx touchscreen connected
|
||||
to your system.
|
||||
|
||||
If unsure, say N.
|
||||
8
drivers/input/touchscreen/nt36xxx/Makefile
Normal file
8
drivers/input/touchscreen/nt36xxx/Makefile
Normal file
@@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Makefile for the Novatek NT36xxx touchscreen driver.
|
||||
#
|
||||
|
||||
# Each configuration option enables a list of files.
|
||||
|
||||
obj-$(CONFIG_TOUCHSCREEN_NT36xxx) += nt36xxx.o nt36xxx_fw_update.o nt36xxx_ext_proc.o nt36xxx_mp_ctrlram.o
|
||||
1903
drivers/input/touchscreen/nt36xxx/nt36xxx.c
Normal file
1903
drivers/input/touchscreen/nt36xxx/nt36xxx.c
Normal file
File diff suppressed because it is too large
Load Diff
169
drivers/input/touchscreen/nt36xxx/nt36xxx.h
Normal file
169
drivers/input/touchscreen/nt36xxx/nt36xxx.h
Normal file
@@ -0,0 +1,169 @@
|
||||
/* 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.
|
||||
*
|
||||
*/
|
||||
#ifndef _LINUX_NVT_TOUCH_H
|
||||
#define _LINUX_NVT_TOUCH_H
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
#ifdef CONFIG_HAS_EARLYSUSPEND
|
||||
#include <linux/earlysuspend.h>
|
||||
#endif
|
||||
|
||||
#include "nt36xxx_mem_map.h"
|
||||
|
||||
#define NVT_DEBUG 1
|
||||
|
||||
//---GPIO number---
|
||||
#define NVTTOUCH_RST_PIN 980
|
||||
#define NVTTOUCH_INT_PIN 943
|
||||
|
||||
|
||||
//---INT trigger mode---
|
||||
//#define IRQ_TYPE_EDGE_RISING 1
|
||||
//#define IRQ_TYPE_EDGE_FALLING 2
|
||||
#define INT_TRIGGER_TYPE IRQ_TYPE_EDGE_RISING
|
||||
|
||||
|
||||
//---I2C driver info.---
|
||||
#define NVT_I2C_NAME "NVT-ts"
|
||||
#define I2C_BLDR_Address 0x01
|
||||
#define I2C_FW_Address 0x01
|
||||
#define I2C_HW_Address 0x62
|
||||
|
||||
#if NVT_DEBUG
|
||||
#define NVT_LOG(fmt, args...) pr_err("[%s] %s %d: " fmt, NVT_I2C_NAME, __func__, __LINE__, ##args)
|
||||
#else
|
||||
#define NVT_LOG(fmt, args...) pr_info("[%s] %s %d: " fmt, NVT_I2C_NAME, __func__, __LINE__, ##args)
|
||||
#endif
|
||||
#define NVT_ERR(fmt, args...) pr_err("[%s] %s %d: " fmt, NVT_I2C_NAME, __func__, __LINE__, ##args)
|
||||
|
||||
//---Input device info.---
|
||||
#define NVT_TS_NAME "NVTCapacitiveTouchScreen"
|
||||
|
||||
|
||||
//---Touch info.---
|
||||
#define TOUCH_DEFAULT_MAX_WIDTH 1080
|
||||
#define TOUCH_DEFAULT_MAX_HEIGHT 1920
|
||||
#define TOUCH_MAX_FINGER_NUM 10
|
||||
#define TOUCH_KEY_NUM 0
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
extern const uint16_t touch_key_array[TOUCH_KEY_NUM];
|
||||
#endif
|
||||
#define TOUCH_FORCE_NUM 1000
|
||||
|
||||
/* Enable only when module have tp reset pin and connected to host */
|
||||
#define NVT_TOUCH_SUPPORT_HW_RST 0
|
||||
|
||||
//---Customerized func.---
|
||||
#define NVT_TOUCH_PROC 1
|
||||
#define NVT_TOUCH_EXT_PROC 1
|
||||
#define NVT_TOUCH_MP 1
|
||||
#define MT_PROTOCOL_B 1
|
||||
#define WAKEUP_GESTURE 1
|
||||
#if WAKEUP_GESTURE
|
||||
extern const uint16_t gesture_key_array[];
|
||||
#endif
|
||||
#define BOOT_UPDATE_FIRMWARE 0
|
||||
#define BOOT_UPDATE_FIRMWARE_NAME "novatek_ts_fw.bin"
|
||||
|
||||
//---ESD Protect.---
|
||||
#define NVT_TOUCH_ESD_PROTECT 0
|
||||
#define NVT_TOUCH_ESD_CHECK_PERIOD 1500 /* ms */
|
||||
|
||||
struct nvt_ts_data {
|
||||
struct i2c_client *client;
|
||||
struct input_dev *input_dev;
|
||||
struct delayed_work nvt_fwu_work;
|
||||
uint16_t addr;
|
||||
int8_t phys[32];
|
||||
#if defined(CONFIG_FB)
|
||||
#ifdef _MSM_DRM_NOTIFY_H_
|
||||
struct notifier_block drm_notif;
|
||||
#else
|
||||
struct notifier_block fb_notif;
|
||||
#endif
|
||||
#elif defined(CONFIG_HAS_EARLYSUSPEND)
|
||||
struct early_suspend early_suspend;
|
||||
#endif
|
||||
uint8_t fw_ver;
|
||||
uint8_t x_num;
|
||||
uint8_t y_num;
|
||||
uint16_t abs_x_max;
|
||||
uint16_t abs_y_max;
|
||||
uint8_t max_touch_num;
|
||||
uint8_t max_button_num;
|
||||
uint32_t int_trigger_type;
|
||||
int32_t irq_gpio;
|
||||
uint32_t irq_flags;
|
||||
int32_t reset_gpio;
|
||||
uint32_t reset_flags;
|
||||
struct mutex lock;
|
||||
const struct nvt_ts_mem_map *mmap;
|
||||
uint8_t carrier_system;
|
||||
uint16_t nvt_pid;
|
||||
uint8_t xbuf[1025];
|
||||
struct mutex xbuf_lock;
|
||||
bool irq_enabled;
|
||||
};
|
||||
|
||||
#if NVT_TOUCH_PROC
|
||||
struct nvt_flash_data{
|
||||
rwlock_t lock;
|
||||
struct i2c_client *client;
|
||||
};
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
RESET_STATE_INIT = 0xA0,// IC reset
|
||||
RESET_STATE_REK, // ReK baseline
|
||||
RESET_STATE_REK_FINISH, // baseline is ready
|
||||
RESET_STATE_NORMAL_RUN, // normal run
|
||||
RESET_STATE_MAX = 0xAF
|
||||
} RST_COMPLETE_STATE;
|
||||
|
||||
typedef enum {
|
||||
EVENT_MAP_HOST_CMD = 0x50,
|
||||
EVENT_MAP_HANDSHAKING_or_SUB_CMD_BYTE = 0x51,
|
||||
EVENT_MAP_RESET_COMPLETE = 0x60,
|
||||
EVENT_MAP_FWINFO = 0x78,
|
||||
EVENT_MAP_PROJECTID = 0x9A,
|
||||
} I2C_EVENT_MAP;
|
||||
|
||||
//---extern structures---
|
||||
extern struct nvt_ts_data *ts;
|
||||
|
||||
//---extern functions---
|
||||
extern int32_t CTP_I2C_READ(struct i2c_client *client, uint16_t address, uint8_t *buf, uint16_t len);
|
||||
extern int32_t CTP_I2C_WRITE(struct i2c_client *client, uint16_t address, uint8_t *buf, uint16_t len);
|
||||
extern void nvt_bootloader_reset(void);
|
||||
extern void nvt_sw_reset_idle(void);
|
||||
extern int32_t nvt_check_fw_reset_state(RST_COMPLETE_STATE check_reset_state);
|
||||
extern int32_t nvt_get_fw_info(void);
|
||||
extern int32_t nvt_clear_fw_status(void);
|
||||
extern int32_t nvt_check_fw_status(void);
|
||||
extern int32_t nvt_set_page(uint16_t i2c_addr, uint32_t addr);
|
||||
#if NVT_TOUCH_ESD_PROTECT
|
||||
extern void nvt_esd_check_enable(uint8_t enable);
|
||||
#endif /* #if NVT_TOUCH_ESD_PROTECT */
|
||||
extern void nvt_stop_crc_reboot(void);
|
||||
|
||||
#endif /* _LINUX_NVT_TOUCH_H */
|
||||
595
drivers/input/touchscreen/nt36xxx/nt36xxx_ext_proc.c
Normal file
595
drivers/input/touchscreen/nt36xxx/nt36xxx_ext_proc.c
Normal file
@@ -0,0 +1,595 @@
|
||||
// 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.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
#include "nt36xxx.h"
|
||||
|
||||
#if NVT_TOUCH_EXT_PROC
|
||||
#define NVT_FW_VERSION "nvt_fw_version"
|
||||
#define NVT_BASELINE "nvt_baseline"
|
||||
#define NVT_RAW "nvt_raw"
|
||||
#define NVT_DIFF "nvt_diff"
|
||||
|
||||
#define BUS_TRANSFER_LENGTH 64
|
||||
|
||||
#define NORMAL_MODE 0x00
|
||||
#define TEST_MODE_1 0x21
|
||||
#define TEST_MODE_2 0x22
|
||||
#define HANDSHAKING_HOST_READY 0xBB
|
||||
|
||||
#define XDATA_SECTOR_SIZE 256
|
||||
|
||||
static uint8_t xdata_tmp[2048] = {0};
|
||||
static int32_t xdata[2048] = {0};
|
||||
|
||||
static struct proc_dir_entry *NVT_proc_fw_version_entry;
|
||||
static struct proc_dir_entry *NVT_proc_baseline_entry;
|
||||
static struct proc_dir_entry *NVT_proc_raw_entry;
|
||||
static struct proc_dir_entry *NVT_proc_diff_entry;
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen change mode function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
void nvt_change_mode(uint8_t mode)
|
||||
{
|
||||
uint8_t buf[8] = {0};
|
||||
|
||||
//---set xdata index to EVENT BUF ADDR---
|
||||
nvt_set_page(I2C_FW_Address, ts->mmap->EVENT_BUF_ADDR | EVENT_MAP_HOST_CMD);
|
||||
|
||||
//---set mode---
|
||||
buf[0] = EVENT_MAP_HOST_CMD;
|
||||
buf[1] = mode;
|
||||
CTP_I2C_WRITE(ts->client, I2C_FW_Address, buf, 2);
|
||||
|
||||
if (mode == NORMAL_MODE) {
|
||||
buf[0] = EVENT_MAP_HANDSHAKING_or_SUB_CMD_BYTE;
|
||||
buf[1] = HANDSHAKING_HOST_READY;
|
||||
CTP_I2C_WRITE(ts->client, I2C_FW_Address, buf, 2);
|
||||
msleep(20);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen get firmware pipe function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---pipe 0. 1---pipe 1.
|
||||
*******************************************************/
|
||||
uint8_t nvt_get_fw_pipe(void)
|
||||
{
|
||||
uint8_t buf[8]= {0};
|
||||
|
||||
//---set xdata index to EVENT BUF ADDR---
|
||||
nvt_set_page(I2C_FW_Address, ts->mmap->EVENT_BUF_ADDR | EVENT_MAP_HANDSHAKING_or_SUB_CMD_BYTE);
|
||||
|
||||
//---read fw status---
|
||||
buf[0] = EVENT_MAP_HANDSHAKING_or_SUB_CMD_BYTE;
|
||||
buf[1] = 0x00;
|
||||
CTP_I2C_READ(ts->client, I2C_FW_Address, buf, 2);
|
||||
|
||||
//NVT_LOG("FW pipe=%d, buf[1]=0x%02X\n", (buf[1]&0x01), buf[1]);
|
||||
|
||||
return (buf[1] & 0x01);
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen read meta data function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
void nvt_read_mdata(uint32_t xdata_addr, uint32_t xdata_btn_addr)
|
||||
{
|
||||
int32_t i = 0;
|
||||
int32_t j = 0;
|
||||
int32_t k = 0;
|
||||
uint8_t buf[BUS_TRANSFER_LENGTH + 1] = {0};
|
||||
uint32_t head_addr = 0;
|
||||
int32_t dummy_len = 0;
|
||||
int32_t data_len = 0;
|
||||
int32_t residual_len = 0;
|
||||
|
||||
//---set xdata sector address & length---
|
||||
head_addr = xdata_addr - (xdata_addr % XDATA_SECTOR_SIZE);
|
||||
dummy_len = xdata_addr - head_addr;
|
||||
data_len = ts->x_num * ts->y_num * 2;
|
||||
residual_len = (head_addr + dummy_len + data_len) % XDATA_SECTOR_SIZE;
|
||||
|
||||
//printk("head_addr=0x%05X, dummy_len=0x%05X, data_len=0x%05X, residual_len=0x%05X\n", head_addr, dummy_len, data_len, residual_len);
|
||||
|
||||
//read xdata : step 1
|
||||
for (i = 0; i < ((dummy_len + data_len) / XDATA_SECTOR_SIZE); i++) {
|
||||
//---change xdata index---
|
||||
nvt_set_page(I2C_FW_Address, head_addr + XDATA_SECTOR_SIZE * i);
|
||||
|
||||
//---read xdata by BUS_TRANSFER_LENGTH
|
||||
for (j = 0; j < (XDATA_SECTOR_SIZE / BUS_TRANSFER_LENGTH); j++) {
|
||||
//---read data---
|
||||
buf[0] = BUS_TRANSFER_LENGTH * j;
|
||||
CTP_I2C_READ(ts->client, I2C_FW_Address, buf, BUS_TRANSFER_LENGTH + 1);
|
||||
|
||||
//---copy buf to xdata_tmp---
|
||||
for (k = 0; k < BUS_TRANSFER_LENGTH; k++) {
|
||||
xdata_tmp[XDATA_SECTOR_SIZE * i + BUS_TRANSFER_LENGTH * j + k] = buf[k + 1];
|
||||
//printk("0x%02X, 0x%04X\n", buf[k+1], (XDATA_SECTOR_SIZE*i + BUS_TRANSFER_LENGTH*j + k));
|
||||
}
|
||||
}
|
||||
//printk("addr=0x%05X\n", (head_addr+XDATA_SECTOR_SIZE*i));
|
||||
}
|
||||
|
||||
//read xdata : step2
|
||||
if (residual_len != 0) {
|
||||
//---change xdata index---
|
||||
nvt_set_page(I2C_FW_Address, xdata_addr + data_len - residual_len);
|
||||
|
||||
//---read xdata by BUS_TRANSFER_LENGTH
|
||||
for (j = 0; j < (residual_len / BUS_TRANSFER_LENGTH + 1); j++) {
|
||||
//---read data---
|
||||
buf[0] = BUS_TRANSFER_LENGTH * j;
|
||||
CTP_I2C_READ(ts->client, I2C_FW_Address, buf, BUS_TRANSFER_LENGTH + 1);
|
||||
|
||||
//---copy buf to xdata_tmp---
|
||||
for (k = 0; k < BUS_TRANSFER_LENGTH; k++) {
|
||||
xdata_tmp[(dummy_len + data_len - residual_len) + BUS_TRANSFER_LENGTH * j + k] = buf[k + 1];
|
||||
//printk("0x%02X, 0x%04x\n", buf[k+1], ((dummy_len+data_len-residual_len) + BUS_TRANSFER_LENGTH*j + k));
|
||||
}
|
||||
}
|
||||
//printk("addr=0x%05X\n", (xdata_addr+data_len-residual_len));
|
||||
}
|
||||
|
||||
//---remove dummy data and 2bytes-to-1data---
|
||||
for (i = 0; i < (data_len / 2); i++) {
|
||||
xdata[i] = (int16_t)(xdata_tmp[dummy_len + i * 2] + 256 * xdata_tmp[dummy_len + i * 2 + 1]);
|
||||
}
|
||||
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
//read button xdata : step3
|
||||
//---change xdata index---
|
||||
nvt_set_page(I2C_FW_Address, xdata_btn_addr);
|
||||
|
||||
//---read data---
|
||||
buf[0] = (xdata_btn_addr & 0xFF);
|
||||
CTP_I2C_READ(ts->client, I2C_FW_Address, buf, (TOUCH_KEY_NUM * 2 + 1));
|
||||
|
||||
//---2bytes-to-1data---
|
||||
for (i = 0; i < TOUCH_KEY_NUM; i++) {
|
||||
xdata[ts->x_num * ts->y_num + i] = (int16_t)(buf[1 + i * 2] + 256 * buf[1 + i * 2 + 1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
//---set xdata index to EVENT BUF ADDR---
|
||||
nvt_set_page(I2C_FW_Address, ts->mmap->EVENT_BUF_ADDR);
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen get meta data function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
void nvt_get_mdata(int32_t *buf, uint8_t *m_x_num, uint8_t *m_y_num)
|
||||
{
|
||||
*m_x_num = ts->x_num;
|
||||
*m_y_num = ts->y_num;
|
||||
memcpy(buf, xdata, ((ts->x_num * ts->y_num + TOUCH_KEY_NUM) * sizeof(int32_t)));
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen firmware version show function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed.
|
||||
*******************************************************/
|
||||
static int32_t c_fw_version_show(struct seq_file *m, void *v)
|
||||
{
|
||||
seq_printf(m, "fw_ver=%d, x_num=%d, y_num=%d, button_num=%d\n", ts->fw_ver, ts->x_num, ts->y_num, ts->max_button_num);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen xdata sequence print show
|
||||
function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed.
|
||||
*******************************************************/
|
||||
static int32_t c_show(struct seq_file *m, void *v)
|
||||
{
|
||||
int32_t i = 0;
|
||||
int32_t j = 0;
|
||||
|
||||
for (i = 0; i < ts->y_num; i++) {
|
||||
for (j = 0; j < ts->x_num; j++) {
|
||||
seq_printf(m, "%5d, ", xdata[i * ts->x_num + j]);
|
||||
}
|
||||
seq_puts(m, "\n");
|
||||
}
|
||||
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
for (i = 0; i < TOUCH_KEY_NUM; i++) {
|
||||
seq_printf(m, "%5d, ", xdata[ts->x_num * ts->y_num + i]);
|
||||
}
|
||||
seq_puts(m, "\n");
|
||||
#endif
|
||||
|
||||
seq_printf(m, "\n\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen xdata sequence print start
|
||||
function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 1---call next function.
|
||||
NULL---not call next function and sequence loop
|
||||
stop.
|
||||
*******************************************************/
|
||||
static void *c_start(struct seq_file *m, loff_t *pos)
|
||||
{
|
||||
return *pos < 1 ? (void *)1 : NULL;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen xdata sequence print next
|
||||
function.
|
||||
|
||||
return:
|
||||
Executive outcomes. NULL---no next and call sequence
|
||||
stop function.
|
||||
*******************************************************/
|
||||
static void *c_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
{
|
||||
++*pos;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen xdata sequence print stop
|
||||
function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
static void c_stop(struct seq_file *m, void *v)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const struct seq_operations nvt_fw_version_seq_ops = {
|
||||
.start = c_start,
|
||||
.next = c_next,
|
||||
.stop = c_stop,
|
||||
.show = c_fw_version_show
|
||||
};
|
||||
|
||||
const struct seq_operations nvt_seq_ops = {
|
||||
.start = c_start,
|
||||
.next = c_next,
|
||||
.stop = c_stop,
|
||||
.show = c_show
|
||||
};
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen /proc/nvt_fw_version open
|
||||
function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
static int32_t nvt_fw_version_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (mutex_lock_interruptible(&ts->lock)) {
|
||||
return -ERESTARTSYS;
|
||||
}
|
||||
|
||||
NVT_LOG("++\n");
|
||||
|
||||
#if NVT_TOUCH_ESD_PROTECT
|
||||
nvt_esd_check_enable(false);
|
||||
#endif /* #if NVT_TOUCH_ESD_PROTECT */
|
||||
|
||||
if (nvt_get_fw_info()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
mutex_unlock(&ts->lock);
|
||||
|
||||
NVT_LOG("--\n");
|
||||
|
||||
return seq_open(file, &nvt_fw_version_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations nvt_fw_version_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = nvt_fw_version_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen /proc/nvt_baseline open function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed.
|
||||
*******************************************************/
|
||||
static int32_t nvt_baseline_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (mutex_lock_interruptible(&ts->lock)) {
|
||||
return -ERESTARTSYS;
|
||||
}
|
||||
|
||||
NVT_LOG("++\n");
|
||||
|
||||
#if NVT_TOUCH_ESD_PROTECT
|
||||
nvt_esd_check_enable(false);
|
||||
#endif /* #if NVT_TOUCH_ESD_PROTECT */
|
||||
|
||||
if (nvt_clear_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
nvt_change_mode(TEST_MODE_2);
|
||||
|
||||
if (nvt_check_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (nvt_get_fw_info()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
nvt_read_mdata(ts->mmap->BASELINE_ADDR, ts->mmap->BASELINE_BTN_ADDR);
|
||||
|
||||
nvt_change_mode(NORMAL_MODE);
|
||||
|
||||
mutex_unlock(&ts->lock);
|
||||
|
||||
NVT_LOG("--\n");
|
||||
|
||||
return seq_open(file, &nvt_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations nvt_baseline_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = nvt_baseline_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen /proc/nvt_raw open function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed.
|
||||
*******************************************************/
|
||||
static int32_t nvt_raw_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (mutex_lock_interruptible(&ts->lock)) {
|
||||
return -ERESTARTSYS;
|
||||
}
|
||||
|
||||
NVT_LOG("++\n");
|
||||
|
||||
#if NVT_TOUCH_ESD_PROTECT
|
||||
nvt_esd_check_enable(false);
|
||||
#endif /* #if NVT_TOUCH_ESD_PROTECT */
|
||||
|
||||
if (nvt_clear_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
nvt_change_mode(TEST_MODE_2);
|
||||
|
||||
if (nvt_check_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (nvt_get_fw_info()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (nvt_get_fw_pipe() == 0)
|
||||
nvt_read_mdata(ts->mmap->RAW_PIPE0_ADDR, ts->mmap->RAW_BTN_PIPE0_ADDR);
|
||||
else
|
||||
nvt_read_mdata(ts->mmap->RAW_PIPE1_ADDR, ts->mmap->RAW_BTN_PIPE1_ADDR);
|
||||
|
||||
nvt_change_mode(NORMAL_MODE);
|
||||
|
||||
mutex_unlock(&ts->lock);
|
||||
|
||||
NVT_LOG("--\n");
|
||||
|
||||
return seq_open(file, &nvt_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations nvt_raw_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = nvt_raw_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen /proc/nvt_diff open function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed. negative---failed.
|
||||
*******************************************************/
|
||||
static int32_t nvt_diff_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (mutex_lock_interruptible(&ts->lock)) {
|
||||
return -ERESTARTSYS;
|
||||
}
|
||||
|
||||
NVT_LOG("++\n");
|
||||
|
||||
#if NVT_TOUCH_ESD_PROTECT
|
||||
nvt_esd_check_enable(false);
|
||||
#endif /* #if NVT_TOUCH_ESD_PROTECT */
|
||||
|
||||
if (nvt_clear_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
nvt_change_mode(TEST_MODE_2);
|
||||
|
||||
if (nvt_check_fw_status()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (nvt_get_fw_info()) {
|
||||
mutex_unlock(&ts->lock);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (nvt_get_fw_pipe() == 0)
|
||||
nvt_read_mdata(ts->mmap->DIFF_PIPE0_ADDR, ts->mmap->DIFF_BTN_PIPE0_ADDR);
|
||||
else
|
||||
nvt_read_mdata(ts->mmap->DIFF_PIPE1_ADDR, ts->mmap->DIFF_BTN_PIPE1_ADDR);
|
||||
|
||||
nvt_change_mode(NORMAL_MODE);
|
||||
|
||||
mutex_unlock(&ts->lock);
|
||||
|
||||
NVT_LOG("--\n");
|
||||
|
||||
return seq_open(file, &nvt_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations nvt_diff_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = nvt_diff_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen extra function proc. file node
|
||||
initial function.
|
||||
|
||||
return:
|
||||
Executive outcomes. 0---succeed. -12---failed.
|
||||
*******************************************************/
|
||||
int32_t nvt_extra_proc_init(void)
|
||||
{
|
||||
NVT_proc_fw_version_entry = proc_create(NVT_FW_VERSION, 0444, NULL,&nvt_fw_version_fops);
|
||||
if (NVT_proc_fw_version_entry == NULL) {
|
||||
NVT_ERR("create proc/%s Failed!\n", NVT_FW_VERSION);
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
NVT_LOG("create proc/%s Succeeded!\n", NVT_FW_VERSION);
|
||||
}
|
||||
|
||||
NVT_proc_baseline_entry = proc_create(NVT_BASELINE, 0444, NULL,&nvt_baseline_fops);
|
||||
if (NVT_proc_baseline_entry == NULL) {
|
||||
NVT_ERR("create proc/%s Failed!\n", NVT_BASELINE);
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
NVT_LOG("create proc/%s Succeeded!\n", NVT_BASELINE);
|
||||
}
|
||||
|
||||
NVT_proc_raw_entry = proc_create(NVT_RAW, 0444, NULL,&nvt_raw_fops);
|
||||
if (NVT_proc_raw_entry == NULL) {
|
||||
NVT_ERR("create proc/%s Failed!\n", NVT_RAW);
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
NVT_LOG("create proc/%s Succeeded!\n", NVT_RAW);
|
||||
}
|
||||
|
||||
NVT_proc_diff_entry = proc_create(NVT_DIFF, 0444, NULL,&nvt_diff_fops);
|
||||
if (NVT_proc_diff_entry == NULL) {
|
||||
NVT_ERR("create proc/%s Failed!\n", NVT_DIFF);
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
NVT_LOG("create proc/%s Succeeded!\n", NVT_DIFF);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
Description:
|
||||
Novatek touchscreen extra function proc. file node
|
||||
deinitial function.
|
||||
|
||||
return:
|
||||
n.a.
|
||||
*******************************************************/
|
||||
void nvt_extra_proc_deinit(void)
|
||||
{
|
||||
if (NVT_proc_fw_version_entry != NULL) {
|
||||
remove_proc_entry(NVT_FW_VERSION, NULL);
|
||||
NVT_proc_fw_version_entry = NULL;
|
||||
NVT_LOG("Removed /proc/%s\n", NVT_FW_VERSION);
|
||||
}
|
||||
|
||||
if (NVT_proc_baseline_entry != NULL) {
|
||||
remove_proc_entry(NVT_BASELINE, NULL);
|
||||
NVT_proc_baseline_entry = NULL;
|
||||
NVT_LOG("Removed /proc/%s\n", NVT_BASELINE);
|
||||
}
|
||||
|
||||
if (NVT_proc_raw_entry != NULL) {
|
||||
remove_proc_entry(NVT_RAW, NULL);
|
||||
NVT_proc_raw_entry = NULL;
|
||||
NVT_LOG("Removed /proc/%s\n", NVT_RAW);
|
||||
}
|
||||
|
||||
if (NVT_proc_diff_entry != NULL) {
|
||||
remove_proc_entry(NVT_DIFF, NULL);
|
||||
NVT_proc_diff_entry = NULL;
|
||||
NVT_LOG("Removed /proc/%s\n", NVT_DIFF);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
1037
drivers/input/touchscreen/nt36xxx/nt36xxx_fw_update.c
Normal file
1037
drivers/input/touchscreen/nt36xxx/nt36xxx_fw_update.c
Normal file
File diff suppressed because it is too large
Load Diff
220
drivers/input/touchscreen/nt36xxx/nt36xxx_mem_map.h
Normal file
220
drivers/input/touchscreen/nt36xxx/nt36xxx_mem_map.h
Normal file
@@ -0,0 +1,220 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2010 - 2018 Novatek, Inc.
|
||||
*
|
||||
* $Revision: 48764 $
|
||||
* $Date: 2019-08-08 14:52:12 +0800 (Thu, 08 Aug 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.
|
||||
*
|
||||
*/
|
||||
|
||||
struct nvt_ts_mem_map {
|
||||
uint32_t EVENT_BUF_ADDR;
|
||||
uint32_t RAW_PIPE0_ADDR;
|
||||
uint32_t RAW_PIPE1_ADDR;
|
||||
uint32_t BASELINE_ADDR;
|
||||
uint32_t BASELINE_BTN_ADDR;
|
||||
uint32_t DIFF_PIPE0_ADDR;
|
||||
uint32_t DIFF_PIPE1_ADDR;
|
||||
uint32_t RAW_BTN_PIPE0_ADDR;
|
||||
uint32_t RAW_BTN_PIPE1_ADDR;
|
||||
uint32_t DIFF_BTN_PIPE0_ADDR;
|
||||
uint32_t DIFF_BTN_PIPE1_ADDR;
|
||||
uint32_t READ_FLASH_CHECKSUM_ADDR;
|
||||
uint32_t RW_FLASH_DATA_ADDR;
|
||||
};
|
||||
|
||||
struct nvt_ts_hw_info {
|
||||
uint8_t carrier_system;
|
||||
uint8_t hw_crc;
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36526_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x22D00,
|
||||
.RAW_PIPE0_ADDR = 0x24000,
|
||||
.RAW_PIPE1_ADDR = 0x24000,
|
||||
.BASELINE_ADDR = 0x21758,
|
||||
.BASELINE_BTN_ADDR = 0,
|
||||
.DIFF_PIPE0_ADDR = 0x20AB0,
|
||||
.DIFF_PIPE1_ADDR = 0x24AB0,
|
||||
.RAW_BTN_PIPE0_ADDR = 0,
|
||||
.RAW_BTN_PIPE1_ADDR = 0,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x24000,
|
||||
.RW_FLASH_DATA_ADDR = 0x24002,
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36675_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x22D00,
|
||||
.RAW_PIPE0_ADDR = 0x24000,
|
||||
.RAW_PIPE1_ADDR = 0x24000,
|
||||
.BASELINE_ADDR = 0x21B90,
|
||||
.BASELINE_BTN_ADDR = 0,
|
||||
.DIFF_PIPE0_ADDR = 0x20C60,
|
||||
.DIFF_PIPE1_ADDR = 0x24C60,
|
||||
.RAW_BTN_PIPE0_ADDR = 0,
|
||||
.RAW_BTN_PIPE1_ADDR = 0,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x24000,
|
||||
.RW_FLASH_DATA_ADDR = 0x24002,
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36672A_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x21C00,
|
||||
.RAW_PIPE0_ADDR = 0x20000,
|
||||
.RAW_PIPE1_ADDR = 0x23000,
|
||||
.BASELINE_ADDR = 0x20BFC,
|
||||
.BASELINE_BTN_ADDR = 0x23BFC,
|
||||
.DIFF_PIPE0_ADDR = 0x206DC,
|
||||
.DIFF_PIPE1_ADDR = 0x236DC,
|
||||
.RAW_BTN_PIPE0_ADDR = 0x20510,
|
||||
.RAW_BTN_PIPE1_ADDR = 0x23510,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0x20BF0,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0x23BF0,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x24000,
|
||||
.RW_FLASH_DATA_ADDR = 0x24002,
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36772_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x11E00,
|
||||
.RAW_PIPE0_ADDR = 0x10000,
|
||||
.RAW_PIPE1_ADDR = 0x12000,
|
||||
.BASELINE_ADDR = 0x10E70,
|
||||
.BASELINE_BTN_ADDR = 0x12E70,
|
||||
.DIFF_PIPE0_ADDR = 0x10830,
|
||||
.DIFF_PIPE1_ADDR = 0x12830,
|
||||
.RAW_BTN_PIPE0_ADDR = 0x10E60,
|
||||
.RAW_BTN_PIPE1_ADDR = 0x12E60,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0x10E68,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0x12E68,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x14000,
|
||||
.RW_FLASH_DATA_ADDR = 0x14002,
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36525_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x11A00,
|
||||
.RAW_PIPE0_ADDR = 0x10000,
|
||||
.RAW_PIPE1_ADDR = 0x12000,
|
||||
.BASELINE_ADDR = 0x10B08,
|
||||
.BASELINE_BTN_ADDR = 0x12B08,
|
||||
.DIFF_PIPE0_ADDR = 0x1064C,
|
||||
.DIFF_PIPE1_ADDR = 0x1264C,
|
||||
.RAW_BTN_PIPE0_ADDR = 0x10634,
|
||||
.RAW_BTN_PIPE1_ADDR = 0x12634,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0x10AFC,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0x12AFC,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x14000,
|
||||
.RW_FLASH_DATA_ADDR = 0x14002,
|
||||
};
|
||||
|
||||
static const struct nvt_ts_mem_map NT36676F_memory_map = {
|
||||
.EVENT_BUF_ADDR = 0x11A00,
|
||||
.RAW_PIPE0_ADDR = 0x10000,
|
||||
.RAW_PIPE1_ADDR = 0x12000,
|
||||
.BASELINE_ADDR = 0x10B08,
|
||||
.BASELINE_BTN_ADDR = 0x12B08,
|
||||
.DIFF_PIPE0_ADDR = 0x1064C,
|
||||
.DIFF_PIPE1_ADDR = 0x1264C,
|
||||
.RAW_BTN_PIPE0_ADDR = 0x10634,
|
||||
.RAW_BTN_PIPE1_ADDR = 0x12634,
|
||||
.DIFF_BTN_PIPE0_ADDR = 0x10AFC,
|
||||
.DIFF_BTN_PIPE1_ADDR = 0x12AFC,
|
||||
.READ_FLASH_CHECKSUM_ADDR = 0x14000,
|
||||
.RW_FLASH_DATA_ADDR = 0x14002,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36526_hw_info = {
|
||||
.carrier_system = 2,
|
||||
.hw_crc = 2,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36675_hw_info = {
|
||||
.carrier_system = 2,
|
||||
.hw_crc = 2,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36672A_hw_info = {
|
||||
.carrier_system = 0,
|
||||
.hw_crc = 1,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36772_hw_info = {
|
||||
.carrier_system = 0,
|
||||
.hw_crc = 0,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36525_hw_info = {
|
||||
.carrier_system = 0,
|
||||
.hw_crc = 0,
|
||||
};
|
||||
|
||||
static struct nvt_ts_hw_info NT36676F_hw_info = {
|
||||
.carrier_system = 0,
|
||||
.hw_crc = 0,
|
||||
};
|
||||
|
||||
#define NVT_ID_BYTE_MAX 6
|
||||
struct nvt_ts_trim_id_table {
|
||||
uint8_t id[NVT_ID_BYTE_MAX];
|
||||
uint8_t mask[NVT_ID_BYTE_MAX];
|
||||
const struct nvt_ts_mem_map *mmap;
|
||||
const struct nvt_ts_hw_info *hwinfo;
|
||||
};
|
||||
|
||||
static const struct nvt_ts_trim_id_table trim_id_table[] = {
|
||||
{.id = {0x0C, 0xFF, 0xFF, 0x72, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36675_memory_map, .hwinfo = &NT36675_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x26, 0x65, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36526_memory_map, .hwinfo = &NT36526_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x75, 0x66, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36675_memory_map, .hwinfo = &NT36675_hw_info},
|
||||
{.id = {0x0B, 0xFF, 0xFF, 0x72, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0B, 0xFF, 0xFF, 0x82, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0B, 0xFF, 0xFF, 0x25, 0x65, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0A, 0xFF, 0xFF, 0x72, 0x65, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0A, 0xFF, 0xFF, 0x72, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0A, 0xFF, 0xFF, 0x82, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0A, 0xFF, 0xFF, 0x70, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0B, 0xFF, 0xFF, 0x70, 0x66, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x0A, 0xFF, 0xFF, 0x72, 0x67, 0x03}, .mask = {1, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36672A_memory_map, .hwinfo = &NT36672A_hw_info},
|
||||
{.id = {0x55, 0x00, 0xFF, 0x00, 0x00, 0x00}, .mask = {1, 1, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0x55, 0x72, 0xFF, 0x00, 0x00, 0x00}, .mask = {1, 1, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xAA, 0x00, 0xFF, 0x00, 0x00, 0x00}, .mask = {1, 1, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xAA, 0x72, 0xFF, 0x00, 0x00, 0x00}, .mask = {1, 1, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x72, 0x67, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x70, 0x66, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x70, 0x67, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x72, 0x66, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36772_memory_map, .hwinfo = &NT36772_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x25, 0x65, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36525_memory_map, .hwinfo = &NT36525_hw_info},
|
||||
{.id = {0xFF, 0xFF, 0xFF, 0x76, 0x66, 0x03}, .mask = {0, 0, 0, 1, 1, 1},
|
||||
.mmap = &NT36676F_memory_map, .hwinfo = &NT36676F_hw_info}
|
||||
};
|
||||
1482
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.c
Normal file
1482
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.c
Normal file
File diff suppressed because it is too large
Load Diff
460
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.h
Normal file
460
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.h
Normal file
@@ -0,0 +1,460 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2010 - 2018 Novatek, Inc.
|
||||
*
|
||||
* $Revision: 46179 $
|
||||
* $Date: 2019-06-14 13:47:17 +0800 (Fri, 14 Jun 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#if NVT_TOUCH_MP
|
||||
|
||||
static uint32_t IC_X_CFG_SIZE = 18;
|
||||
static uint32_t IC_Y_CFG_SIZE = 36;
|
||||
static uint32_t IC_KEY_CFG_SIZE = 4;
|
||||
static uint32_t X_Channel = 18;
|
||||
static uint32_t Y_Channel = 36;
|
||||
static uint32_t Key_Channel = TOUCH_KEY_NUM;
|
||||
static uint8_t AIN_X[40] =
|
||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
|
||||
static uint8_t AIN_Y[40] =
|
||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35};
|
||||
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
static uint8_t AIN_KEY[8] = {0, 1, 2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
|
||||
static int32_t PS_Config_Lmt_Short_Rawdata_P[40 * 40] = {
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,14008,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
14008,14008,14008,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_Short_Rawdata_N[40 * 40] = {
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
10000,10000,10000,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_Open_Rawdata_P[40 * 40] = {
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
5120,5120,5120,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_Open_Rawdata_N[40 * 40] = {
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
50,50,50,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_Rawdata_P[40 * 40] = {
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
2560,2560,2560,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_Rawdata_N[40 * 40] = {
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
240,240,240,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_CC_P[40 * 40] = {
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
314,314,314,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_CC_N[40 * 40] = {
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
0,0,0,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_Diff_P[40 * 40] = {
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
75,75,75,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Lmt_FW_Diff_N[40 *40] = {
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,
|
||||
#if TOUCH_KEY_NUM > 0
|
||||
-75,-75,-75,
|
||||
#endif /* #if TOUCH_KEY_NUM > 0 */
|
||||
};
|
||||
|
||||
static int32_t PS_Config_Diff_Test_Frame = 50;
|
||||
|
||||
#endif /* #if NVT_TOUCH_MP */
|
||||
Reference in New Issue
Block a user