gpt4 book ai didi

Linux 驱动程序 : device tree and old-style driver instantiation

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:11 24 4
gpt4 key购买 nike

我目前正在使用 Linux(基于 Freescale i.MX6)开发嵌入式设备。我的平台启用了 DT(即所有设备实例化都源自扁平设备树,而不是板初始化源文件)。

在这种情况下,我需要实例化一个设备,该设备使用尚未移植到 DT 的驱动程序……这可能吗?我的意思是:是否可以混合通过设备树实例化的设备和以旧方式实例化的设备(例如,通过 i2c_register_board_info 用于 I2C 设备)?

如果是这样,是否也可以使用通常的方式将平台数据传递给旧式驱动程序(例如,对于 I2C 设备,通过 struct i2c_board_info)?或者,作为基于平台 DT 的平台,struct i2c_board_info 中的 .platform_data 字段将始终为 NULL

您知道网络上有一些示例吗?

谢谢。

最佳答案

我认为您希望以传统方式实例化平台驱动程序,而不是与设备树绑定(bind)。

你应该引用下面这个函数和内核中的用法。

static inline struct platform_device *platform_device_register_data(
struct device *parent, const char *name, int id,
const void *data, size_t size)

引用:https://elixir.bootlin.com/linux/latest/source/include/linux/platform_device.h#L160

可以调用此函数来注册任何平台驱动程序,并且平台数据可以从从设备树 (DT) 探测到的父驱动程序传递给此驱动程序。

关于Linux 驱动程序 : device tree and old-style driver instantiation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32225100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com