s5pv210的gpio控制方法

有两种方法:

1.写驱动程序来控制,一般实现一个char类型的驱动,可以查看 driver/char/mini210_leds.c 

2.在用户空间可以通过 /sys/class/gpio 来控制gpio

我们这里介绍采用第二种方式:

首先需要针对不同的平台注册gpiolib驱动,一般注册都是在 arch/arm/mach-xx/gpio.c中来完成。

前提是在内核或者驱动中该管脚没有使用gpio_request来申请过,因此我们需要将内核中去掉mini210_led.c驱动,因为改驱动是集成在内核中的,改驱动中request了我们需要控制的gpio口。

然后通过查找  /sys/class/gpiochipN来查找管脚所在的分组,

查找方法如下 :

分别使用 cat / sys/class/gpio/gpiochipN/label 来查看改组对应的名字是什么,是否和自己需要控制的管脚是同一个组,如果是则基于改组的起始地址+管脚偏移 就等于你要控制的管脚编号,比如我要控制 GPG2(4),那么我发现/ sys/class/gpio/gpiochip112/label的内容就是GPG2,那么112+4=116就是改管脚编号

找到以后

1.使用 echo 116 > /sys/class/gpio/export 来导出管脚,导出后,就会在 /sys/class/gpio下多出一个gpio116目录。操作改管脚的操作就在改目录下来实现

2.使用 echo out >  /sys/class/gpio116/direction来设置方向为输出

3使用 echo 1 > /sys/class/gpio116/value 来设置管脚电平




实现一个自动导出管脚的工具脚本


gpio_export -n GPJ2_4 -d out/in -v value[0/1] 


导出并设置方向和初始值

-n: 管脚编号(采用组号+偏移方式)

-d: 方向 in:输入  out:输出

-v: 值:如果是输出的话,可以设置初始化的值为0或则1


gpio_export -g GPJ2 -i 4  -d out/in -v value[0/1] 


gpio_export ::打印出端口组标签和对应的管脚基地址




你可能感兴趣的:(s5pv210)