Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Матричная клавиатура, какие "compatible" могут быть использлваны в dts файле
dolmatov
Добавлено 17.07.2016 00:08 Редактировалось 17.07.2016 00:21
0
Сообщение: 1
dolmatov
0

Пункты: 1812
Регистрация: 03.07.2016
SK-ATSAMA5D3. в файле st91-sama5d3_sk_800_480.dts cконфигурировал (я правильно выразился?) матричную клавиатуру в соответствии с подсмотренным примером. В нем содержаттся строки:

Код
compatible = "gpio-matrix-keypad";
debounce-delay-ms = <5>;
col-scan-delay-us = <2>;

видел и еще один пример, со следующими строками:

Код
compatible = "google,cros-ec-keyb";
google,key-rows = <8>;
google,key-columns = <13>;
google,repeat-delay-ms = <240>;
google,repeat-rate-ms = <30>;
google,ghost-filter;


второй вариант мне представляется более интересным, можно более гибко параметрировать клавиатуру.

Любой из этих варианов можно использовать для данной платы?
Как правильно внести в rootfs(?) изменения произведенные в dts файле.
Снова make? или как то иначе?
PS: buildroot собрал, Qt запустил, откомпилировал и запустил демо приложение.хочется идти дальше.

PPS: По второму примеру есть еще одна непонятка: в нем не содержится информации к каким GPIO цепляется клавиатура. Видимо это не подходит...
ссылка на второй пример http://lists.denx.de/pipermail/u-boot/2014-October/190413.html
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.07.2016 01:55 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
SK-ATSAMA5D3. в файле st91-sama5d3_sk_800_480.dts cконфигурировал (я правильно выразился?)

да, правильно, еще надо определить массив gpio через которые драйвер будет сканировать клавиатуру
и не забыть разрешить драйвер в ядре..

Цитата
видел и еще один пример, со следующими строками:
compatible = "google,cros-ec-keyb";
второй вариант мне представляется более интересным, можно более гибко параметрировать клавиатуру.

не сталкивался, но если найти описание типа
Код
Google's ChromeOS EC Keyboard is a simple matrix keyboard implemented on a separate EC (Embedded Controller) device. It provides a message for reading key scans from the EC.

то видимо это какой-то специфический драйвер, который считывает скан-коды из EC. существуют стандартные чипы для сканирования матриц и обмену по i2c протоколу.. возможно тут что-то подобное..

Цитата
Как правильно внести в rootfs(?) изменения произведенные в dts файле.
Снова make? или как то иначе?

из dts генерится dtb, который и складывается вместо оригинального, также, если изменяются пункты в ядре, то после пересборки надо обновить, равно как и модули..

Цитата
ссылка на второй пример

совершенно не пойму, почему это патчат в юбуте (может я изрядно отстал и юбут тоже использует dts)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
dolmatov
Добавлено 17.07.2016 08:15 Редактировалось 17.07.2016 08:23 Сообщение: 3
dolmatov
0

Пункты: 1812
Регистрация: 03.07.2016
Цитата

из dts генерится dtb, который и складывается вместо оригинального, также, если изменяются пункты в ядре, то после пересборки надо обновить, равно как и модули..


Jury, прошу прощения, но мне непонятно как запустить эти действия.
Пробовал make но после окончания повторной сборки файлы меняют даты но содержимое их остается неизменным. Имеются в виду файлы /home/user/tftp куда после ркрнчания сборкм скрипт складывет все файлы для заливки.
Полагаю что измениться должен соответствующий файл *.dtb, но он полностью идентичен файлу из первичной сборки
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.07.2016 18:28 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Пробовал make но после окончания повторной сборки файлы меняют даты но содержимое их остается неизменным. Имеются в виду файлы /home/user/tftp куда после ркрнчания сборкм скрипт складывет все файлы для заливки.

ну.. чудес не бывает
либо вы не тот файл редактируете
либо не до конца сборку делаете, обычно пишется скрипт, который делает все действия, возможно там выключена компиляция вашего dts..
еще как вариант, в билдруте настроено так, что идет перезапись из копии..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
dolmatov
Добавлено 18.07.2016 10:47 Редактировалось 21.07.2016 13:26 Сообщение: 5
dolmatov
0

Пункты: 1812
Регистрация: 03.07.2016
разобрался. Выкладдываю скрипт. Може кому-то сгодится. Зто для LCD 800x480, если требуется для
другого LCD выбираем соответствующий .dts - один из трех имеющихся.

Скрипт должен находиться

/home/USER/buildroot-2013.11-at91-sk/output/build/linux-custom/arch/arm/boot/

где USER ваш логин.

Код
/home/USER/buildroot-2013.11-at91-sk/output/host/usr/bin/arm-linux-gnueabihf-gcc -E -Wp,-MD,dts/.at91-sama5d3_sk_800x480.dtb.d.pre.tmp -nostdinc -I dts -I dts/include -undef -D__DTS__ -x assembler-with-cpp -o dts/.at91-sama5d3_sk_800x480.dtb.dts.tmp dts/at91-sama5d3_sk_800x480.dts

/home/USER/buildroot-2013.11-at91-sk/output/build/linux-custom/scripts/dtc/dtc -O dtb -o dts/at91-sama5d3_sk_800x480.dtb -b 0 -i arch/arm/boot/dts/ -d dts/.at91-sama5d3_sk_800x480.dtb.d.dtc.tmp dts/.at91-sama5d3_sk_800x480.dtb.dts.tmp
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux