我使用i.mx6板(yocto(jethro))并配置设备树。我更改了一个dts文件,并将dtb文件放在一个引导分区中。我在dts文件中设置了GPIO4_IO19,如下所示。
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog_1>;
imx6ul-evk {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
...
MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x0000B0B0
...
>;
};
...起初,MX6UL_PAD_CSI_VSYNC__GPIO4_IO19是在其他组(usdhcgrp)中定义的,但我将它们注释掉。
启动后,我检查是否成功地确定了我设置的gpio。结果是
echo 115 > /sys/class/gpio/export
-sh: echo: write error: Device or resource busy所以我查了这个。
cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:
gpio-10 (phy-reset ) out lo
GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:
GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:
gpio-68 (ft5x06_irq_gpio ) in hi
GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:
gpio-109 (? ) out lo
gpio-115 (cd ) in lo
gpio-116 (? ) out lo
gpio-117 (? ) out lo
gpio-118 (sysfs ) in hi
GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:
gpio-128 (phy-reset ) out lo光盘使用gpio-115。也许这意味着卡检测。我想用它作为sysfs来读取状态。还有别的方法看吗?此外,gpio-10,68,109,116,117也被其他设备使用.我如何通过sysfs使用它们?
我认为我需要做的是检查寄存器是否正确设置值。如果寄存器值与我设置的值不相同,我猜其他进程设置了引脚control.However,我不知道访问寄存器的方式。
我对gpio115的了解如下
mux_reg address: 0x01DC and the value.
conf_reg address: 0x0468 and the value.
input_reg address: 0x0000 and the value.和其他的全球投资组织一样。
如何访问0x01DC,然后在linux(yocto)中获取值?
谢谢合作。
发布于 2019-04-02 11:08:12
如果您只想知道引脚的状态,那么它已经在/sys/内核/调试/gpio中呈现给您了。
gpio-115 (cd ) in lo它被配置为一个输入,并且当前值很低,如果您在插槽中插入/移除卡,这将改变!
如果您确实希望或需要直接访问寄存器值,请尝试检查实用程序devregs!
https://unix.stackexchange.com/questions/391074
复制相似问题