Hi
I have spent couple of days to enable the SPI3 (the only SPI that has been routed to the 40-pin header) on Rock3A, but no success.
I am trying to enable SPI3M1C0 with following pins on my Rock 3A
GPIO4_C2 (CLK), GPIO4_C3 (MOSI), GPIO4_C5 (MISO), and GPIO4_C6 (CS0).
I am out of idea, try different overlays but still not able to enable them.
I used this overlay from this repo
https://github.com/radxa/overlays/blob/main/arch/arm64/boot/dts/rockchip/overlays/rk3568-spi3-m1-cs0-spidev.dts
I expect to see “/dev/spidev3.0” but nothing appeared.
I have already added 2 overlays, 1 for 1-wire, and the other for I2C, and they are working now.
Here some info from my Rock3A:
root@rock-3a:~# uname -a
Linux rock-3a 6.12.19-current-rockchip64 #2 SMP PREEMPT Thu Mar 13 12:02:20 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
rroot@rock-3a:~# cat /boot/armbianEnv.txt
verbosity=1
bootlogo=false
console=both
extraargs=cma=256M
overlay_prefix=rk35xx
fdtfile=rockchip/rk3568-rock-3a.dtb
rootdev=UUID=8a5d56b7-1e1b-49b6-8384-5ef8a0460c96
rootfstype=ext4
overlays=rockchip-rk3568-spi3-m1-cs0-spidev
param_spidev_spi_bus=3
param_spidev_max_freq=10000000
user_overlays=rk3568-i2c3m0-enable rk3568-w1-gpio3-a2
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
root@rock-3a:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Armbian 25.2.3 noble
Release: 24.04
Codename: noble
# nothinig shown in the kernel log
root@rock-3a:~# dmesg | grep -i spi
[ 0.000000] GICv3: 320 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
root@rock-3a:~# lsmod | grep -i spi
spidev 24576 0
spi_rockchip_sfc 16384 0
root@rock-3a:~# ls -d /proc/device-tree/spi*
/proc/device-tree/spi@fe300000 /proc/device-tree/spi@fe610000 /proc/device-tree/spi@fe620000 /proc/device-tree/spi@fe630000 /proc/device-tree/spi@fe640000
# this is from my live dts. it shows the SPI is enabled, but I still cannot see it in my file system "/dev/spi*"
spi@fe640000 {
pinctrl-names = "default\0high_speed";
#address-cells = <0x01>;
pinctrl-0 = <0x22e 0x22d>;
clock-names = "spiclk\0apb_pclk";
interrupts = <0x00 0x6a 0x04>;
clocks = <0x0f 0x158 0x0f 0x157>;
#size-cells = <0x00>;
dma-names = "tx\0rx";
compatible = "rockchip,rk3568-spi\0rockchip,rk3066-spi";
pinctrl-1 = <0x22e 0x264>;
status = "okay";
max-freq = <0x2faf080>;
reg = <0x00 0xfe640000 0x00 0x1000>;
phandle = <0x12b>;
dmas = <0x27 0x1a 0x27 0x1b>;
spidev@0 {
spi-max-frequency = <0x2faf080>;
compatible = "rockchip,spidev";
status = "okay";
reg = <0x00>;
};
};
root@rock-3a:~# ls -tlhr /dev/spi*
ls: cannot access '/dev/spi*': No such file or directory
would be appreciate it if anyone can help.
Thanks