提交设备树(DT)绑定补丁¶
一、对于补丁提交者¶
正常补丁提交规则参见 提交补丁:将代码纳入内核的基本指南。
补丁的 Documentation/ 和 include/dt-bindings/ 部分应单独作为补丁。绑定补丁的首选主题前缀是
"dt-bindings: <binding dir>: ..."少数子系统,如 ASoC、media、regulators 和 SPI,要求前缀的顺序颠倒
"<binding dir>: dt-bindings: ..."主题的 80 个字符非常宝贵。建议不要使用“Documentation”或“doc”,因为这已经暗示了。所有绑定都是文档。也应避免重复“binding”。
DT 绑定文件使用 json-schema 词汇和 YAML 文件格式编写,采用 DT schema 格式。DT 绑定文件必须通过运行以下命令进行验证
make dt_binding_check有关 schema 和工具设置的更多详细信息,请参阅 使用 json-schema 编写设备树绑定。
DT 绑定文件应采用双重许可。首选的许可标签是 (GPL-2.0-only OR BSD-2-Clause)。
将整个系列提交到 devicetree 邮件列表:
并抄送 DT 维护者。使用 scripts/get_maintainer.pl 来识别所有 DT 维护者。
补丁的 Documentation/ 部分应在实现绑定的代码之前提交。
芯片或板级 DTS 文件中使用的任何兼容字符串必须事先在 Documentation/devicetree/bindings 中相应的 DT 绑定文件中记录。即使 Linux 设备驱动程序尚未匹配该兼容字符串,此规则也适用。[ 如果不遵循此步骤,checkpatch 将发出警告,从 commit bff5da4335256513497cc8c79f9a9d1665e09864 (“checkpatch: add DT compatible string documentation checks”)开始。]
DTS 通常被视为独立于驱动程序的硬件描述,因此任何 DTS 补丁,无论使用现有绑定还是新绑定,都应放在补丁集的末尾,以表明驱动程序不依赖于 DTS。DTS 将通过独立的树或分支应用,因此不同的顺序将表明该系列无法进行二分法查找。
如果驱动程序子系统维护者倾向于应用整个集合,而不是补丁集的相关部分,请将 DTS 补丁拆分为单独的补丁集,并在变更日志或附函中引用邮件列表上的绑定提交。
如果文档化的兼容字符串尚未被驱动程序匹配,文档还应包含一个已被驱动程序匹配的兼容字符串。
绑定被除 Linux 内核之外的多个项目积极使用,因此在更改现有绑定时可能需要格外小心和考虑。
二、对于内核维护者¶
如果您不熟悉审查某个绑定,请回复并向 devicetree 维护者寻求指导。这将有助于他们确定哪些需要审查,哪些可以放行。
对于驱动程序(非子系统)绑定:如果您对绑定感到满意,并且在几周后仍未收到 devicetree 维护者的 Acked-by,请继续接受它。
对于子系统绑定(影响多个设备的任何内容),需要由 devicetree 维护者进行审查。
对于通过多棵树的系列,绑定补丁应与使用该绑定的驱动程序一起保留。
然而,DTS 文件绝不应通过驱动程序子系统树应用,而应始终通过平台 SoC 树在专用分支上应用(另请参阅 SoC 子系统)。
三、注意事项¶
有关设备树 ABI 的详细信息,请参阅 设备树(DT)ABI。
本文档旨在作为对 2013 年内核峰会上决定的流程的普遍熟悉。如有疑问,devicetree 维护者当前的说法优先于本文档。在这种情况下,更新本文档的补丁将不胜感激。