用于平台设备/ char设备的struct class和sysfs

时间:2014-10-27 14:22:48

标签: linux-kernel linux-device-driver

我创建了一个平台设备驱动程序,它在启动时从设备树初始化。我希望能够作为char驱动程序访问此设备,并试图找出我应该使用的结构条目。

基本上我希望我的设备(在设备树中使用从0x34000000开始的资源)显示为/dev/myDevice中的字符设备。

要做到这一点,我理解我需要使用dev_t注册主要和次要号码。 1)我可以使用platform_device-> dev.devt中的dev_t,如果是这样,我还需要调用`alloc_chrdev_region'还是由内核初始化?

目前我使用它,我仍然会调用alloc_chrdev_region来初始化它,然后我调用cdev_init / cdev_add来创建我的字符设备。

现在我的设备在/ dev中显示为/dev/34000000.myDevice。

2)为什么它在它面前显示其内存资源?

在做了一些阅读之后,我决定尝试创建一个新类和一个新设备(这似乎不正确)以获得/dev/myDevice条目。

我看到struct class *中有一个platform_device->dev.class字段。

3)我是否需要初始化此字段,还是由内核预先初始化?

4)当我已经初始化设备(device_create

时,为什么我需要使用新的'struct class'来调用struct platform_device->dev

dev_tcdevclass之间的联系以及它们与platform_device的关系对我来说有点迷宫。如果有人帮忙解释,那就太好了。

0 个答案:

没有答案