我希望某些输入引脚的默认值为弱下拉。我正在使用运行 Debian 4.12.8 的 sama5d36。我修改了dts文件如下:
ahb {
abp {
pinctrl@fffff200 {
board {
pinctrl_inputs: input_pins {
atmel,pins =
<AT91_PIOC 26 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOC 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOA 30 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOA 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>;
};
};
};
};
};
myInputs {
compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_inputs>;
};
只是想补充一点,我确实在 /sys/kernel/debug/pinctrl/ahb:apb:pinctrl@fffff200/pinconf-pins 中看到了 PULL_DOWN:
pin 30 (pioA30): PULL_DOWN|DRIVE_STRENGTH_MED
pin 31 (pioA31): PULL_DOWN|DRIVE_STRENGTH_MED
pin 90 (pioC26): PULL_DOWN|DRIVE_STRENGTH_MED
pin 91 (pioC27): PULL_DOWN|DRIVE_STRENGTH_MED
但 /sys/class/gpio/pioA30 仍显示值为 1:
direction -> in
active_low -> 0
value -> 1
其他引脚(PioA31、pioC26、pioC27)相同。我不需要此引脚处于低电平有效状态,我只是添加了它以表明输入为高电平而没有任何连接,这是我用示波器验证的。
更新:我添加了以下引脚,它们确实有效:
<AT91_PIOD 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOD 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>;
这让我更加困惑。我检查了 /sys/kernel/debug/pinctrl/ahb:apb:pinctrl@fffff200/pinmux-pins 并且所有引脚显示如下:
pin 102 (pioD6): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 103 (pioD7): (MUX UNCLAIMED) (GPIO UNCLAIMED)
有没有人经历过类似的事情?