Linux 内核 API 从平台驱动获取结构设备
Linux Kernel API to get struct device from platform driver
我想知道是否有一个内核 API 允许根据一些参数获得 struct device
。我正在使用主线内核,版本 3.3。
情况如下:
我已经注册了平台设备 A
并设置了一些与 A 关联的驱动程序数据。A
有多个具有不同 ID 的实例,因此 A(1)、A(2)、A(3).. .
现在,我正在注册平台设备B
。 B
的驱动程序需要拥有与 A(1)
或 A(2)
关联的 struct device
的特定实例或
A(3)
...
所以可以把它想象成 B
以某种方式拥有 A(n)
。我可以实现此目的的一种方法是让 A
驱动程序具有一个全局 struct device
数组来跟踪所有已注册的设备。但是,对于像平台驱动程序这样通用的东西,我想知道内核是否提供了一个 API 来根据一些参数(例如 platform driver
name
和相关的 id
来获得它.
谢谢!
不确定它是否存在。实际上我没有看到什么参数可以用于select一个struct device
实例。
我认为你必须在 A 驱动程序中实现你自己的搜索方法。
在 A 驱动程序中,您跟踪(全局变量)所有实例。
从驱动程序 A 中导出一个函数 find_instance(<parameters>)
并在驱动程序 B 中使用它。
如果我没记错的话,为了查找 I2C 设备,V4L2 框架中有类似的东西。
我想知道是否有一个内核 API 允许根据一些参数获得 struct device
。我正在使用主线内核,版本 3.3。
情况如下:
我已经注册了平台设备 A
并设置了一些与 A 关联的驱动程序数据。A
有多个具有不同 ID 的实例,因此 A(1)、A(2)、A(3).. .
现在,我正在注册平台设备B
。 B
的驱动程序需要拥有与 A(1)
或 A(2)
关联的 struct device
的特定实例或
A(3)
...
所以可以把它想象成 B
以某种方式拥有 A(n)
。我可以实现此目的的一种方法是让 A
驱动程序具有一个全局 struct device
数组来跟踪所有已注册的设备。但是,对于像平台驱动程序这样通用的东西,我想知道内核是否提供了一个 API 来根据一些参数(例如 platform driver
name
和相关的 id
来获得它.
谢谢!
不确定它是否存在。实际上我没有看到什么参数可以用于select一个struct device
实例。
我认为你必须在 A 驱动程序中实现你自己的搜索方法。 在 A 驱动程序中,您跟踪(全局变量)所有实例。
从驱动程序 A 中导出一个函数 find_instance(<parameters>)
并在驱动程序 B 中使用它。
如果我没记错的话,为了查找 I2C 设备,V4L2 框架中有类似的东西。