Hello!
I’m trying to use I2C3 interface on Radxa E25 board with CM3I module. System builded with kernel 6.1.65 using the Radxa’s ‘bsp’ (/linux/stable) and ‘debos-radxa’ (bullseye) development frameworks. I activated I2C3 (M0) as:
rk3568-radxa-e25-addition
&i2c3 {
status = “okay”;
pinctrl-0 = <&i2c3m0_xfer>;
};
&i2c3m0_xfer {
rockchip,pins =
<1 RK_PA1 1 &pcfg_pull_up_drv_level_1>,
<1 RK_PA0 1 &pcfg_pull_up_drv_level_1>;
};
Interface is presented in system:
i2cdetect -l
root@uspd:~# i2cdetect -l
i2c-3 i2c rk3x-i2c I2C adapter
i2c-0 i2c rk3x-i2c I2C adapter
dmesg | grep i2c
[ 2.243214] i2c_dev: i2c /dev entries driver
But as I see on oscilloscope - SDA is changing but SCL is not when i am using command to read something “i2cdetect -a 3”.
In sysfs, after system started SCL pin (<1 RK_PA1 …>) already exported as gpio33, but SDA pin (<1 RK_PA0 …>) is not:
cat /sys/kernel/debug/gpio
gpiochip1: GPIOs 32-63, parent: platform/fe740000.gpio, gpio1:
gpio-33 ( |sysfs ) in hi
gpio-34 ( |sysfs ) in lo
gpio-42 ( |reset ) out hi
Unexporting gpio33 don’t resolve problem.
pinctrl nodes with same pins are disabled or not used at all in device tree (acodec_pins, audiopwm_loutn, audiopwm_rout, can1m0_pins and uart3m0_xfer).
I tested kernel with dts fork .rk356x-4.19 from ‘bsp’ and I2C works here properly.
What could cause this problem?