mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
raydium_mmi: initial kernel driver code
Olson's CLI has Raydium touchscreen Change-Id: Ia5e3e731e290e4c80617c19af7e3f9a0a9acfdd9 Signed-off-by: Konstantin Makariev <hcv867@motorola.com> Reviewed-on: https://gerrit.mot.com/1219234 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Konstantin Makariev <kmakariev@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
4c1eb416f3
commit
9bbba11729
2 changed files with 5418 additions and 0 deletions
5277
drivers/input/touchscreen/raydium_mmi/raydium_i2c_ts.c
Normal file
5277
drivers/input/touchscreen/raydium_mmi/raydium_i2c_ts.c
Normal file
File diff suppressed because it is too large
Load diff
141
drivers/input/touchscreen/raydium_mmi/raydium_i2c_ts.h
Normal file
141
drivers/input/touchscreen/raydium_mmi/raydium_i2c_ts.h
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
#ifndef __LINUX_RAYDIUM_H
|
||||
#define __LINUX_RAYDIUM_H
|
||||
|
||||
#define RAYDIUM_NAME "raydium_ts"
|
||||
|
||||
#define COORDS_ARR_SIZE 4
|
||||
#define I2C_VTG_MIN_UV 1800000
|
||||
#define I2C_VTG_MAX_UV 1800000
|
||||
|
||||
#define RAYDIUM_VER 0x000F
|
||||
|
||||
/* IC timing control arguments */
|
||||
#define RAYDIUM_POWERON_DELAY_USEC 500
|
||||
#define RAYDIUM_RESET_INTERVAL_MSEC 5
|
||||
#define RAYDIUM_RESET_RESTORE_USEC 200
|
||||
#define RAYDIUM_RESET_DELAY_MSEC 100
|
||||
|
||||
/* I2C bus slave address(ID) */
|
||||
#define RAYDIUM_I2C_EID (0x5A)
|
||||
#define RAYDIUM_I2C_NID (0x39)
|
||||
|
||||
/* I2C R/W configuration literal */
|
||||
#define RAYDIUM_I2C_WRITE I2C_SMBUS_WRITE
|
||||
#define RAYDIUM_I2C_READ I2C_SMBUS_READ
|
||||
#define SYN_I2C_RETRY_TIMES 2
|
||||
#define MAX_WRITE_PACKET_SIZE 64
|
||||
#define MAX_READ_PACKET_SIZE 64
|
||||
|
||||
/* PDA address and bit definition*/
|
||||
#define RAYDIUM_READ_FT_DATA_CMD 0x2000019C
|
||||
#define RAYDIUM_GESTURE_STATE_CMD 0x200005F4 // 1byte, disable:0x00 ; enable:0x20
|
||||
#define RAYDIUM_GESTURE_DISABLE 0x00
|
||||
#define RAYDIUM_GESTURE_ENABLE 0x20
|
||||
#define RAYDIUM_GESTURE_RESULT_CMD 0x200005F0 // 4bytes, [0]:ready ; [1]:type ; [2]:direction
|
||||
#define RAYDIUM_CHECK_I2C_CMD 0x500009BC
|
||||
#define RAYDIUM_PDA2_CTRL_CMD 0x50000628
|
||||
#define RAYDIM_ENABLE_PDA2 0x04
|
||||
|
||||
/* PDA literal */
|
||||
#define MASK_8BIT 0xFF
|
||||
#define RAYDIUM_I2C_PDA_ADDRESS_LENGTH 4
|
||||
|
||||
#define PDA_MODE 1
|
||||
#define PDA2_MODE 2
|
||||
|
||||
#define RAYDIUM_I2C_PDA_MODE_DISABLE 0x00
|
||||
#define RAYDIUM_I2C_PDA_MODE_ENABLE 0x80
|
||||
#define RAYDIUM_I2C_PDA_MODE_WORD_MODE 0x40 // Using byte mode due to data might be not word-aligment
|
||||
#define RAYDIUM_I2C_PDA_2_MODE_DISABLE 0x20
|
||||
|
||||
#define RAYDIUM_PALM_MODE_DISABLE 0x00
|
||||
#define RAYDIUM_PALM_MODE_ENABLE 0x01
|
||||
|
||||
#define RAYDIUM_TEST_FW 0x80
|
||||
#define RAYDIUM_EXTREME_BURN 0x40
|
||||
#define RAYDIUM_BOOTLOADER 0x20
|
||||
#define RAYDIUM_FIRMWARE 0x10
|
||||
#define RAYDIUM_PARA 0x08
|
||||
#define RAYDIUM_COMP 0x04
|
||||
#define RAYDIUM_BASELINE 0x02
|
||||
#define RAYDIUM_INIT 0x01
|
||||
|
||||
#define FAIL 0
|
||||
#define ERROR -1
|
||||
#define SUCCESS 1
|
||||
|
||||
#define DISABLE 0
|
||||
#define ENABLE 1
|
||||
|
||||
/* PDA2 setting */
|
||||
#define MAX_PAGE_AMOUNT 11 // Page 0 ~ Page A
|
||||
|
||||
/* PDA2 address and setting definition*/
|
||||
#define RAYDIUM_PDA2_TCH_RPT_STATUS_ADDR 0x00 // only in Page 0
|
||||
#define RAYDIUM_PDA2_TCH_RPT_ADDR 0x01 // only in Page 0
|
||||
#define RAYDIUM_PDA2_HOST_CMD_ADDR 0x02 // only in Page 0
|
||||
#define RAYDIUM_PDA2_PALM_AREA_ADDR 0x03 // only in Page 0
|
||||
#define RAYDIUM_PDA2_GESTURE_RPT_ADDR 0x04 // only in Page 0
|
||||
#define RAYDIUM_PDA2_PALM_STATUS_ADDR 0x05 // only in Page 0
|
||||
#define RAYDIUM_PDA2_FW_VERSION_ADDR 0x06 // only in Page 0
|
||||
#define RAYDIUM_PDA2_PANEL_VERSION_ADDR 0x07 // only in Page 0
|
||||
#define RAYDIUM_PDA2_DISPLAY_MODE_ADDR 0x08 // only in Page 0
|
||||
#define RAYDIUM_PDA2_PDA_CFG_ADDR 0x09 // only in Page 0
|
||||
#define RAYDIUM_PDA2_PAGE_ADDR 0x0A // Page 0 ~ Page 9 will be directed to Page 0
|
||||
#define RAYDIUM_PDA2_PAGE_0 0x00
|
||||
#define RAYDIUM_PDA2_ENABLE_PDA 0x0A // temporary switch to PDA once
|
||||
#define RAYDIUM_PDA2_2_PDA (MAX_PAGE_AMOUNT + 2) // permanently switch to PDA mode
|
||||
|
||||
/* Raydium host cmd */
|
||||
#define RAYDIUM_HOST_CMD_NO_OP 0x00
|
||||
#define RAYDIUM_HOST_CMD_PWR_SLEEP 0x30
|
||||
#define RAYDIUM_HOST_CMD_CALIBRATION 0x5C
|
||||
#define RAYDIUM_HOST_CMD_TP_MODE 0x60
|
||||
#define RAYDIUM_HOST_CMD_FT_MODE 0x61
|
||||
|
||||
/* PDA2 literal */
|
||||
#define RAYDIUM_I2C_PDA2_PAGE_LENGTH 2 // entry byte + target page byte
|
||||
|
||||
/* Touch report */
|
||||
#define MAX_TOUCH_NUM 2
|
||||
#define MAX_REPORT_PAKAGE_SIZE 35
|
||||
#define MAX_TCH_STATUS_PAKAGE_SIZE 2
|
||||
#define MAX_GESTURERESULT_SIZE 4
|
||||
#define PRESS_MAX 0xFFFF
|
||||
#define WIDTH_MAX 0xFFFF
|
||||
#define SHORT_HIGH_BYTE_SHIFT 8
|
||||
|
||||
/* FW update literal */
|
||||
#define RAYDIUM_FW_BIN_PATH_LENGTH 256
|
||||
#define RAYDIUM_FW_MAX_SIZE 0x5600 //20480 //0x5000
|
||||
/* FT APK literal */
|
||||
#define RAYDIUM_HOST_CMD_POS 0x00
|
||||
#define RAYDIUM_FT_CMD_POS 0x01
|
||||
#define RAYDIUM_FT_CMD_LENGTH 0x02
|
||||
|
||||
/* FT APK data type */
|
||||
#define RAYDIUM_FT_UPDATE 0x01
|
||||
|
||||
/*Raydium system flag*/
|
||||
#define RAYDIUM_INTERRUPT_FLAG 0x01
|
||||
#define RAYDIUM_BOOTLOADER_FLAG 0x02
|
||||
|
||||
/* define display mode */
|
||||
#define ACTIVE_MODE 0x00
|
||||
#define AMBIENT_MODE 0x01
|
||||
#define SLEEP_MODE 0x02
|
||||
|
||||
/* Enable sysfs */
|
||||
#define CONFIG_RM_SYSFS_DEBUG
|
||||
|
||||
/* Gesture switch */
|
||||
#define GESTURE_EN
|
||||
|
||||
#define MSM_NEW_VER
|
||||
|
||||
#define PINCTRL_STATE_ACTIVE "pmx_ts_active"
|
||||
#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend"
|
||||
#define PINCTRL_STATE_RELEASE "pmx_ts_release"
|
||||
|
||||
#endif /*__LINUX_RAYDIUM_H*/
|
||||
|
||||
Loading…
Reference in a new issue