Драйвер исправить не проблема - буквально одна строчка, вопрос в другом - поддерживает ли эта панель 18 bit интерфейс ? Я снаскоку не смог найти на нее даташит.
Да - я это не учел :) если есть такая возможность тогда просто сдвигаете на 2 бита вправо каждый байт (DATA_SHIFT_DIR & SHIFT_NUM_BITS) + LCD_DATABUS_WIDTH устанавливаете 18_BIT = 0x2 18-bit data bus mode.
и все :)
проблема другого плана оказалась
фрисскейловцы учли запуск драйвера на 128 QFP и в режиме RGB 6.6.6 видно с файла
mx23evk_pins.c , но сигналы gpio (нанда ) молчат :-(((
См. i.MX23 Applications Processor
Reference Manual
Table 36-2. 128-Pin LQFP Pin Definitions by Pin Name
Там написано что часть пинов gpmi можно использовать для LCD - колонка Description 2. Нужно соотвествующие пины переключить, проще всего это сделать в файле
arch/arm/mach-mx23/mx23evk_pins.c
там где прописаны пины nand, например убрать условие для препроцессора:
и так даллее для LCD_D8 - LCD_D17 в соотвествии с таблицей даташита. Далее - есть там такая универсальная ф-ция для dotclock панелей setup_dotclk_panel, находится тут:
arch/arm/mach-mx23/include/mach/lcdif.h
там нужно исправить содержимое регистров
после __raw_writel(BM_LCDIF_CTRL_DATA_SHIFT_DIR,
REGS_LCDIF_BASE + HW_LCDIF_CTRL_CLR);
Забыл совсем - возможно сдвигать на 2 бита вправо принудительно ненужно (вернее скорей всего не нужно), судя по даташиту при несовпадении WORD_LENGTH и DATABUS_WIDTH должно сработать автоматическое преобразование (CSC), нужно экспериментировать и проверять.См стр 942
В итоге нужно только переопределить ф-цию пинов gpmi и указать ширину шины данных LCD 18 бит.