按照this教程,我假设我可以简单地将我的属性组分配给默认属性组,如下所示:
static DEVICE_ATTR_RO(status);
static struct attribute *my_dev_attrs[] = {
&dev_attr_status.attr,
NULL
};
ATTRIBUTE_GROUPS(my_dev);
static int probe(struct spi_device *spi) {
...
spi->dev.groups = my_dev_groups;
...
}
字符串
但是在/sys/bus/spi/drivers/my_dev/spi2.0
处没有文件出现。然而,当我这样定义属性时:
int ret
ret = sysfs_create_group(&spi->dev.kobj, &my_dev_group);
if (ret < 0)
return ret;
型
我可以看到并正确访问/sys/bus/spi/drivers/my_dev/spi2.0
上的文件。第一个选项是否需要进一步设置?
1条答案
按热度按时间093gszye1#
struct device
的.groups
字段不应该被直接使用或分配。背后的想法是提供静态属性组,并通过相应struct driver
的.dev_groups
成员分配它们。例如,请参见以下代码。完成这些之后,驱动核心将以非活泼的方式创建和删除它们(这就是为什么该字段出现在开始)。