Для подключения uDisp в режиме dot panel tft требует инициализации по SPI интерфейсу; попробовал существующий драйвер, на дисплей пошли данные он даже не взмаргивал.
Сейчас я изменил существующий драйвер, добавил туда инициализацию дисплея; пока оставил режим 24bpp с упаковкой в 8:8:8, соответственно получил неверную картинку по цветам, но пингвина уже видно.
Для меня осталось разобраться, как настроить драйвер в режим 5:6:5 16bpp. Из документации на процессор это не очевидно, а fb драйвер "размазан" по 5 файлам.
Пока подтверждается что :
1. Маркировка на обратной стороне uDisp выполнена неверно, биты указы "зеркально"
2. Документация на дисплей не соответствует документации на контроллер дисплея и тоже неверна, нужно руководствоваться именно документацией на контроллер.
Если брать старшие 6 бит, то вроде все должно нормально работать.
Можно бит DOTCLK_POL в регистре HW_LCDIF_VDCTRL0 покрутить. Если картинка хорошая, но цвета перепутаны (типа пингвин с синими лапами), то с помощью CSC_DATA_SWIZZLE в HW_LCDIF_CTRL можно байты в DWORD'е в нужном порядке перетасовать.
У контроллера экрана такой режим вроде не предусмотрен. Либо два раза по 9 бит, либо три по 6.
Но если надо, я менял в setup_dotclk_panel
на
и в структуре stmp3xxx_platform_fb_entry для своего контроллера указал
Опять не в тему - оказывается их немало таких продается :) Например на контроллерах NT39016D и HX8238-D есть 8 bit serial rgb интерфейс, например TFT MI0350CT-3 - 3,5 дюйма с тачпанелью, стоит около 1 тыр в розницу.
1. Появился пингвин.
1.1 Синелапый на глаз - неправильная упаковка RGB. Буду править настройкой инициализации дисплея;
1.2 Cправа сверху, зеркальный - начало координат, правится настройкой дисплея;
1.3 Не появилось приглашение консоли = не очень и хотелось, можно поправить в rootfs
cat /bin/busybox >> /dev/fb0 - на дисплее мусор, что хорошо, был бы файл в формате упаковки дисплея, получил бы картинку. Вообще на LPC2478 много развлекался с упаковкой, после этого понял, что нужно пользовать стандартные библиотеки.
Вообще контроллер в imx поражает количеством возможных настроек, ему в принципе на формат упаковки "все равно" можно байт отрезать, сдвинуть, перетасовать, добавить лишнее, вывести в 8 или 16. В общем в этом и была основная проблема. Если разобрать пример с сырцов с платы, то там 8 бит шины, 8 бит word lenght, упаковка 0x0F, но при этом в настройке консоли x=278 y=420 bpp=24. При том, что форматы посылки учитываются как при записи команд, так и при записи байтов. Вывод : можно подключить все, что может выводить, практически не важно какой дисплей.