接口/总线/驱动
GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。
GPIO口一是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。
连接VS子板 从dm8168扩展出来的GPIO连接到了VS子板的J1接口
1》 在linux-2.6.37-psp04.00.00.12/arch/arm/mach-omap2/ board-ti8168evm.c文件的558行添加
TI816X_MUX(SC1_DATA, OMAP_MUX_MODE2),
TI816X_MUX(SC0_DET, OMAP_MUX_MODE2),
配置GP0[24] GP1[9]管脚为GPIO管脚
2》 配置linux内核 使能Device Drivers –》 GPIO Support –》 /sys/class/gpio
echo 24 》 /sys/class/gpio/export
echo 41 》 /sys/class/gpio/export
cd /sys/class/gpio/gpio24
echo “out” 》 direction
cd /sys/class/gpio/gpio41
echo “out” 》 direction
cd /sys/class/gpio/gpio24
echo 1 》 value
cd /sys/class/gpio/gpio41
echo 1 》 value
使用万用表测量VS子板 –》JP1 –》1 或3管脚为高电平
cd /sys/class/gpio/gpio24
echo 0 》 value
cd /sys/class/gpio/gpio41
echo 0 》 value
使用万用表测量VS子板 –》JP1 –》1 或3管脚为低电平
运行gpio0-24-test 或gpio1-9-test测试例程,使用示波器可以看到频率为1HZ的方波
一、Follow these steps for controlling the GPIO lines from sysfs entries
a. Export, which GPIO pin you want to control. Below steps are done with respect to GPIO30 (an example
$ echo 30 》 /sys/class/gpio/export
b. Change the GPIO pin direction to in/out
$ echo “out” 》 /sys/class/gpio/gpio30/direction
$ echo “in” 》 /sys/class/gpio/gpio30/direction
c. Changing the value
$ echo 1 》 /sys/class/gpio/gpio30/value
$ echo 0 》 /sys/class/gpio/gpio30/value
d. Unexport the GPIO pin
$ echo 30 》 /sys/class/gpio/unexport
Sysfs entries are created from 0 - 63 in case of DM816X because it has two GPIO banks 0 and 1.
Note: GPIO‘s which are used already in the drivers can not be control from sysfs, unless untill driver export that particular pin.
Run these commands for knowing what are the GPIO’s already requested in the drivers.
$ mount -t debugfs debugfs /sys/kernel/debug
$ cat /sys/kernel/debug/gpio
全部0条评论
快来发表一下你的评论吧 !