请教 软件I2C如何配置?
Posted: 2025-09-05 3:13
lyra plus开发板
kernel配置开了软件I2C:
<*> GPIO-based bitbanging I2C
[ ] GPIO-based fault injector
一开始设置了有6个类似这样的软件I2C,在rk3506g-luckfox-lyra-plus.dts里,rk3502.dtsi内aliases加了对应的I2C,可以在/dev下挂载I2C设备。
但是实测发现有部分I2C引脚电平没有上拉,有些又是正常的,硬件上均有4.7k上拉电阻。
想设置软件上拉,就在rk3506-luckfox-lyra.dtsi文件里就加了pinctrl。
然后再刷镜像这个I2C3就没有挂载了
请问有没有完整的软件I2C配置示例可以参考一下,请教上述步骤有哪里搞错了
kernel配置开了软件I2C:
<*> GPIO-based bitbanging I2C
[ ] GPIO-based fault injector
一开始设置了有6个类似这样的软件I2C,在rk3506g-luckfox-lyra-plus.dts里,rk3502.dtsi内aliases加了对应的I2C,可以在/dev下挂载I2C设备。
Code: Select all
aliases {
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
gpio4 = &gpio4;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &i2c7;
i2c8 = &i2c8;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
spi0 = &spi0;
spi1 = &spi1;
spi2 = &fspi;
spi3 = &flexbus_fspi;
spi4 = &flexbus_spi;
};Code: Select all
i2c3: i2c-gpio-3 {
compatible = "i2c-gpio";
gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>, /* PT1_SDA = GPIO4_A1_z */
<&gpio4 0 GPIO_ACTIVE_HIGH>; /* PT1_SCL = GPIO4_A0_z */
i2c-gpio,delay-us = <2>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
};想设置软件上拉,就在rk3506-luckfox-lyra.dtsi文件里就加了pinctrl。
Code: Select all
i2c3: i2c-gpio-3 {
compatible = "i2c-gpio";
gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>, /* PT1_SDA = GPIO4_A1_z */
<&gpio4 0 GPIO_ACTIVE_HIGH>; /* PT1_SCL = GPIO4_A0_z */
i2c-gpio,delay-us = <2>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&gpio_i2c3_scl &gpio_i2c3_sda>;
status = "okay";
};Code: Select all
&pinctrl {
gpio_i2c3 {
gpio_i2c3_sda: gpio-i2c3-sda {
rockchip,pins =
<4 RK_PA1 35 &pcfg_pull_up>;
};
};
gpio_i2c3 {
gpio_i2c3_scl: gpio-i2c3-scl {
rockchip,pins =
<4 RK_PA0 34 &pcfg_pull_up>;
};
};
};请问有没有完整的软件I2C配置示例可以参考一下,请教上述步骤有哪里搞错了