Что я хочу сделать:
Создать устройство поворотного кодировщика в Linux с Yocto Project и деревом устройств (/ dev / input / rotary-encoder). Устройство должно быть видно после загрузки, чтобы его можно было использовать в пользовательском пространстве.
Мое оборудование:
Оценочная плата i.MX8M Mini (imx8mm evk)
Поворотный энкодер с использованием двух GP IOs
EXP_GPIO13, EXP_GPIO14: Заголовок расширения
Мое программное обеспечение:
Yocto из NXP строит минимальное изображение для оценочной платы i.MX8M Mini.
Изображение:
inherit core-image
IMAGE_FEATURES += "debug-tweaks"
IMAGE_INSTALL = "\
packagegroup-core-boot \
kernel-modules \
console-tools \
kbd-keymaps \
gcc \
packagegroup-core-buildessential \
nano \
ntp \
"
Распространяется на основе:
require conf/distro/poky.conf
Что Я попытался:
Я изменил файл dts и добавил код для поворотного кодировщика (arch / arm64 / boot / dts / freescale / fsl-imx8mm-evk.dts):
/ {
...
rotary@0 {
compatible = "rotary-encoder";
gpios = <&pca6416 14 GPIO_ACTIVE_HIGH>, <&pca6416 13 GPIO_ACTIVE_HIGH>;
linux,axis = <REL_WHEEL>;
rotary-encoder,relative-axis;
rotary-encoder,half-period;
status = "okay";
};
};
Какой правильный путь, и может мне нужен драйвер устройства в дополнение к файлу дерева устройств? Я думал, что Linux будет иметь один для поворотных энкодеров. Проблема в том, что мои знания о деревьях устройств ограничены. Я пытался найти решение через Google, но не смог. Может быть, кто-то может помочь, как интегрировать это с оценочной платой.
Я также нашел эту ссылку: https://www.kernel.org/doc/Documentation/input/devices/rotary-encoder.rst и интерпретировал текст так, что мне не нужен драйвер / module:
Поскольку драйвер использует общие свойства устройства c, это можно сделать либо через дерево устройств, ACPI, либо с помощью файлов плат stati c, как в примере ниже:
Я также открыл тему в сообществе NXP: https://community.nxp.com/thread/525581