general_chaos |
|
|
|
|
|
|
|
Пункты: 335 |
Регистрация: 22.03.2014 |
Пол: Мужчина |
|
|
Не могу разобраться с соответствием номеров GPIO модуля в линуксе
Например
GPIO_1_15 в файле /etc/init.d/S92gpio
к нему обращаются через /sys/class/gpio/gpio15
Мне нужно управлять пинами
с GPIO_5_10 по GPIO_5_16
Правильно я понимаю, что GPIO_5_10 - это "gpio138" ?
PS Обращаясь к нему - получаю отказ - ресурс занят
Его можно разлочить без перекомпиляции ядра ?
Если да - то где это править?
PS 2 : извиняюсь за, возможно, "некрасивую" формулировку вопросов |
|
|
|
|
|
MalVal |
|
|
|
|
|
|
|
Пункты: 3131 |
Регистрация: 04.06.2013 |
|
|
|
Без перекомпиляции ядра нет.
Открываем pdf на модуль в самом конце список GPIO. И там 5_10 по 5_16 заняты под LCD.
Номера всех GPIO (из взаимозаменяемость) смотрим здесь:
linux_kernel_dir/arh/arm/mach-imx6/iomux-mx6dl.h
а назначение (то есть для чего занят в данном ядре) здесь:
linux_kernel_dir/arh/arm/mach-imx6/board-mx6q_sabrelite.c в структуре mx6dl_sabrelite_pads.
Чтоб вычислить номер GPIO для доступа из user используется формула:
#define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr))
Да, забыл дописать, это для ядра 3.0.35 (то, что идет с ftp) |
|
|
|
|
|
general_chaos |
|
|
|
|
|
|
|
Пункты: 335 |
Регистрация: 22.03.2014 |
Пол: Мужчина |
|
|
Спасибо за развернутый ответ. Буду пробовать |
|
|
|
|
|
|