Подключаю тач на дисплее NHD-5.0-800480TF-ATXI#-CTP, контроллер тача FT5x06. Работает по i2c шине. Утилитами i2ctools видется по адреcу 0x38, опрашивается, все ок.
Плата SK-iMX53-oem + SK-iMX53-MB. ядро китовое.
Нагуглились драйвера http://gnu.su/Qy и http://gnu.su/Q2 Пытаюсь сейчас завести второй (edt-ft5x06) , не пойму, что добавить в файл борды, подскажите как инициализировать драйвер на i2c.
Добавлял структуру:
в какой-то момент телепатом быть надоедает..
вы в схему то заглядывали?
в курсе, что у этого АРМа 3 шины i2c?
небось к разъему Х1 прицепили - так часики и аудиокодек на другой шинке висят, не?
чтобы понять, есть тачконтроллер на шине и на какой, надо:
дать команду ls /dev/i2c*
запомнить номера шинок(и)
потом воспользоваться утилитой i2cdetect -y N (где N - это номер существующей шины)
и если в дампе устройств увидится заветный номер 0x38, то тогда и только тогда запускать драйвер.. прописав устройство на правильную шину..
День добрый, Jury093!
Да я в курсе, что там три шины, дисплей подключил как раз к X1, а i2c контроллера тача напаяны на X3, все устройства системы подключенные по i2c(RTC,звук, videoADC-Plug(adv7180) и тач. соответственно) в итоге висят на одной шине, i2ctoolsaми все детектится, и даже корректно высылыает количество нажатий на тач и т.п.
Вопрос в том, как инициализировать правильно драйвер в системе.
Да кстати, утилита i2ctool по всем адресам устройств кроме тача пишет UU, а по адресу тача просто 0x38...
ну допустим, убедили по железу..
далее, в исходниках драйвера находите, как он зовется в системе
это же имя прописываете в описание устройств файла платы..
далее в тех же исходниках драйвера находите функцию пробы инита железа и структур - ключевое слово для поиска _probe
там в са-а-мом начале функции прописываете отладочный принтк printk("*** touch driver probe\n");
если в логе ядра будет эта строка, то можно копать - чего не хватает драйверу
если строки нет, а значит ядро не увидело структуру в файле борды - копать там на предмет правильности написания имени драйвера..
все честно - драйвер занял устройство и утилиты получают отлуп по доступу..
включите отладку в ядре для i2c
Device Drivers --->
<*> I2C support --->
[*] I2C Core debugging messages
[*] I2C Algorithm debugging messages
[*] I2C Bus debugging messages
не помню точно - нужно ли добавить debug в строке загрузки ядра - добавьте, хуже не будет. По логу будет более понятно что происходит, инициализируется ли вообще ваш драйвер.
потом как с драйвером разберетесь - проще добавить 4-ю софтовую шину на GPIO вместо spi-gpio для штатного тачскрина чтобы все на одном разъеме было.
PS кстати драйвер который вы пытаете есть в ванильном ядре 3.6.х
=) да, драйвер изрядно приходится перелопачивать, делаю вывод пока одной точки нажатия. Вроде с /dev/input/event* получилось разобраться.
ts_print_raw координаты выводит