Desativar spidev em preto beaglebone

0

Eu quero usar o PRU para executar a programação de registro de lance do McSPI no blackbeaglebone. Portanto, eu preciso desabilitar o spidev (desse módulo spi) para manipular o registro do mcspi de acordo com o Manual de Referência Técnica AM335x. em outras palavras, eu quero assumir o controle do módulo spi do spidev e usar a programação em nível de registro. Como eu posso desativar o módulo spidev?

Também abaixo do comando no meu BBB, mostre que spidev de ambos os módulos spi está ativo:

root@beaglebone:~# ls /dev/sp*
/dev/spidev1.0  /dev/spidev1.1  /dev/spidev2.0  /dev/spidev2.1
    
por Bashid 19.10.2018 / 16:03

1 resposta

1

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.

    
por 19.10.2018 / 16:30