да - я там ссылку на дополнительные объяснения пропустил когда смотрел раньше, так что все есть для нормальной работы - вас будет интересовать режим +90 degree либо -90 degree, зависит от того как удобней экран расположен Собственно в драйвере надо всего лишь - правильно проинициализировать lcd а потом всего лишь заполнять весь экран периодически тем что ядро заполняет :)
Спасибо sasa за драйвер.
У меня был тоже дисплей от nokia 6100, правда с контроллером от epson. Вобщем то переделки минимальные, поменять инициализацию, коды команд и ножку reset на gpio повесить,
вредный контроллер, пока не помахаешь ножкой ресета перед запуском не хочет ничего делать.
reset - это вообще не проблема, lph88 очень чуствителен к cs - у него програмное управление команда/данные, если бы не не это можно было перевести spi в 16 битный режим и свести затраты процессора к минимуму, практически к нулю. атмеловский драйвер spi не поддерживает динамическое переключение количество бит на слово - оно просто не реализовано, хотя там буквально пару строк дописать, это вообщето предусмотрено линуксовым фреймворком. Думаю все же займусь этим когда будет время - напишу правильный драйвер для lph88 без атмеловского драйвера spi - сделаю напрямую работу с железом или мб допишу поддержку динамического переключения длины слова, в голове уже все готово :)
Вот немного обновленная версия драйвера - теперь работает фрэймбуферная консоль, для spi создается буфер приема (чтобы не править атмеловский драйвер spi) и поправлена старая ошибка которую недавно заметил - трэд останавливался после того как освобождена память при отключении драйвера.
А как драйвер компилировать куда кидать и подгружать? как вывести консоль на него(она дублируется с UART или как?)
Вскором времени попробую переписать драйвер под себя.
Огромное спасибо sasa.Не моглибы протестить как видео воспроизводит и чуток на видео поснимать.Жутко руки чешутся повторить сие творение)
Я тут выкладывал патч - он добавляет в меню menuconfig раздел для lph88 и добавляет запись в board-... для spi. Остается только галочки поставить при компиляции ядра.
Нужно в ядре выбрать в разделе
Device Drivers ---> Graphics support ---> Console display driver support --->Framebuffer Console support и там же Select compiled-in fonts и в нем какой нужен шрифт - я использую самый маленький Mini 4x6 font. Потом в /etc/inittab должен быть запущен getty на tty, например такая строчка должна быть
# Set up a couple of getty's
tty1::respawn:/sbin/getty 38400 tty1 linux
и это естественно не мешает иметь консоль и на uart одновренно - у меня обе включены.
если у вас ls020 - то лучше не повторять а сделать намного лучше :) там очень легко сделать spi в 16-ти битном режиме. Я вчера занимался заточкой атмеовского драйвера spi чтобы он на лету переключал 8-16 бит длину слова, не до конца работает, но то что это необходимо сделать - ясно как день. В таком виде как у меня сейчас драйвер сильно грузит процессор - доходит до 10% и это очень плохо, после заточки драйвера загрузка не превышала 1%. Так что оно стоит того. В треде убирается бесполезный цикл для перекидывания байтов, фреймбуфер создается когерентный с дма (может иметь одновременный доступ и дма и процессор) и spi перекидывает напрямую буфер - загрузка процессора минимальная. Если бы не оверхед кода в атмеловских драйверах - практически не должен занимать процессорное время. Я выложу попоздней пример как у меня сделан пробный драйвер чтобы легче было написать для ls020.
я как давно еще с нокией 6100 пытался - не смог заставить mplayer работать с таким нестандартным разрешением хотя и видео переконверчивал в подходящий формат.
1.Разрешение здесь чуть более "стандартное")))
2.Насчет 16 битного режима.Я никогода не работал с портами ввода вывода на данном процессоре через драйвера.Пока что довольно ясно представляю как переделать вышепреведенный драйвер для ls020.Если вас не затруднит не могли бы выложить примерные наброски для 16 битного режима
3.Патч вроде нашел.Думаю не буду менять lph88 на ls020.только код другой подсуну.а то новечек буду большую часть времени тыкаться что где то не подправил
Вот рабочая версия с динамическим переключением 8-16 бит. Если бы в атмеловских драйверов была реализована эта ф-ция (а это стандартная ф-ция linux фреймворка spi) он бы работал без правки атмеловских драйверов (он работает с моими правками но глюкаво - есть артефакты и картинка дрожжит :)
На ls020 можно сразу сделать spi->bits_per_word = 16; и не нужна поддержка вот этого x->bits_per_word = 16;
Начал писать новый драйвер без линуксового spi фреймворка - драйвер сам будет управлять spi. Собственно чего я так активировался :) - в промэлектронике есть lcd панелеи с тачскрином, 320х240 с контроллером работающим по spi, стоят от 500 руб. А это уже очень интересно :) Я посмотрел даташиты на контроллеры ихние - они практически один в один с моим lph88 - совсем небольшая разница. Если все оптимизировать - то будет вполне юзабельный экран да еще к тачскрину драйвер написать - вообще крастоа :) Теоретически скорости spi должно хватать, а без кривых атмеловских драйверов можно достич почти теории :)