[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:
makarand.karvekar 2010-07-01 16:54:59 -05:00 committed by Colin Cross
parent 84acce0710
commit 42e58ebeab

View File

@ -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;
}