Failed to register i2c client错误之解决

4 篇文章 0 订阅
1 篇文章 0 订阅

Failed to register i2c client错误

 

 

最近最韦东山的I2C实验,用的是3.4.2内核

# insmod at24cxx_dev.ko出错提示

i2c i2c-0: Failed to register i2c clientat24c08 at 0x50 (-16)

 

打log跟踪,是i2c_new_device函数中i2c_check_addr_busy后打出来的,发现将地址改为0x60可以正常加载,看来是有人占用了0x50这个地址

 

make menuconfig发现I2C EEPROMSfrom most vendors是自动勾选的。

Device Drivers--->Miscdevices--->EEPROM support-->


将arch/arm/mach-s3c24xx的Kconfig中将select  EEPROM_AT24注释掉即可。

重新make menuconfig看一下:


 

发现还是不行0x50地址还是被占用,发现arch/arm/mach-s3c24xx/mach-mini2440.c

static struct i2c_board_infomini2440_i2c_devs[] __initdata = {

       {

               I2C_BOARD_INFO("24c08", 0x50),

                .platform_data = &at24c08,

       },

};

原来是它使用这个地址。看来是因为我用的机器ID是7cf所以会出这个问题machid=7cf。

在函数mini2440_init中

将此行注释掉i2c_register_board_info(0,mini2440_i2c_devs,ARRAY_SIZE(mini2440_i2c_devs));

问题解决。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值