English

提交设备树 (DT) 绑定补丁

I. 针对补丁提交者

  1. 来自 Submitting patches: the essential guide to getting your code into the kernel 的常规补丁提交规则适用。

  2. 补丁中 Documentation/ 和 include/dt-bindings/ 的部分应该是独立的补丁。绑定补丁的首选主题前缀是

    "dt-bindings: <binding dir>: ..."
    

    少数子系统(如 ASoC、media、regulators、SCSI、SPI 和 UFS)期望基于子系统名称的前缀采用相反的顺序

    "<binding dir>: dt-bindings: ..."
    

    主题的 80 个字符非常宝贵。建议不要使用 “Documentation”、“doc” 或 “YAML”,因为这些是隐含的。所有的绑定都是文档,且所有新的绑定都应该采用设备树 schema 格式。也应避免重复使用 “binding”,因此对于新设备,通常只需例如

    "dt-bindings: iio: adc: Add ROHM BD79100G"
    

    将其他格式转换为 DT schema

    "dt-bindings: iio: adc: adi,ad7476: Convert to DT schema"
    
  3. DT 绑定文件是使用 json-schema 词汇表和 YAML 文件格式以 DT schema 格式编写的。DT 绑定文件必须通过运行以下命令来通过验证

    make dt_binding_check
    

    关于 schema 和工具设置的更多详情,请参阅 Writing Devicetree Bindings in json-schema

  4. DT 绑定文件应该是双重许可的。首选的许可标签是 (GPL-2.0-only OR BSD-2-Clause)。

  5. 将整个补丁系列提交到设备树邮件列表

    并抄送 (Cc:) DT 维护者。使用 scripts/get_maintainer.pl 来确定所有的 DT 维护者。

  6. 补丁中 Documentation/ 的部分应该在实现该绑定的代码之前出现在补丁系列中。

  7. 在芯片或板级 DTS 文件中使用的任何兼容字符串必须预先记录在 Documentation/devicetree/bindings 中相应的 DT 绑定文件中。即使 Linux 设备驱动程序尚未匹配该兼容字符串,此规则也适用。[ 如果未遵循此步骤,checkpatch 将在 commit bff5da4335256513497cc8c79f9a9d1665e09864 (“checkpatch: add DT compatible string documentation checks”) 之后发出警告。 ]

  8. DTS 通常被视为与驱动程序无关的硬件描述,因此任何 DTS 补丁,无论是否使用现有或新的绑定,都应单独发布,或者当与驱动程序补丁组合时,应放在补丁集的末尾,以表明驱动程序对 DTS 没有依赖关系。无论如何,DTS 都将通过单独的树或分支应用,因此不同的顺序会表明该系列不可二分。

    如果驱动程序子系统维护者倾向于应用整个补丁集,而不是补丁集中与他们相关的部分,请将 DTS 补丁拆分为单独的补丁集,并在变更日志或封面信中引用邮件列表上的绑定提交。

  9. 如果已记录的兼容字符串尚未被驱动程序匹配,文档也应包含一个被驱动程序匹配的兼容字符串。

  10. 绑定不仅被 Linux 内核使用,还被多个其他项目积极使用,因此在对现有绑定进行更改时,可能需要格外小心和考虑。

II. 针对内核维护者

  1. 如果您不确定如何审查某个特定的绑定,请回复邮件并向设备树维护者寻求指导。这将有助于他们确定哪些需要优先审查,哪些可以放行。

  2. 对于驱动程序(非子系统)绑定:如果您对该绑定没问题,并且几周后仍未收到设备树维护者的 Acked-by,请直接采纳。

    对于子系统绑定(任何影响多个设备的内容),必须由设备树维护者进行审查。

  3. 对于跨越多个树的系列,绑定补丁应与使用该绑定的驱动程序放在一起。

  4. 然而,DTS 文件永远不应通过驱动程序子系统树应用,而应始终通过平台 SoC 树上的专用分支应用(另请参阅 SoC Subsystem)。

III. 注释

  1. 关于设备树 ABI 的详情,请参阅 Devicetree (DT) ABI

  2. 本文档旨在作为对 2013 年内核峰会上确定的流程的通用介绍。如有疑问,以当前设备树维护者的意见为准,而非本文档。在这种情况下,非常欢迎提交更新本文档的补丁。