您尚未登录。

楼主 # 2024-07-27 23:29:23

ohmyzsh
会员
注册时间: 2024-07-27
已发帖子: 3
积分: 13

荔枝派nano,6.10的linux kernel无法使用i2c。

官方镜像可以识别出i2c设备,6.10的内核输出i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0。硬件、设备树应该没有问题,6.10的.config文件i2c下多了i2c bus multiplexing support选项关闭与否都没办法使用,查看驱动代码基本一致,有没有老哥教一下怎么排查。

离线

#1 2024-07-29 13:48:03

nTliang
会员
注册时间: 2023-04-01
已发帖子: 24
积分: 27

Re: 荔枝派nano,6.10的linux kernel无法使用i2c。

可以对比一下老内核的驱动看看有什么变化,我用的6.1内核IIC功能正常

离线

楼主 #2 2024-07-29 23:34:22

ohmyzsh
会员
注册时间: 2024-07-27
已发帖子: 3
积分: 13

Re: 荔枝派nano,6.10的linux kernel无法使用i2c。

nTliang 说:

可以对比一下老内核的驱动看看有什么变化,我用的6.1内核IIC功能正常

测试了一下发现没办法在dts中变更设备状态,写在dtsi中才能正常使用I2C

		i2c0: i2c@1c27000 {
			compatible = "allwinner,suniv-f1c100s-i2c",
				     "allwinner,sun6i-a31-i2c";
				reg = <0x01c27000 0x400>;
				interrupts = <7>;
				clocks = <&ccu CLK_BUS_I2C0>;
				resets = <&ccu RST_BUS_I2C0>;
				pinctrl-names = "default";
				pinctrl-0 = <&i2c0_pd_pins>;
				status = "okay";
				#address-cells = <1>;
				#size-cells = <0>;
		 };

&i2c0 {
        /*pinctrl-0 = <&i2c0_pd_pins>;
        pinctrl-name = "default";
		status = "okay";*/

        ssd1306:oled@3c{
                compatible = "solomon,ssd1306fb-i2c";
                reg = <0x3c>;
                solomon,height = <64>;
                solomon,width = <128>;
                };
};

离线

#3 2024-07-30 09:30:04

nTliang
会员
注册时间: 2023-04-01
已发帖子: 24
积分: 27

Re: 荔枝派nano,6.10的linux kernel无法使用i2c。

@ohmyzsh
你下面的dts中pinctrl-name少了个s,正确的应该是pinctrl-names

离线

楼主 #4 2024-07-30 19:54:42

ohmyzsh
会员
注册时间: 2024-07-27
已发帖子: 3
积分: 13

Re: 荔枝派nano,6.10的linux kernel无法使用i2c。

nTliang 说:

@ohmyzsh
你下面的dts中pinctrl-name少了个s,正确的应该是pinctrl-names

试了一下确实是少了个s,有没有检查工具能检查出语法问题的 o.0

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn