[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 = ð0;
> ethernet1 = ð1;
> + 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