Jump to content

Recommended Posts

Posted

Hello everyone,

I'm trying to get an ST7735S LCD display working with my Orange Pi Zero 2 (H616). This setup was working correctly with older Armbian kernels, but after a recent update, I can no longer get the SPI device to appear.

I have already tried a couple of different configuration methods without success.

 

System Information:

Board: Orange Pi Zero 2 (H616)

Display: ST7735S (SPI)

 

Kernel Version: Linux orangepizero2 6.12.43-current-sunxi64 #2 SMP Wed Aug 20 16:30:58 UTC 2025 aarch64 GNU/Linux

I have recently updated armbian-config by running the update from the script itself.

 

Attempt 1: Using armbianEnv.txt

My first attempt was to edit /boot/armbianEnv.txt and add the required overlays. Here is my configuration:

 

verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60
rootdev=UUID=aef396b8-ac79-477c-b797-466fc4d881a6
rootfstype=ext4
overlays=sun50ih616spidev1_0 sun50ih616spidev1_1 sun50ih616spispidev sun50ih616tft35_spi
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

 

After rebooting with this configuration, the device nodes are not created. The output of ls /dev/spidev* is empty.

 

Attempt 2: Using a custom user overlay

Next, I tried creating a custom Device Tree Overlay. I created the file /boot/overlay-user/sp1-spidev.dts with the following content:

 

/dts-v1/;
/plugin/;

/ {
    compatible = "allwinner,sun50i-h616";
    
    fragment@0 {
        target = <&spi1>;
        __overlay__ {
            status = "okay";
            pinctrl-names = "default";
            #address-cells = <1>;
            #size-cells = <0>;
            
            spidev@0 {
                compatible = "spidev";
                reg = <0>;
                spi-max-frequency = <50000000>;
            };
        };
    };
};

 

I then added sp1-spidev to the overlays line in armbianEnv.txt.

This method seems to be partially working. After a reboot, I can see the SPI master controller:

 

$ ls /sys/class/spi_master/
spi0  spi1

 

However, the spidev device is still missing. ls /dev/spidev* is still empty.

 

Diagnostic Information

Here is the output of dmesg filtered for "spi". It seems to refer to spi0, not spi1 which I am trying to configure, but I'm including it for completeness.

 

$ dmesg | grep -i spi
[    2.821043] spi-nor spi0.0: supply vdd not found, using dummy regulator

 

My Question

I don't understand why the /dev/spidev* device is not being created, even when the spi1 master appears to be correctly enabled via the overlay. It seems like the spidev driver is not binding to the device.

Since this worked on older kernels, has the method for enabling SPI devices changed? What is the correct procedure now? Is there something I'm missing in my overlay file or configuration?

Thank you for your help

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines