开始编辑

开始编辑

我们使用的是 Colibri IMx6,需要访问几个引脚。在 sysfs 时代,我们只需将导出回显到系统上的“文件”,引脚就会“激活”。

现在我想知道如何使用“新” GPIOD 将引脚导出为 GPIO

cat /sys/kernel/debug/gpio输出:

gpiochip0: GPIOs 0-31, parent: platform/209c000.gpio, 209c000.gpio:

gpiochip1: GPIOs 32-63, parent: platform/20a0000.gpio, 20a0000.gpio:
 gpio-37  (                    |cd                  ) in  hi IRQ
 gpio-54  (                    |Wake-Up             ) in  lo IRQ

gpiochip2: GPIOs 64-95, parent: platform/20a4000.gpio, 20a4000.gpio:
 gpio-90  (                    |enable              ) out hi    
 gpio-95  (                    |usb_host_vbus       ) out lo    

gpiochip3: GPIOs 96-127, parent: platform/20a8000.gpio, 20a8000.gpio:
 gpio-108 (                    |scl                 ) in  hi    
 gpio-109 (                    |sda                 ) in  hi    

gpiochip4: GPIOs 128-159, parent: platform/20ac000.gpio, 20ac000.gpio:
 gpio-130 (                    |spi_imx             ) out hi    

gpiochip5: GPIOs 160-191, parent: platform/20b0000.gpio, 20b0000.gpio:

gpiochip6: GPIOs 192-223, parent: platform/20b4000.gpio, 20b4000.gpio:
 gpio-204 (                    |id                  ) in  lo IRQ

我们需要导出大约 6 个引脚gpiochip0,但如果没有导出,我们可以使用 GPIOD-cli-tools 将它们全部设置成我们想要的,但它们不会在硬件上改变,或者硬件不会报告输入引脚。

我们通过 GPIOD 的 CLI 工具设置和查询 GPIO 引脚

# gpioset  --mode=signal 2 4=1
# gpioset  --mode=time --sec=50 2 4=1

但 LED 不亮

开始编辑

gpioinfo 2处于活动状态时的输出gpioset --mode=signal 2 4=1

gpiochip2 - 32 lines:
        line   0:      unnamed       unused   input  active-high
        line   1:      unnamed       unused  output  active-high
        line   2:      unnamed       unused  output  active-high
        line   3:      unnamed       unused  output  active-high
        line   4:      unnamed    "gpioset"  output  active-high [used]
        line   5:      unnamed       unused  output  active-high
        line   6:      unnamed       unused  output  active-high
...

结束编辑

对于查询(按钮),我们使用以下内容

# gpioget 0 29
0

0无论按钮处于什么状态,它都会返回。

编辑

经过进一步检查,我们发现唯一无法正常工作的引脚是引脚 67,这是由于多路复用造成的。现在我的问题变成了:如何禁用引脚 67 上的多路复用,并使其作为 gpiochip2 上的 GPIO 引脚 17 工作

答案1

该引脚的问题在于该引脚是 MUX-ed 的,您需要使用 DeviceTree 禁用 MUX,才能使用该引脚的 GPIO 功能。

相关内容