返回信息流I2C设备添加函数如下:
static int i2cdev_attach_adapter(struct device *dev, void *dummy)
{
struct i2c_adapter *adap;
struct i2c_dev *i2c_dev;
int res;
if (dev->type != &i2c_adapter_type)
return 0;
adap = to_i2c_adapter(dev);
i2c_dev = get_free_i2c_dev(adap);
if (IS_ERR(i2c_dev))
return PTR_ERR(i2c_dev);
/* register this i2c device with the driver core */
i2c_dev->dev = device_create(i2c_dev_class, &adap->dev,
MKDEV(I2C_MAJOR, adap->nr), NULL,
"i2c-%d", adap->nr);
if (IS_ERR(i2c_dev->dev)) {
res = PTR_ERR(i2c_dev->dev);
goto error;
}
res = device_create_file(i2c_dev->dev, &dev_attr_name);
if (res)
goto error_destroy;
pr_debug("i2c-dev: adapter [%s] registered as minor %d\n",
adap->name, adap->nr);
return 0;
error_destroy:
device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr));
error:
return_i2c_dev(i2c_dev);
return res;
}
内核启动过程中打印了如下信息:
<7>[ 4.885186] i2c-dev: adapter [s3c2410-i2c] registered as minor 1
<7>[ 4.885352] i2c-dev: adapter [s3c2410-i2c] registered as minor 3
<7>[ 4.885509] i2c-dev: adapter [s3c2410-i2c] registered as minor 4
<7>[ 4.885668] i2c-dev: adapter [s3c2410-i2c] registered as minor 5
<7>[ 4.885836] i2c-dev: adapter [s3c2410-i2c] registered as minor 7
按上述过程描述,应该在/dev/下面产生一个i2c-1的设备节点,然后没有产生,仅仅产生了3 4 5 7的节点,请问这种情况一般因为什么?
另外还有一些问题希望有一个会linux驱动开发的指导一下,QQ五六22九九528,可有偿求助。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #16436同步于 2017/5/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【问题】Linux驱动开发
lxylzxc
2017/5/5镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复