跳转至

SPI

Rockchip 平台拓展引脚 SPI 信息如下:

主板 SOC 平台 拓展引脚
K1 RK3568 Rockchip SPI X1
K1B RK3568 Rockchip SPI X1
K3 RK3562 Rockchip
K7 RK3576 Rockchip SPI X1
K7C RK3576 Rockchip SPI X1
K8 RK3588 Rockchip SPI X2

Allwinner 平台拓展引脚 SPI 信息如下:

主板 SOC 平台 拓展引脚
K2B H618 Allwinner SPI X1
K2C H618 Allwinner SPI X1
K4B T113-S3 Allwinner SPI X1
K5C A133 Allwinner SPI X1

DTS 节点配置

Allwinner

Allwinner 平台 spi0 总线配置 dh2228 设备 dts 节点示例:

spi0: spi@05010000 {
    status = "okay";
    dh2228@2 {
        compatible = "rohm,dh2228fv";
        reg = <0>;
        spi-max-frequency = <100000>;
    };
};

Rockchip

Rockchip 平台 spi4 总线配置 spidev 设备 dts 节点示例:

&spi4 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi4_cs0n &spi4m2_pins>;
        status = "okay";

        cs-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>;

        spidev0: spidev@0 {
                compatible = "rockchip,spidev";
                status = "okay";
                reg = <0>;
                spi-max-frequency = <24000000>;
        };
};

硬件使用示例

  • SPI 引脚

K7 的 SPI 位于引脚8、引脚10、引脚12、引脚16。

image-20251110172328764

  • 硬件安装

MISO、MOSI 进行硬件短接,进行回环测试。

image-20250421165900688

spidev_test 测试

  • spidev_test 工具安装

下载源码:https://github.com/torvalds/linux/blob/master/tools/spi/spidev_test.c

  • 编译 spidev_test
gcc spidev_test.c -o spidev_test
chmod +x spidev_test
  • 列出spi设备节点
ls /dev/spi*
  • 指定设备进行测试
spidev_test -D /dev/spidev4.0 -v -l -p "hello"
  • 测试输出
root@linaro-alip:/# gcc spidev_test.c -o spidev_test
root@linaro-alip:/# chmod +x spidev_test
root@linaro-alip:/# ls /dev/spi*
/dev/spidev4.0
root@linaro-alip:/# ./spidev_test -D /dev/spidev4.0 -v -l -p "hello"
spi mode: 0x20
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  |hello|
RX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  |hello|
root@linaro-alip:/#