Sziasztok,
Egy beágyazott Debian Linux-ot futtató board-on szeretnék gpio-t kezelni. Régen (3.8 kernel előtt) ezt a /sys/class/gpio-ban kiadott echo > export paranccsal lehetett engedélyezni, majd a könyvtárba belépve az echo "in|out" > direction parancssal lehetett irányt álltani, majd a value nevű file írás/olvasásával lehetett a gpio-t írni/olvasni.
3.8 után jött a pinctrl/devicetree. Most egy 3.15-ös kernel alatt a fentiek működnek, csak éppen a kimenetre nem kerülnek ill. nem azt látom ami a bemeneten van.
Gyanítom, hogy mux-ot kellene állítani valahol, de nem találok rá megoldást.
Kipróbáltam egy pandaboard-on és egy wandboard-on is, mindkettőn 3.15-ös kernel fut, de ugyanez a jelenség.
Valaki már megszenvedett ezzel?
köszi,
Zamek
- 4065 megtekintés
Hozzászólások
Sikerült megoldani.
Van egy device tree source text file (.dts), ami a hardware-t irja le. Ezt egy dtc forditóval lehet binárisra forditani (.dtb). Ezt a boot loader tölti be.
Az lenne az értelme, hogy user space-ből lehessen változtatni, pl. interrupt-ot rendelni egy gpio-hoz, ill. mux beállitásokat megváltoztatni.
Esetemben a dokumentációból kikerestem a kivánt gpio pin-eket(pandaboard gpio132, gpio133), majd megállapitottam, hogy az i2c4 sda és clk bitjei vannak gyárilag ide multiplexálva. Elméletileg elég lett volna csak ennek a két pin-nek a definicóját megváltoztatni, de:
- nem tudtam leforditani, a dtc mindenért üvöltözött.
- elvileg a kész .dtb file-t a /lib/firmware-be másolva azonnal érvényre jut. Ez nekem nem működött.
Helyette a /boot/uboot/dtb könyvtárból kimásoltam az omap4-panda-es.dtb file-t és a dtc-vel visszaforditottam .dts formátumra. Ebben a mux beállitást átirtam a két pin-re úgy ahogy nekem kellett, majd újra leforditva visszamásoltam és reboot.
Innentől a fent leirt /sys/class/gpio matatással már működött. script-ből 50usec széles impulzosokat tudok generálni.
- A hozzászóláshoz be kell jelentkezni
Helló Zamek!
Köszönöm a post-ot, egy sörre a vendégem vagy, ha következőre összefutunk!
Üdv,
vf
- A hozzászóláshoz be kell jelentkezni