[RFC PATCH] riscv: dts: spacemit: initial i2c support for OrangePi RV2

Michael Opdenacker michael.opdenacker at rootcommit.com
Sat Oct 25 00:48:45 PDT 2025


Greetings,

On 10/25/25 09:45, michael.opdenacker at rootcommit.com wrote:
> From: Michael Opdenacker <michael.opdenacker at rootcommit.com>
>
> The OrangePi RV2 board exposes i2c2 and i2c8 buses from the Spacemit K1 SoC.
>
> Signed-off-by: Michael Opdenacker <michael.opdenacker at rootcommit.com>
> ---
>   arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
> index 41dc8e35e6eb..c4b25dd30f54 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
> @@ -17,6 +17,8 @@ aliases {
>   		serial0 = &uart0;
>   		ethernet0 = &eth0;
>   		ethernet1 = &eth1;
> +                i2c2 = &i2c2;
> +                i2c8 = &i2c8;
>   	};
>   
>   	chosen {
> @@ -81,6 +83,18 @@ rgmii1: phy at 1 {
>   	};
>   };
>   
> +&i2c2 {
> +	pinctrl-0 = <&i2c2_0_cfg>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
> +&i2c8 {
> +	pinctrl-0 = <&i2c8_cfg>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
>   &pdma {
>   	status = "okay";
>   };


Unfortunately, these changes are not functional yet on OrangePi RV2, 
testing on https://github.com/spacemit-com/linux/commits/k1/dt-for-next

# i2cdetect -r 2
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-2 using receive byte commands.
I will probe address range 0x08-0x77.
Continue? [Y/n]
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:        [  124.675321] i2c-k1 d4012000.i2c: i2c transfer failed, ret 
-11 err 0x400000
                  -- 09 [  124.686769] i2c-k1 d4012000.i2c: i2c transfer 
failed, ret -11 err 0x400000
-- 0b [  124.695584] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 0d [  124.702945] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 0f
10: [  124.710346] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 err 
0x400000
-- 11 [  124.718221] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 13 [  124.725607] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 15 [  124.732994] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 17 [  124.739480] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 19 [  124.747480] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 1b [  124.755108] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 1d [  124.762500] i2c-k1 d4012000.i2c: i2c transfer failed, ret -11 
err 0x400000
-- 1f
...

I assume the i2c-k1 driver works on BananaPi F3. Any clues why the same 
buses don't work OrangePi RV2?
Thanks in advance
Cheers
Michael.

-- 
Michael Opdenacker
Root Commit
Yocto Project and OpenEmbedded Training course - Learn by doing:
https://rootcommit.com/training/yocto/




More information about the linux-riscv mailing list