A configuração de um nó na árvore de dispositivos (dts) requer um nó compatível, como gpio-keys ou gpio-leds. Você não pode simplesmente criar um nó como eu estava tentando fazer. já que a linha que eu preciso é parte do SPI BLE, eu a adicionei ao meu nó spi1 da seguinte forma:
spi1: spi@f8008000 {
cs-gpios = <0>, <0>, <0>, <0>;
pinctrl-0 = <&pinctrl_spi1 &pinctrl_ble_irq>;
dmas = <0>, <0>;
status = "okay";
spidev@0 {
compatible = "semtech,sx1301";
spi-max-frequency = <10000000>;
reg = <0>;
};
};
pinctrl@fffff200 {
board {
pinctrl_ble_irq: ble_irq {
atmel,pins =
<AT91_PIOB 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOB 20 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOB 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOB 26 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOC 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOD 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOE 16 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOE 23 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>,
<AT91_PIOD 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>;
};
};
};
Eu ainda não sei por que os outros pinos não serão puxados para baixo, mas pelo menos agora eu não estou recebendo um erro na minha inicialização. Eu tive que ligar o earlyprintk no kernel para ver a mensagem.
Atualização: finalmente conseguiu fazer o pulldown funcionar. Vários pinos foram puxados em hardware e, portanto, a ineficácia do suspenso. Vários pinos foram definidos como LED ou usados por outros periféricos que eu desativei. Todos os pinos no exemplo acima foram desativados com sucesso.