mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
[ARM] Stingray touch board file: Add P1,P2 touch panel support.
Added P1,P2 structure with updated Y parameters. Change-Id: I04f96dea35ad6f1005de01e25a57b1bc9701cd3e Signed-off-by: makarand.karvekar <makarand.karvekar@motorola.com>
This commit is contained in:
committed by
Colin Cross
parent
84acce0710
commit
42e58ebeab
@@ -558,23 +558,269 @@ struct qtouch_ts_platform_data stingray_touch_data_p0 = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata stingray_i2c_bus1_touch_info_m1[] = {
|
||||
{
|
||||
I2C_BOARD_INFO(QTOUCH_TS_NAME, 0x5B),
|
||||
.platform_data = &stingray_touch_data_m1,
|
||||
.irq = TEGRA_GPIO_TO_IRQ(STINGRAY_TOUCH_INT_N_GPIO),
|
||||
/* Portable P1 and P2 */
|
||||
struct qtouch_ts_platform_data stingray_touch_data_p1p2 = {
|
||||
|
||||
.flags = (QTOUCH_USE_MULTITOUCH |
|
||||
QTOUCH_CFG_BACKUPNV),
|
||||
.irqflags = (IRQF_TRIGGER_LOW),
|
||||
.abs_min_x = 0,
|
||||
.abs_max_x = 4095,
|
||||
.abs_min_y = 0,
|
||||
.abs_max_y = 4095,
|
||||
.abs_min_p = 0,
|
||||
.abs_max_p = 255,
|
||||
.abs_min_w = 0,
|
||||
.abs_max_w = 15,
|
||||
.x_delta = 400,
|
||||
.y_delta = 250,
|
||||
.nv_checksum = 0x2c30,
|
||||
.fuzz_x = 0,
|
||||
.fuzz_y = 0,
|
||||
.fuzz_p = 2,
|
||||
.fuzz_w = 2,
|
||||
.boot_i2c_addr = XMEGAT_BL_I2C_ADDR,
|
||||
.hw_reset = stingray_touch_reset,
|
||||
.key_array = {
|
||||
.cfg = NULL,
|
||||
.keys = NULL,
|
||||
.num_keys = 0,
|
||||
},
|
||||
.touch_fw_cfg = {
|
||||
.image = mxt1386_v8_aa,
|
||||
.size = sizeof(mxt1386_v8_aa),
|
||||
.family_id = 0xA0,
|
||||
.variant_id = 0x00,
|
||||
.fw_version = 0x08,
|
||||
.fw_build = 0xAA,
|
||||
.boot_version = 0x20,
|
||||
.base_fw_version = 0x00,
|
||||
},
|
||||
.power_cfg = {
|
||||
.idle_acq_int = 0xff,
|
||||
.active_acq_int = 0xff,
|
||||
.active_idle_to = 0x00,
|
||||
},
|
||||
.acquire_cfg = {
|
||||
.charge_time = 0x0A,
|
||||
.atouch_drift = 0x14,
|
||||
.touch_drift = 0x14,
|
||||
.drift_susp = 0x14,
|
||||
.touch_autocal = 0x00,
|
||||
.sync = 0,
|
||||
.atch_cal_suspend_time = 0,
|
||||
.atch_cal_suspend_thres = 0,
|
||||
},
|
||||
.multi_touch_cfg = {
|
||||
.ctrl = 0x83,
|
||||
.x_origin = 0,
|
||||
.y_origin = 0,
|
||||
.x_size = 0x21,
|
||||
.y_size = 0x2a,
|
||||
.aks_cfg = 0,
|
||||
.burst_len = 0x20,
|
||||
.tch_det_thr = 0x2d,
|
||||
.tch_det_int = 0x3,
|
||||
.orient = 1,
|
||||
.mrg_to = 0x00,
|
||||
.mov_hyst_init = 0x05,
|
||||
.mov_hyst_next = 0x02,
|
||||
.mov_filter = 0x20,
|
||||
.num_touch = 0x05,
|
||||
.merge_hyst = 0x0A,
|
||||
.merge_thresh = 0x0A,
|
||||
.amp_hyst = 0x0A,
|
||||
.x_res = 0x0FFF,
|
||||
.y_res = 0x0FFF,
|
||||
.x_low_clip = 0x00,
|
||||
.x_high_clip = 0x00,
|
||||
.y_low_clip = 0x00,
|
||||
.y_high_clip = 0x00,
|
||||
.x_edge_ctrl = 0,
|
||||
.x_edge_dist = 0,
|
||||
.y_edge_ctrl = 0,
|
||||
.y_edge_dist = 0,
|
||||
.jump_limit = 0,
|
||||
},
|
||||
.linear_tbl_cfg = {
|
||||
.ctrl = 0x00,
|
||||
.x_offset = 0x0000,
|
||||
.x_segment = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
},
|
||||
.y_offset = 0x0000,
|
||||
.y_segment = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
},
|
||||
},
|
||||
.comms_config_cfg = {
|
||||
.ctrl = 0,
|
||||
.command = 0,
|
||||
},
|
||||
.gpio_pwm_cfg = {
|
||||
.ctrl = 0,
|
||||
.report_mask = 0,
|
||||
.pin_direction = 0,
|
||||
.internal_pullup = 0,
|
||||
.output_value = 0,
|
||||
.wake_on_change = 0,
|
||||
.pwm_enable = 0,
|
||||
.pwm_period = 0,
|
||||
.duty_cycle_0 = 0,
|
||||
.duty_cycle_1 = 0,
|
||||
.duty_cycle_2 = 0,
|
||||
.duty_cycle_3 = 0,
|
||||
.trigger_0 = 0,
|
||||
.trigger_1 = 0,
|
||||
.trigger_2 = 0,
|
||||
.trigger_3 = 0,
|
||||
},
|
||||
.grip_suppression_cfg = {
|
||||
.ctrl = 0x00,
|
||||
.xlogrip = 0x2F,
|
||||
.xhigrip = 0x2F,
|
||||
.ylogrip = 0x2F,
|
||||
.yhigrip = 0x2F,
|
||||
.maxtchs = 0x00,
|
||||
.reserve0 = 0x00,
|
||||
.szthr1 = 0x00,
|
||||
.szthr2 = 0x00,
|
||||
.shpthr1 = 0x00,
|
||||
.shpthr2 = 0x00,
|
||||
.supextto = 0x00,
|
||||
},
|
||||
.noise_suppression_cfg = {
|
||||
.ctrl = 0,
|
||||
.outlier_filter_len = 0,
|
||||
.reserve0 = 0,
|
||||
.gcaf_upper_limit = 0,
|
||||
.gcaf_lower_limit = 0,
|
||||
.gcaf_low_count = 0,
|
||||
.noise_threshold = 0,
|
||||
.reserve1 = 0,
|
||||
.freq_hop_scale = 0,
|
||||
.burst_freq_0 = 0,
|
||||
.burst_freq_1 = 0x0A,
|
||||
.burst_freq_2 = 0x0F,
|
||||
.burst_freq_3 = 0x14,
|
||||
.burst_freq_4 = 0x19,
|
||||
.idle_gcaf_valid = 0,
|
||||
},
|
||||
.touch_proximity_cfg = {
|
||||
.ctrl = 0,
|
||||
.x_origin = 0,
|
||||
.y_origin = 0,
|
||||
.x_size = 0,
|
||||
.y_size = 0,
|
||||
.reserve0 = 0,
|
||||
.blen = 0,
|
||||
.tch_thresh = 0,
|
||||
.tch_detect_int = 0,
|
||||
.average = 0,
|
||||
.move_null_rate = 0,
|
||||
.move_det_tresh = 0,
|
||||
},
|
||||
.one_touch_gesture_proc_cfg = {
|
||||
.ctrl = 0,
|
||||
.reserve0 = 0,
|
||||
.gesture_enable = 0,
|
||||
.pres_proc = 0,
|
||||
.tap_time_out = 0,
|
||||
.flick_time_out = 0,
|
||||
.drag_time_out = 0,
|
||||
.short_press_time_out = 0,
|
||||
.long_press_time_out = 0,
|
||||
.repeat_press_time_out = 0,
|
||||
.flick_threshold = 0,
|
||||
.drag_threshold = 0,
|
||||
.tap_threshold = 0,
|
||||
.throw_threshold = 0,
|
||||
},
|
||||
.self_test_cfg = {
|
||||
.ctrl = 0,
|
||||
.command = 0,
|
||||
.high_signal_limit_0 = 0,
|
||||
.low_signal_limit_0 = 0,
|
||||
.high_signal_limit_1 = 0,
|
||||
.low_signal_limit_1 = 0,
|
||||
.high_signal_limit_2 = 0,
|
||||
.low_signal_limit_2 = 0,
|
||||
},
|
||||
.two_touch_gesture_proc_cfg = {
|
||||
.ctrl = 0,
|
||||
.reserved0 = 0,
|
||||
.reserved1 = 0,
|
||||
.gesture_enable = 0,
|
||||
.rotate_threshold = 0,
|
||||
.zoom_threshold = 0,
|
||||
},
|
||||
.cte_config_cfg = {
|
||||
.ctrl = 0,
|
||||
.command = 0,
|
||||
.mode = 0,
|
||||
.idle_gcaf_depth = 16,
|
||||
.active_gcaf_depth = 16,
|
||||
.voltage = 60,
|
||||
},
|
||||
.noise1_suppression_cfg = {
|
||||
.ctrl = 0x01,
|
||||
.version = 0x01,
|
||||
.atch_thr = 0x64,
|
||||
.duty_cycle = 0x08,
|
||||
.drift_thr = 0x00,
|
||||
.clamp_thr = 0x00,
|
||||
.diff_thr = 0x00,
|
||||
.adjustment = 0x00,
|
||||
.average = 0x0000,
|
||||
.temp = 0x00,
|
||||
.offset = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
},
|
||||
.bad_chan = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00
|
||||
},
|
||||
.x_short = 0x00,
|
||||
},
|
||||
.vkeys = {
|
||||
.count = 0,
|
||||
.keys = NULL,
|
||||
},
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata stingray_i2c_bus1_touch_info_p0[] = {
|
||||
static struct i2c_board_info __initdata stingray_i2c_bus1_touch_info[] = {
|
||||
{
|
||||
I2C_BOARD_INFO(QTOUCH_TS_NAME, 0x5B),
|
||||
.platform_data = &stingray_touch_data_p0,
|
||||
.irq = TEGRA_GPIO_TO_IRQ(STINGRAY_TOUCH_INT_N_GPIO),
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
int __init stingray_touch_init(void)
|
||||
{
|
||||
tegra_gpio_enable(STINGRAY_TOUCH_INT_N_GPIO);
|
||||
@@ -589,10 +835,15 @@ int __init stingray_touch_init(void)
|
||||
gpio_request(STINGRAY_TOUCH_RESET_N_GPIO, "touch_reset");
|
||||
gpio_direction_output(STINGRAY_TOUCH_RESET_N_GPIO, 1);
|
||||
|
||||
if (stingray_revision() == STINGRAY_REVISION_P0)
|
||||
i2c_register_board_info(0, stingray_i2c_bus1_touch_info_p0, 1);
|
||||
if ((stingray_revision() == STINGRAY_REVISION_P1) ||
|
||||
(stingray_revision() == STINGRAY_REVISION_P2))
|
||||
stingray_i2c_bus1_touch_info[0].platform_data = &stingray_touch_data_p1p2;
|
||||
else if (stingray_revision() == STINGRAY_REVISION_P0)
|
||||
stingray_i2c_bus1_touch_info[0].platform_data = &stingray_touch_data_p0;
|
||||
else
|
||||
i2c_register_board_info(0, stingray_i2c_bus1_touch_info_m1, 1);
|
||||
stingray_i2c_bus1_touch_info[0].platform_data = &stingray_touch_data_m1;
|
||||
|
||||
i2c_register_board_info(0, stingray_i2c_bus1_touch_info, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user