LINUX.ORG.RU

Как работать с gpio на vortex86dx?

 


0

2

Сильно не пинайте, я новичок. Попал в руки интересный маленький компьютер на vortex86dx, В мануал описаны наличие колодки с gpio, но как с ними работать через туже sysfs?

Если для другой платы типа soekris net5501 в мануале есть подобное:

https://i.ibb.co/hcdZV3R/Screenshot-2022-02-03-at-12-53-49-net5501-manual-r010-doc-net5501-manual-pdf.png

Тоесть, есть карта, как пины на колодке соотносятся с ножками на контроллере. Для vortex86 я такой информации что-то не нашел. (или плохо искал, чего-то не понял) Может кто-то сталкивался? В какую сторону копать?

ps/ Тот же вопрос верен и для других x86, я вижу колодку с gpio на плате с geode lx800 и т.д Но в ближайшем приближение не вижу карты по пинам. Чего-то не понимаю.



Последнее исправление: deuser (всего исправлений: 1)

тебе в даташите черным по белому пишут, что ногами управляет PC87366. Ищи даташит на него и разбирайся, какие команды нужно по LPC-интерфейсу отдавать, чтобы он начал дергать ногами.

И вообще, «всё уже украдено до нас». В апстриме ядра давным-давно есть модуль pc8736x_gpio.

demidrol ★★★★★
()
Последнее исправление: demidrol (всего исправлений: 1)
Ответ на: комментарий от demidrol

Я может не так выразился. Как на soekris это понятно. В мануал написано какой физ пин соответствует пину «в системе». Например, я экспортирую gpio 6 , он в свою очередь соответствует физическому пин 9 (тоже по мануалу) на котором висит светодиод (error) И можно им поморгать. Вопрос, где найти такое же соответствие пинов для vortex86dx?

deuser
() автор топика
Ответ на: комментарий от deuser

еще раз – на твоем vortex86dx нет gpio. Они есть у внешней микросхемы (контроллера LPC) PC87366. Процессор с этой микросхемой «общается» по этому же интерфейсу.

Вангую, что модуль pc8736x_gpio экспортирует куда-то в sysfs псевдофайл, который ты можешь писать/читать. Вангую также, что номера пинов в этом файле будут соответствовать распиновке именно PC87366 (т.е. столбцу «PC87366 Pin» на твоем скриншоте). Дальше разберешься?

demidrol ★★★★★
()

Попал в руки интересный маленький компьютер на vortex86dx, В мануал описаны наличие колодки с gpio, но как с ними работать через туже sysfs?

Я управлял ножками ввода-вывода через устройство «/dev/gpiochip0». Нужно ли было что-то включать в ядре «Линукса», чтобы это устройство появилось, я уже не помню, но сами исходные тексты управления ножками ввода-вывода из пространства пользователя ты можешь посмотреть тут.

Enthusiast ★★
()
Ответ на: комментарий от NAY_GIGGER

Если речь о soekris net5501-70. Купил случайно на ebay когда-то давно. Руки дошли, хотел поиграть с gpio. Процессор там слабый, наверное уровня pentium 2, но для gpio и всяких автоматизаций другой и не нужен.

И в итогде я окончательно запутался. На linux у меня не получается взаимодействовать с gpio на net5501 из юзерспейса. Cобрал ядро 5.15.x c поддержкой uapi и библиотеку libgpiod. Но это ничего не дало. И работать из юзерспейса с gpio через PC87366 не понимаю как.

root@slack:~# uname -a
Linux slack 5.15.19-geode1 #1 Sun Feb 13 20:14:03 MSK 2022 i586 Geode(TM) Integrated Processor by AMD PCS AuthenticAMD GNU/Linux
piochip0 [cs5535-gpio] (32 lines)
root@slack:~# gpio
gpiodetect  gpiofind    gpioget     gpioinfo    gpiomon     gpioset
root@slack:~# gpioinfo 
gpiochip0 - 32 lines:
        line   0:      "GPIO0"       unused   input  active-high 
        line   1:      "GPIO1"       unused   input  active-high 
        line   2:      "GPIO2"       unused   input  active-high 
        line   3:      "GPIO3"       unused   input  active-high 
        line   4:      "GPIO4"       unused   input  active-high 
        line   5:      "GPIO5"       unused   input  active-high 
        line   6:      "GPIO6"       unused   input  active-high 
        line   7:      "GPIO7"       unused   input  active-high 
        line   8:      "GPIO8"       unused   input  active-high 
        line   9:      "GPIO9"       unused   input  active-high 
        line  10:     "GPIO10"       unused   input  active-high 
        line  11:     "GPIO11"       unused   input  active-high 
        line  12:     "GPIO12"       unused   input  active-high 
        line  13:     "GPIO13"       unused   input  active-high 
        line  14:     "GPIO14"       unused   input  active-high 
        line  15:     "GPIO15"       unused   input  active-high 
        line  16:     "GPIO16"       unused   input  active-high 
        line  17:     "GPIO17"       unused   input  active-high 
        line  18:     "GPIO18"       unused   input  active-high 
        line  19:     "GPIO19"       unused   input  active-high 
        line  20:     "GPIO20"       unused   input  active-high 
        line  21:     "GPIO21"       unused   input  active-high 
        line  22:     "GPIO22"       unused   input  active-high 
        line  23:      unnamed       unused   input  active-high 
        line  24:     "GPIO24"       unused   input  active-high 
        line  25:     "GPIO25"       unused   input  active-high 
        line  26:     "GPIO26"       unused   input  active-high 
        line  27:     "GPIO27"       unused   input  active-high 
        line  28:     "GPIO28"       unused   input  active-high 
        line  29:      unnamed       unused   input  active-high 
        line  30:      unnamed       unused   input  active-high 
        line  31:      unnamed       unused   input  active-high 
root@slack:~# find /sys/ -name pc873*
/sys/devices/platform/pc87360.26144
/sys/devices/platform/pc8736x_gpio.0
/sys/bus/platform/devices/pc87360.26144
/sys/bus/platform/devices/pc8736x_gpio.0
/sys/bus/platform/drivers/pc87360
/sys/bus/platform/drivers/pc87360/pc87360.26144
/sys/module/hwmon_vid/holders/pc87360
/sys/module/pc87360

Смущает еще это в dmesg:

23.038166] pc87360: Device 0x09 not activated
[   23.066261] pc87360 pc87360.26144: hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info().

Это может быть причиной нерабочего pc8736x_gpio? Почему не созается такое же устройство в /dev , как для cs5535-gpio? Как из юзерспейса управлять этими пинами на pc8736x??

Зато во openbsd все заработало из коробки. Через gpioctl я могу из юзерспейса воздействовать на пины и контролирую мультиметром наличиие напряжение или его отстуствие соответственно.

nsclpcsio0 at isa0 port 0x2e/2: NSC PC87366 rev 9: GPIO VLM TMS
gpio1 at nsclpcsio0: 29 pins
deuser
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.