我正在学习linux设备驱动程序。目前,我大致了解设备驱动程序的流程,但我不知道probe()函数如何获取其参数。
例如,这是我的代码,它基于内核3.10。
static int gpio_led_probe(struct platform_device *pdev) {
struct gpio_led_platform_data *pdata = pdev->dev.platform_data;
struct gpio_leds_priv *priv;
....
priv = gpio_leds_create_of(pdev);
....
}
就像这样,论证' pdev'用于各种来源。当我调用probe()并调用它的角色时,我会强调,但我找不到数据的位置' pdev'来自。
感谢您阅读我的帖子,抱歉我的英语不好。
答案 0 :(得分:1)
在现代内核中,平台数据通过设备树传递给设备驱动程序。设备树可以在 / arch / arm / boot / dts / your_device
中找到答案 1 :(得分:0)
您可以通过填写platform_device结构来提供平台设备信息,或者您必须在设备树中提供设备信息,在系统启动期间,将根据设备树信息填充platform_device结构。在最新的内核中,我们通常使用设备树获取设备信息。