Я портирую Android Gingerbread на свою пользовательскую плату (с процессором Samsung S5PV210).У меня сенсорный экран с чипом ESC7000.Я нашел драйвер в /kernel/drivers/input/touchscreen/usbtouchscreen.c.Это почти сработало, но битовый диапазон, порядок и порядок следования байтов в пакетах USB были плохими.Я изменил код, чтобы получить правильную позицию RAW (использовал printk на консоли, чтобы увидеть его), и теперь он почти работает.Мои данные варьируются от xmin, ymin до xmax, ymax от 420 430 до 3650, 3650, в то время как в теории это должно быть от 0,0 до 4095,4095.Это неудивительно, поскольку емкостный сенсор требует калибровки.Это простая калибровка, например, y = mx + b для каждой оси (простая линейная калибровка).Я посмотрел вокруг в драйверах, и я не могу понять, где обрабатывается калибровка.Он должен быть программируемым, так как он зависит от устройства и должен быть откалиброван для каждого устройства один раз при производстве системы.Я хочу сделать это чисто, как и другие устройства Android.Кто-нибудь знает, где хранится информация о калибровке в системе Android?Где код, выполняющий расчет компенсации.Любой поиск в Интернете дает информацию о людях, желающих откалибровать свой телефон.Так что для меня это бесполезно.