工具/软件:Linux
DTS 文件:
GPIO_Pins:GPIO_Pins{
pinctrl-single、pins =<
0x158 (PIN_INPUT_PULLUX | MUX_MODE2)/*(B16) spi0_D1.i2c1_sda *
0x150 (PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(A17) spi0_SCLK.GPIO0[2]*/
0x154 (PIN_INPUT_PULLUX | MUX_MODE7)/*(B17) spi0_d0.GPIO0[3]*/
>;
};
在电路板上加载 DTB 文件后、可以看到分组的 GPIO 引脚、如下所示
# cat /sys/kernel/debug/pinctrl/44e10880.. pingroups"
组:pinmux_gpio_pins
引脚86 (PIN86)
引脚84 (PIN84)
引脚85 (PIN85)
当我们导出86、84和85引脚并尝试读取 GPIO 引脚时、每次都将状态为0。 即使引脚也会更改为高电平和低电平。
#echo '84'>/sys/class/gpio/export
#echo '85'>/sys/class/gpio/export
#echo '86'>/sys/class/gpio/export
#echo "in">/sys/class/gpio/gpio84/direction
#echo "in">/sys/class/gpio/gpio85/direction
#echo "in">/sys/class/gpio/gpio86/direction
默认值:
#echo "GPIO-84:"`cat /sys/class/gpio/gpio84/value`
GPIO-84:0
#echo "GPIO-85:"`cat /sys/class/gpio/gpio85/value`
GPIO-85:0
#echo "GPIO-86:"`cat /sys/class/gpio/gpio86/value`
GPIO-86:0
上拉后:
#echo "GPIO-84:"`cat /sys/class/gpio/gpio84/value`
GPIO-84:0
#echo "GPIO-85:"`cat /sys/class/gpio/gpio85/value`
GPIO-85:0
#echo "GPIO-86:"`cat /sys/class/gpio/gpio86/value`
GPIO-86:0
请帮助解决此问题。
提前感谢!