|
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK140P (其他平台也是)
编译器: gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
buildroot版本:buildroot-2017.02.5.tar.bz2
内核版本 linux-4.1.15
配置内核CONFIG_GPIO_SYSFS
假如测试GPIO端口是129,如下:
echo 129 > /sys/class/gpio/export
-sh: echo: write error: Device or resource busy
查看内核是否占用了某个管脚,需要配置
Kernel hacking —>
-*- Debug Filesystem
下载重启后,可以看到/sys/kernel/debug/目录,
使用以下命令看内核使用了哪些GPIO,如下:
(如果没有/sys/kernel/debug/相关目录,需要mount -t debugfs debug /debugfs挂载)
root@myimx6ek140p:~# cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:
GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:
GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:
GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:
gpio-118 (spi_imx ) out lo
gpio-122 (spi_imx ) out lo
GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:
gpio-129 (? ) out lo
gpio-132 (? ) out lo
gpio-135 (headphone detect ) in lo
gpio-136 (? ) out lo
通过上面的信息,可以看到gpio-129已经被内核注册了,建议如果要使用gpio-129这个管脚,
需要在内核源码或设备树屏蔽掉gpio-129的相关注册信息,这样就可以用echo 129 > /sys/class/gpio/export
命令来测试了。
|
|