A resposta irá variar um pouco com base na distribuição GNU / Linux e na versão do kernel que você está usando, mas em geral você terá que usar uma Árvore de Dispositivos ou uma Sobreposição de Árvore de Dispositivos.
Lá, você desejará desabilitar spi1
e spi2
e marcar os pinos conforme controlado pelas PRUs.
Para o Linux 4.4.x, uma Árvore de Dispositivos ficaria assim:
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am33xx-pruss-rproc.dtsi"
&am33xx_pinmux {
pru_cape_bone_pins: pru_cape_bone_pins {
pinctrl-single,pins = <
BONE_P9_22 ( PIN_INPUT_PULLUP | MUX_MODE0 ) // SCLK
BONE_P9_21 ( PIN_INPUT_PULLUP | MUX_MODE0 ) // MISO
BONE_P9_18 ( PIN_OUTPUT_PULLUP | MUX_MODE0 ) // MOSI
BONE_P9_17 ( PIN_OUTPUT_PULLUP | MUX_MODE0 ) // CS0
>;
};
};
&pruss {
pinctrl-names = "default";
pinctrl-0 = <&pru_cape_bone_pins>;
};
&spi0 {
status = "disabled";
};
&spi1 {
status = "disabled";
};
No entanto: não use este código como está!
Não tenho certeza sobre os arquivos .dtsi
incluídos, os pinos exatos nem os nomes das seções / dispositivos, também para outras versões do kernel, algumas pequenas modificações podem ser necessárias.
Este é apenas um exemplo que eu baseei na minha Árvore de Dispositivos mais completa que habilitou o spidev e os dois barramentos I2C, configurei alguns pinos PRU etc - disponíveis aqui . Lembre-se que o BeagleBone Green Wireless foi direcionado para o Debian Stretch com o kernel 4.4.x.
Embora esta não seja a resposta mais completa, espero que isso o leve na direção certa.