在imx6 wandboard quad上读取GPIO

时间:2015-09-22 13:07:25

标签: c linux-kernel arm gpio

我正在写一个驱动程序来控制GPIO引脚。我已经识别出JP4连接器并在gpio91上添加了一个LED(JP4.06 => /sys/class/gpio/gpio91)。在阅读了很多教程后,我编写了一个简单的内核模块。此模块接收来自用户空间的输入,并根据输入设置gpio,如gpio_set_value(91,true)。在致电gpio_set_value之前,我打电话给另一个函数,即gpio_direction_output。因此,领导是发光的。另一方面,当我从用户空间获取其他命令以获取PIN的状态时(为此我依赖于gpio_get_value(91)并且为此也设置了输入方向),这里我没有得到正确的值。

我错过了获得理想价值的任何步骤吗?我应该怎么做呢?

1 个答案:

答案 0 :(得分:1)

来自https://github.com/wandboard-org/linux/blob/wandboard_imx_3.10.17_1.0.0_ga/arch/arm/boot/dts/imx6qdl-wandboard.dtsi#L390

EIM_D27正确复用为gpio,其padconf为0x1B880,这意味着:

  • 慢摆率
  • 驱动强度HIZ
  • 速度:100 MHz
  • 输出开漏
  • 启用拉/守护者
  • 启用拉
  • 100K欧姆拉起
  • 施密特触发器输入

如果你总是读1,也许你可以尝试使用0x18880删除上拉