Page 1 of 1

我想同时使用 i2c2_M0 与uart3_M1 的管脚 请问设备数 要怎么修改

Posted: 2025-01-18 8:03
by liaojiededepan
我购买了RV1106G3的Luckfox Pico Ultra

请问 我想同时使用 i2c2_M0 与uart3_M1 的管脚 请问设备数 要怎么修改
我做了以下的尝试不能成功同时打开两个
1.内核我启动了e2prom编译,并硬件连接了个e2prom

2.我做了这样的修改
rv1106.dtsi
Uart3部分 修改前
uart3: serial@ff4d0000 {
compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
reg = <0xff4d0000 0x100>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
dmas = <&dmac 13>, <&dmac 12>;
clock-frequency = <24000000>;
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
clock-names = "baudclk", "apb_pclk";
pinctrl-names = "default";
pinctrl-0 = <&uart3m0_xfer>;
status = "disabled";
};
===============================
修改后 改成使用uart3_m1管脚

923 uart3: serial@ff4d0000 {
924 compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
925 reg = <0xff4d0000 0x100>;
926 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
927 reg-shift = <2>;
928 reg-io-width = <4>;
929 dmas = <&dmac 13>, <&dmac 12>;
930 dma-names = "!tx", "!rx";
931 clock-frequency = <24000000>;
932 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
933 clock-names = "baudclk", "apb_pclk";
934 pinctrl-names = "default";
935 pinctrl-0 = <&uart3m1_xfer>;
936 status = "okay";
937 };
===============================
I2c-2 部分修前
i2c3: i2c@ff460000 {
compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
reg = <0xff460000 0x1000>;
interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
clock-names = "i2c", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&i2c3m0_xfer>;
status = "disabled";
};
=======================
I2c-2 部分修后 挂载E2PROM

771 i2c2: i2c@ff450000 {
772 compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
773 reg = <0xff450000 0x1000>;
774 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
775 #address-cells = <1>;
776 #size-cells = <0>;
777 clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
778 clock-names = "i2c", "pclk";
779 pinctrl-names = "default";
780 pinctrl-0 = <&i2c2m0_xfer>;
781 clock-frequency = <300000>;
782 status = "okay";
783 E2PROM:AT24C256C@50 {
784 compatible = "atmel,24c256";
785 reg = <0x50>;
786 pagesize = <64>;
787 };
788
789 };
=======================


修改后发现 uart3_M1的串口功能可以用,但是i2c_M0 功能用不了
111.jpg
串口打印提示 分配给i2c-2的脚 被ff4d000.serial(就是uart3)占用了

3.在上面的设备树基础上我继续操作
修改 rv1106-luckfox-pico-ultra-ipc.dtsi
修改前
=======================

&uart3 {
pinctrl-0 = <&uart3m0_xfer &uart3m1_xfer>;
};
=======================

修改后
&uart3 {
pinctrl-0 = <&uart3m1_xfer>;
};

发现iic-2 功能可以用了 还检测到了e2prom 并探测出型号
222.jpg
但是串口3 又不能用了
[root@luckfox dev]# stty -F /dev/ttyS3 115200 cs8 -parenb -cstopb
stty: /dev/ttyS3: Input/output error

请问我要同时使用 uart3_M1 与i2c-2-M0 我要怎么改设备树啊?

Re: 我想同时使用 i2c2_M0 与uart3_M1 的管脚 请问设备数 要怎么修改

Posted: 2025-01-18 10:32
by Luckfox Taylor
正常是不能修改RV1106.dtsi文件的,可以参考我们的Wiki试试。
https://wiki.luckfox.com/zh/Luckfox-Pic ... D%E7%BD%AE