Доброго времени суток!
Коллеги, если вдруг кому-нибудь окажется интересно, предлагаю вашему вниманию патч ядра Linux 3.12.17 для Тион-Про270.
Работает следующее железо:
- CPU & RAM.
- Flash, включая поддержку MTD.
- FFUART, BTUART, STUART (с учетом хардварного бага в использовании аппаратного управления потоком BTUART).
- DM9000 ethernet controller.
- I2C bus.
- M41T00 RTC.
- SD/MMC.
- USB в одной из следующих конфигураций:
- USB Host 1;
- Usb Host 1 + Usb Host 2 (включается в defconfig);
- Usb Host 1 + Usb Device (без режима OTG).
- AC97.
- UCB1400 - аудиоинтерфейс и точскрин (Tion-Pro270 rev.1).
- PWM backlight.
- Управление питанием LCD на GPIO 44 (Tion-Pro270 rev.2).
- Framebuffer в 18-битном режиме и VGA DAC.
- LEDs на GPIO 54 и 107 (Tion-Pro270 rev.2).
- PWMs 1, 2, 3, в том числе с управлением из userspace через SYSFS.
- Кнопки на GPIO 93, 94, 96 (PXA direct keyboard interface; в defconfig отключено).
- Аппаратный watchdog.
Дополнительная функциональность:
- MAC-адрес для контроллера ethernet DM9000 может передаваться в ядро из U-Boot одним из 2 способов:
- Через serial tag из переменной U-Boot ethaddr (аналогично ядру от "Завода электрооборудования").
- Через параметр ядра tion270_ether_addr (имеет приоритет над serial tag).
- PWM backlight включается с небольшой задержкой после подачи питания на LCD, управляемой GPIO 44, чтобы избежать мигания экрана (аналогично ядру от "Завода электрооборудования", но реализовано с использованием delayed work). Время задержки задается параметром ядра tion270_backlight_power_on_delay, который может как указываться в параметрах запуска ядра, так и быть изменен в рантайме через SYSFS.
- VGA DAC можно отключить параметром ядра tion270_vga_dac_enable.
- Сконфигурировано несколько предопределенных видеорежимов: 320x200, 640x480 и 800x600. Нужный видеорежим задается параметром ядра tion270_video_mode. Также в этом параметре можно указать "none", чтобы оставить драйвер фреймбуфера неинициализированным и увеличить объем доступной для использования оперативной памяти.
Следующая функциональность была реализована, может быть скомпилирована, но
ее работоспособность не проверялась:
- Power I2C bus.
- SPI.
- CAN (MCP2515 controller).
Не реализовано:
- Поддержка WM97xx - актуально для Tion-Pro270 rev.2. Предположительно, трудоемкость реализации небольшая.
- Поддержка PCMCIA - актуально для Tion270.
- Функциональность, специфичная для Orion270.
Исходник поддержки платформы разделен на 2 части: tion270lib.c - библиотека процедур инициализации аппаратуры, и tion270.c - вызывающий код плюс процедуры обработки параметров tion270_video_mode и tion270_vga_dac_enable, инициализации кнопок и контроллера CAN.
Набор инициализируемой аппаратуры может быть изменен через menuconfig в разделе System Type > Intel PXA2xx/PXA3xx Implementations > ZEO Tion270/Tion-Pro270.
Патч тестировался на Tion-Pro270 rev.1. LEDs и управление питанием LCD тестировалось путем сборки специальной версии, в которой использовались доступные GPIO. Работа ядра проверялась на КФС, собранной Buildroot 2014.02.