//--------------------------------------------------------------------------------------------
// 作者:jeffery_zhou(jeffery_zhou@urbetter.com)
// 论坛ID:Android210
// 版权:Android210
// 平台:友坚Android210开发板
// 发布日期:2012-11-20
// 最后修改:2012-11-20
// 注意事项:未经作者同意,商业网站不能转载,更不得在转载的时候擅自修改、删除文章的任何部分
//----------------------------------------------------------------------------------------------
android210 内核支持,配置内核支持;make menuconfig
编译内核 :make
android210开发板android4.0的电阻屏驱动注意的事项:
1.数据上报的时候要使用多点方式进行上报:
input_report_abs(ts->dev, ABS_MT_TOUCH_MAJOR,500);
input_report_abs(ts->dev, ABS_MT_POSITION_X, ts->xp);
input_report_abs(ts->dev, ABS_MT_POSITION_Y, ts->yp );
input_report_abs(ts->dev, ABS_MT_WIDTH_MAJOR, 1);
input_report_abs(ts->dev, ABS_MT_PRESSURE, 255);
input_report_key(ts->dev, BTN_TOUCH, 1);
input_mt_sync(ts->dev);
input_sync(ts->dev);
2.要在android4.0的系统起来后system->usr->idc目录下面创建文件名为:
S5P_TouchScreen.idc 注意 xxxxxx.idc xxxxxx代表你驱动的名字。
idc文件的内容为:
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Input Device Calibration File for the Crespo touch screen.
#
# These calibration values are derived from empirical measurements
# and may not be appropriate for use with other touch screens.
# Refer to the input device calibration documentation for more details.
#
# Input Device Calibration File for the Crespo touch screen.
#
# These calibration values are derived from empirical measurements
# and may not be appropriate for use with other touch screens.
# Refer to the input device calibration documentation for more details.
#
# Basic Parameters
touch.deviceType = touchScreen
touch.orientationAware = 1
touch.deviceType = touchScreen
touch.orientationAware = 1
# Touch Size
touch.touchSize.calibration = pressure
touch.touchSize.calibration = pressure
# Tool Size
# Driver reports tool size as an area measurement.
#
# Based on empirical measurements, we estimate the size of the tool
# using size = sqrt(22 * rawToolArea + 0) * 9.2 + 0.
#touch.toolSize.calibration = area
#touch.toolSize.areaScale = 22
#touch.toolSize.areaBias = 0
touch.toolSize.calibration = linera
touch.toolSize.linearScale = 10
touch.toolSize.linearBias = 160
touch.toolSize.isSummed = 1
# Driver reports tool size as an area measurement.
#
# Based on empirical measurements, we estimate the size of the tool
# using size = sqrt(22 * rawToolArea + 0) * 9.2 + 0.
#touch.toolSize.calibration = area
#touch.toolSize.areaScale = 22
#touch.toolSize.areaBias = 0
touch.toolSize.calibration = linera
touch.toolSize.linearScale = 10
touch.toolSize.linearBias = 160
touch.toolSize.isSummed = 1
# Pressure
# Driver reports signal strength as pressure.
#
# A normal thumb touch typically registers about 100 signal strength
# units although we don't expect these values to be accurate.
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.8
# Driver reports signal strength as pressure.
#
# A normal thumb touch typically registers about 100 signal strength
# units although we don't expect these values to be accurate.
touch.pressure.calibration = amplitude
touch.pressure.source = default
touch.pressure.scale = 0.8
# Size
touch.size.scale = 5
touch.size.calibration = normalized
touch.size.scale = 5
touch.size.calibration = normalized
# Orientation
touch.orientation.calibration = none
touch.orientation.calibration = none