我正在研究 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”的来源。
感谢阅读我的主题,抱歉我的英语不好。
最佳答案
探测时平台设备特定数据来自平台设置代码或设备树。 你可以在arch/arm/borad/device文件中找到相关代码 struct platform_device 嵌入了platform_data 结构,您可以在其中将平台相关数据传递给驱动程序。
在现代内核平台中,数据通过设备树传递给设备驱动程序。设备树可以在 /arch/arm/boot/dts/your_device
中找到关于linux - probe() 函数的参数从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37110495/