Захотелось мне странного - поднять этот интерфейс.
Появилась пара экранчиков, соответственно почему бы и нет. Пристальное изучение схемы на плату, даташита на камень и PG на него же привело в сильное уныние..
Братья-китайцы скрестили пины SPI и _2_ шин I2C, т.о. мои любимые часики отсыхают при таком раскладе..
Более того (камешек к Павлу) на гребенку выведена масса контактов от мультимонстра (тачпад, GPIO) и всего 8 от АРМа, из которых 4 это уарты.
В общем, путем пробрасывания пары проводков и отрывания I2C я изобразил подобие аппаратного SPI. Подсветку (~6в) пока взял от драйвера уарта.
Жизнеспособность физики соединений была успешно проверена примитивной прогой - экран интится байтами с консоли. :)
Полез в ядро смотреть как поднимается SPI, в трактовке китайцев толи USI толи SSP..
Перелопатил хидеры и стартапы для платы, как говорится "НИколай Харитон Ульяна..".. Никакими силами не поднимается, не USI (в логе видно что успешно стартует, но не в девайсах и не в структурах /sys /proc его не видно), не bitbanding spi, которому подавай структуры а-ля в атмеловских бордах..
В общем, если есть идею, то прошу помочь ;)
Конечная цель какая - полноценный spi драйвер для мнука или прикрутить lcd ?
Если второе так я на атмеле наоборот постарался избавиться от линуксового драйвера spi - он наоборот только мешает :)
Конечная цель - развлечься (с пользой) :)
Вчера день положил, припаивая мгтф к разъему 0.5 и пристраивая эту радость к МНУКу. Как водится, перепутал проводки и 6в для подсветки засадил на CLK индикатора, как ни странно выжил (индикатор). Уже к вечеру оно стало интиться..
Сегодня лопатил ядро, драйвер то у Нувотона есть - аппаратный и битовый. Да вот в начальных настройках платы есть только упоминание о USI_IRQ. Возможно сам драйвер рабочий, может и писать не придется - проблема в его запуске.
Схожая фигня была в процессе прикручивания И2Ц, но там все получилось. А вот тут пока буксую..
Рассчитывал взять это хозяйство в командировку в облагороженном виде - придется тащить с монтажем на мгтф затермопистолетив :)
В доках ядра достаточно хорошо spi-подсистема описана. Для примера можно атмеловский борд-файл взять за основу. Если кратко, в бордфайле нужно
1 Объявить (продекларировать) контроллер spi как драйвер платформы и если нужно закрепить за ним данные для инициализации и правильной работы - типа адреса io и тд.
2 Продекларировать устройства которые будут висеть на этом контроллере - заполнить массив специальных структур, там совсем минимаьное кол-во данных, типа номер канала, скорость и чипселект и главное алиас (имя) модуля который будет использоваться для этого устройства.
После инициализации контроллера но на каком точно этапе я не знаю, массив просматривается и вызываются ф-ции _probe тех модулей которые записаны в этих структурах.
Спасибо! Когда все изложено доступно и грамотно , то намного проще разбираться в последовательности действий.
На той неделе попробую позапускать. Неспеша и не торопясь :)
долбанный SPI!!! и китайцы такие же! надоело делать насечки для напильника для обточки "матерой глыбы"! >8-/
че то где-то я упускаю.. эти кредели навертели там хрени всякой USI, SPI nuc950 w90p950, бесконечно меняют имена в хидерах и структурах.. мля.. нет чтоб сделать "по людски" как у Atmel. В UG 2 куцых странички о USI.
Чего в пазле не хватает? В файле борды прописал такое:
вот что мелькает в логах:
и все.. ничего полезного более не происходит. в /DEV ничего не создается
прерывание для USI не занимается..
появляется /sys/bus/spi/driver/pcf8833