1) Включить в конфиге ядра spi-dev
make linux-menuconfig
Device Drivers --->
[*] SPI support --->
<*> User mode SPI device driver support
2) Дописать в DT своей аплаты выделенный текст, например для ES-T113-NANO с EMMC
output/build/linux-custom/arch/arm/boot/dts/sun8i-t113-nano-emmc.dts
&spi1 {
pinctrl-0 = <&spi1_pd_pins>;
pinctrl-names = "default";
status = "okay";
spidev@0 {
compatible = "menlo,m53cpld";
reg = <0>;
spi-max-frequency = <1000000>;
};
};
3) собрать тест
output/build/linux-custom/tools/spi/spidev_test.c
добавить недостающие дефайны от нового ядра более старому компилятору
....
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
#define _BITUL(x) ((1) << (x))
#define SPI_TX_OCTAL _BITUL(13) /* transmit with 8 wires */
#define SPI_RX_OCTAL _BITUL(14) /* receive with 8 wires */
....
собрать находясь в директории теста
../../../../host/bin/arm-none-linux-gnueabihf-gcc spidev_test.c -o spidev_test
4) скопировать находясь в директории теста на плату
scp spidev_test
root@192.168.0.136:/root
root@192.168.0.136's password:
root
5) замкнуть перемычкой MOSI <-> MISO - на MB это разъём X2: 20 <-> 21
и запустить тест
# ./spidev_test -v -D /dev/spidev0.0
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
если всё правильно - TX и RX должны совпасть