реклама на сайте
подробности

 
 
> Freescale iMX6, Linux Device Tree, настройка pin muxing в DTS/DTB файлах
AVR
сообщение Mar 20 2016, 18:51
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Требуется переназначить выводы P4 и P1 процессора i.MX6 Solo в качестве обычных GPIO.
Прилагаю текстовую форму файла imx6dl-wandboard.dtb (по сути dts).

Пока не могу найти логическую связь документации (файл IMX6SDLRM.pdf) и DTB/DTS файла.
Мне вообще не понятно где в этих device tree файлах есть обозначение той или иной роли для вывода например P4? А в документации где эта связь? Там вообще нет P4 и связи с какими адресами регистров.

Прошу помочь тех кому приходилось задавать настройки мультиплексирования выводов для ОС Linux, причем не только для процессоров Freescale iMX 6...

Прикрепленный файл  imx6dl_wandboard.txt ( 55.53 килобайт ) Кол-во скачиваний: 227


P.S.
Модератору: я уверен, это скорее тема для ARM, чем для подфорума по операционным системам - там врядли кто подскажет...


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mantech
сообщение Mar 20 2016, 19:43
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Mar 20 2016, 21:51) *
gpio0 = "/soc/aips-bus@02000000/gpio@0209c000";


Ктоб знал, что это вообще означает?? Больше на какие-то адреса похоже...
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 20 2016, 19:46
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(mantech @ Mar 20 2016, 22:43) *
Ктоб знал, что это вообще означает?? Больше на какие-то адреса похоже...

Ну ясно что это GPIO контроллер, их там 7.
Но вывод может работать не только в режиме GPIO.
Где же переключать эти роли (мультиплексирование)? Я даже отдаленно не смог понять.
Может это вообще не в Device Tree файлах настраивается, хотя читал что вроде там, да и где еще по логике это может быть?


--------------------
Go to the top of the page
 
+Quote Post
mantech
сообщение Mar 21 2016, 08:30
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Mar 20 2016, 22:46) *
Где же переключать эти роли (мультиплексирование)? Я даже отдаленно не смог понять.


Ммм да, в platform sdk все куда понятнее, тут наверно только Jury093 подсказать может...
Смотрите, в сторону IO_MUX...

Сообщение отредактировал mantech - Mar 21 2016, 08:31
Go to the top of the page
 
+Quote Post
Jury093
сообщение Mar 21 2016, 08:59
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(mantech @ Mar 21 2016, 11:30) *
Ммм да, в platform sdk все куда понятнее, тут наверно только Jury093 подсказать может...
Смотрите, в сторону IO_MUX...

не, увы Jury093 не сможет подсказать - сам не знаю, да и не требовались пины в чистом gpio mode
в старых ядрах все было сильно проще - в файле борды прописывались пины в нужном режиме, потом одним чихом настраивались в нужную позу
как это сделать в dts надо искать в инете, например по строке "imx6 dts gpio input"
https://community.freescale.com/thread/317876
http://www.kosagi.com/w/index.php?title=De...tive_GPIO_guide
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 21 2016, 19:35
Сообщение #6


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Jury093 @ Mar 21 2016, 11:59) *
не, увы Jury093 не сможет подсказать - сам не знаю, да и не требовались пины в чистом gpio mode
в старых ядрах все было сильно проще - в файле борды прописывались пины в нужном режиме, потом одним чихом настраивались в нужную позу

Спасибо за ссылки, раз местные гуру таким не занимались через DTB файлы (а у меня выхода нет - судя по всему во всех современных ядрах будет лишь DTB - что кстати правильно) - то наверное надо попытать счастья на официальных форумах производителя.


--------------------
Go to the top of the page
 
+Quote Post
Jury093
сообщение Mar 21 2016, 20:01
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(AVR @ Mar 21 2016, 22:35) *
Спасибо за ссылки, раз местные гуру таким не занимались через DTB файлы (а у меня выхода нет - судя по всему во всех современных ядрах будет лишь DTB - что кстати правильно) - то наверное надо попытать счастья на официальных форумах производителя.

а вам именно gpio mode? и рулить через юзерспейс из софта?
иначе можно слегка упростить задачу:
для вывода использовать класс gpio-led
для ввода класс gpio-button (тут еще бонусом будет антидребезг)
примеры можно посмотреть в соседних dts

еще как вариант (не факт что сработает, в разных архитектурах по разному) - посчитать номер gpio. пример расчета есть во второй ссылке. потом примитивное
Код
echo NNN > /sys/class/gpio/export

если пин читается или работает на вывод (после out > direction), то формально можно в dts и не писать и достаточно оформить настройки в загрузочном скрипте
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 21 2016, 20:08
Сообщение #8


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Jury093 @ Mar 21 2016, 23:01) *
а вам именно gpio mode? и рулить через юзерспейс из софта?

Требуется провести эксперимент - поработать с этими двумя выводами в режиме GPIO и убедиться что они рабочие вообще, затем перевести в режим IPU_CSI0 (для захвата видео). На моей плате они вообще по дефолту болтаются, поэтому проще начать с GPIO.
Этот эксперимент очень важен, потому что и без того разобраться крайне затруднительно.


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th August 2025 - 12:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01468 секунд с 7
ELECTRONIX ©2004-2016