Смотрю голодными глазами на фразу "отличная работа! все как обычно - просто и доходчиво расписано."
..."просто" им, ээх
Прошу помощи хотя бы в кратце прояснить детали этих манипуляций. Задача - на iMX233 пообщаться в внешней микросхемой по spi. Записать в ее регистры, считать из ее регистров, среагировать на внешнее пришедшее от нее прерывание аналогично pen-irq.
Пост от Александра понятен только на первые 50% - знаю и понимаю куда прописывать его первую половину, но вот начиная с слов "Для примера - тачскрин описан в таблице ведомых устройств таким образом:" идет темный лес, помогите плз вникнуть :)
Чем является вторая часть поста - это выдержки из некого самодельного драйвера, правка исходников tslib или правка исходников ядра?
И как мне лучше поступить в моей задаче если нужно общаться не с контроллером тачскрина а с другой микросхемой? Тревожит еще такой вопрос - смогу ли я хотя бы 100кбит чепрез bitbang вытащить и насколько это загрузит проц?
в первой половине описывается, как объяснить линуксу о существование интерфейса SPI - делаете тоже самое с поправкой на свои пины
во второй половине линуксу объясняется о существование некоего чипа на определенном интерфейсе. далее запускается драйвер чипа и если есть совпадение имен то происходит вызов функции probe в драйвере, где производятся необходимые манипуляции с чипом и линуксом. тут, помимо существования драйвера под вашу микросхему надо менять имена и параметры в похожей структуре:
PS если требуется серьезная скорость доступа к "другой микросхеме", то имеет смысл терзать запуск штатного SPI-контроллера iMX
Штатный SPI в iMX - звучит очень заманчиво, но как я понимаю в iMX233 их всего два, и на плате от Павла первый занят NAND/SD, второй - идет на KSZ8851. Что-то проглядел?
О, не знал, спасибо за ценную информацию! Правда посмотрел повнимательней на плату - подпаяться к нужным ногам KSZ практически нереально. Ушел учиться писать модули ядра
Завел на imx233 на выходной гребенке spi_gpio битбангом, на нем поднял драйвер spidev для работы с spi как с char-device'ом.
Работает, но напрягает один момент - как ни кручу параметр max_speed_hz и в драйвере и в настройках порта - по логическому анализатору физически на выходе всегда одна и та же скорость примерно в 1.2МГц
Отсюда вопрос прежде всего к Александру (aka sasamy) - то что скорость на выходе выставлена 100кГц - это вживую проверялось? Не могу понять в чем дело, видимо опыта работы с подобными драйверами совсесм мало
"Была у меня таможня, были контрабандисты" :) Сейчас у меня из приборов только сурер-тестер M-838 - я лично ничего не измерял, но тачскрин работает справно.
Аналогично - искал достойный способ без напрягов прикрутить тачскрин и нашел.
Да ты просто нереально крут!!!
Я в командировке неделю долбался с проклятым SPI. И убалтывал и уговаривал и обманывал - однофигственно конфетти выдавал :-/
Путем фейковых пинов я поднял интерфейс и даже проходил вызов драйвера и в системе оно появлялось - разумеется без физического обмена. Застрял (неасилил) куда проваливались вызовы что-то-там-spi-tail, если бы отловил то прописал бы свое пиномахательство..
О многогомудрый - раскрой же секрет КАК ты смог это сделать?!?! Под линух или QNX? Объясни мне - недотепе, как прописывать эти долбанные пины.
Вместе пободаемся с прерываниями :)
Прикинь, как Саше плохо - бодаться и трахаться не с чем - ску-у-чно :-P