Всем привет! Пытаюсь сделать так же как написал Jury093: в конфиге добавил rotary encoder gpio, в файле боард прописал хидер энкодера, структуру и регистрацию платформы, но после сборки ядра в логе строки типа input: rotary-encoder as /devices/platform/rotary-encoder.0/input/input... у меня нет и соответственно нет нового event. В папке sys/device/platform вижу, что появилось новое устройство rotary_encoder. Подскажите, что нужно ещё сделать. Я в линуксе новичок, сильно не пинайте если что не так написал.
проверил, включены, правда не нашел пункт GPIO Support->Generic GPIO Controller. У меня в ядре включен драйвер gpio-keys для кнопки USER на отладочной плате, он прекрастно работает, а вот мои попытки подключить rotary-encoder пока не увенчались успехом :(
Кстати нашел в инете драйвер rotary_encoder который отличается от драйвера которые был у меня наличием функций rotary_encoder_get_state, rotary_encoder_report_event и наличием режима half-period.
хм.. разыскал ядро с внедренным энкодером.. ничего криминального у вас не вижу..
есть подозрение, что с пинами что-то неладно у вас..
простейшая проверка - по очереди подсунуть пины для энкодера вместо пина, прописанного для "gpio-keys для кнопки USER"
судя по blueshark у вас вероятно omap3, там достаточно заморочно интятся пины - его надо прописать в массиве падов для инициализации с правильным именем. а для надежности проверить в файле muxXXX(?) на соответствие..
разыщите в сорцах ядра драйвер rotary-encoder.c а в нем п/п _probe. в начало и в успешное завершение впишите пару примитивных
тогда в логе можно будет проверить - стартует ли драйвер вообще или как..
Спасибо большое за помощь, все заработало. Оказывается действительно драйвер не стартовал. Проблема оказалась очень проста, в драйвере имя было определено как "rotary-encoder", а в боарде "rotary_encoder" )). Исправил, драйвер стал стартовать, но тут же проблема с пинами образовалась. Переконфигурировал их и все заработало ).