Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
порядок конфигурирования модуля клавиатуры для SK-iMX6S
sergzaytsev
Добавлено 26.07.2016 02:40
0
Сообщение: 1
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Уважаемые коллеги, подскажите пожалуйста последовательность действий при конфигурировании модуля клавиатуры KeyPad Port (KPP) для SK-iMX6S, хотя бы с чего начать и куда копать. Заранее благодарен.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 26.07.2016 09:31 Сообщение: 2
sasamy
4.70

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

хотя бы с чего начать


C документации NXP
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 26.07.2016 17:53 Сообщение: 3
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Тщательно изучил главу 39 мануала на процессор, благо глава по KPP не большая по объему.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 26.07.2016 19:15 Редактировалось 26.07.2016 19:21 Сообщение: 4
sasamy
4.70

Пункты: 76647
Регистрация: 14.08.2009
Если использовать kpp то надо искать специальные пины и я сомневаюсь что они свободны или вообще выведены. Вам в обшем случае надо:
1) включить драйвер в конфиге (по умолчанию он не включен скорей всего)

make linux-menuconfig
Device Drivers --->
Input device support --->
[*] Keyboards --->
<*> IMX keypad support

2) ОписАть матрицу в DT. На референсах imx6qdl kpp не используется - можно взять за пример у imx6sl

пины

матрица

но я не уверен что там все что надо прописано в DT для imx6qdl

Можно сделать проще

1) включить общий драйвер на GPIO - с ним можно использовать любые свободные пины а не специальные как для kpp

make linux-menuconfig
Device Drivers --->
Input device support --->
[*] Keyboards --->
<*> GPIO driven matrix keypad support

2) ОписАть матрицу в DT для GPIO

Например 4х4 вместо CSI (в данном случае описания для CSI нужно убирать из DT)

#include <dt-bindings/input/input.h>

/ {
aliases {
mxcfb0 = &mxcfb1;
mxcfb1 = &mxcfb2;
};

matrix_keypad: matrix-keypad@0 {
compatible = "gpio-matrix-keypad";
gpio-activelow;
linux,wakeup;
debounce-delay-ms = <50>;
col-scan-delay-us = <10>;
linux,no-autorepeat;

col-gpios = <
&gpio5 18 0
&gpio6 1 0
&gpio6 3 0
&gpio6 5 0
>;

row-gpios = <
&gpio5 31 0
&gpio6 0 0
&gpio6 2 0
&gpio6 4 0
>;

linux,keymap = <
/* MATRIX_KEY(row, col, code) */
MATRIX_KEY(0, 0, KEY_0)
MATRIX_KEY(0, 1, KEY_1)
MATRIX_KEY(0, 2, KEY_2)
MATRIX_KEY(0, 3, KEY_3)
MATRIX_KEY(1, 0, KEY_4)
MATRIX_KEY(1, 1, KEY_5)
MATRIX_KEY(1, 2, KEY_6)
MATRIX_KEY(1, 3, KEY_7)
MATRIX_KEY(2, 0, KEY_8)
MATRIX_KEY(2, 1, KEY_9)
MATRIX_KEY(2, 2, KEY_COMMA)
MATRIX_KEY(2, 3, KEY_ESC)
MATRIX_KEY(3, 0, KEY_E) MATRIX_KEY(3, 1, KEY_UP)
MATRIX_KEY(3, 2, KEY_ENTER)
MATRIX_KEY(3, 3, KEY_DOWN)
>;
};


.....

&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;

hog {
pinctrl_hog: hoggrp {
fsl,pins = <
/* GPIO matrix keypad */
MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x80000000
MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x80000000
MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x80000000
MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x80000000
MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x80000000
MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x80000000
MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x80000000
MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x80000000
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 26.07.2016 23:08 Сообщение: 5
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Добрый вечер, sasamy!
Я запустил виртуальную машину, стартанул
make linux-menuconfig
запустилась программа конфигурации ядра Linux/arm 3.10.17
> General setup.

Не нашел пункт меню "Device Drivers --->".

что я сделал не так?
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 26.07.2016 23:20 Сообщение: 6
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
и второй вопрос: где можно прочитать про процесс описания устройств в Dt?
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 26.07.2016 23:21 Сообщение: 7
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Поправка: в DT.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 27.07.2016 11:31 Сообщение: 8
sasamy
4.70

Пункты: 76647
Регистрация: 14.08.2009
Цитата
и второй вопрос: где можно прочитать про процесс описания устройств в Dt?


В исходниках ядра есть документация

Documentation/devicetree/bindings
Спуститься к концу Подняться к началу
Персональная информация
sergzaytsev
Добавлено 27.07.2016 18:24 Сообщение: 9
sergzaytsev
0

Пункты: 3694
Регистрация: 19.07.2016
Спасибо, документацию внимательно изучаю. Скажите, а почему нет пункта меню "Device Drivers --->", когда запускаешь make linux-menuconfig? Где я накосячил?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 27.07.2016 21:16 Сообщение: 10
sasamy
4.70

Пункты: 76647
Регистрация: 14.08.2009
Затрудняюсь представить - как можно накосячить в одной команде

title
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux