Tried to get it running on the Rock PI S, which has the same chip, but it somehow doesn't seem to work... I think it has different conflicts maybe? It's kinda hard to debug. Originally I used the following (on 24.*):
/dts-v1/;
/plugin/;
/ {
compatible = "rockchip,rk3308";
fragment@0 {
target = <&spi1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
spidev@0 {
compatible = "rockchip,spidev";
status = "okay";
reg = <0>;
spi-max-frequency = <10000000>;
};
};
};
};
But it stopped working on upgrade to 25.11. I was able to get it to load again until I adjusted the compatible field to "armbian,spi-dev". But the the connected chip just wouldn't answer. I now tried rk3308-spi1-spidev.dts from this thread, with the codec modification and then even tried to fix the correct conflicts for the Rock PI S' different pinout:
/dts-v1/;
/plugin/;
/{
metadata {
title = "Enable spidev on SPI1";
compatible = "radxa,rockpis", "radxa,rock-s0";
category = "misc";
exclusive = "GPIO2_B1", "GPIO2_A4", "GPIO2_A5", "GPIO2_A7";
description = "Enable spidev on SPI1.";
};
fragment@0 {
target = <&spi1>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_miso &spi1_mosi>;
#address-cells = <1>;
#size-cells = <0>;
spidev@0 {
compatible = "rockchip,spidev", "armbian,spi-dev";
reg = <0>;
spi-max-frequency = <10000000>;
};
};
};
fragment@1 {
target = <&i2c3>;
__overlay__ {
status = "disabled";
};
};
fragment@2 {
target = <&uart3>;
__overlay__ {
status = "disabled";
};
};
};
But it still doesn't communicate. It's there, but not receiving any data from my chip like it did in the past. I can't find anything in dmesg, so I'm not sure how one can find out what's wrong with it.