This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gsoc:2023-gsoc-device-tree-bindings [2023/02/13 09:30] dbaluta [Proposal 1: Convert device tree bindings to DT schema] |
gsoc:2023-gsoc-device-tree-bindings [2023/03/03 14:07] (current) dbaluta [Proposal 1: Convert device tree bindings to DT schema] |
||
---|---|---|---|
Line 12: | Line 12: | ||
Location for this documents is under ''Documentation/devicetree/bindings/'' | Location for this documents is under ''Documentation/devicetree/bindings/'' | ||
- | d==== Proposal 1: Convert device tree bindings to DT schema ==== | + | d |
+ | ` | ||
+ | ==== Proposal 1: Convert device tree bindings to DT schema ==== | ||
Historically device tree bindings were written in plain ''.txt'' files. These files serve only as documentation but they cannot really be used to validate the syntax used in device tree files. | Historically device tree bindings were written in plain ''.txt'' files. These files serve only as documentation but they cannot really be used to validate the syntax used in device tree files. | ||
Line 27: | Line 29: | ||
You can have a look at this [[https://lore.kernel.org/lkml/20230211134755.86061-1-krzysztof.kozlowski@linaro.org/T/ | example ]]. | You can have a look at this [[https://lore.kernel.org/lkml/20230211134755.86061-1-krzysztof.kozlowski@linaro.org/T/ | example ]]. | ||
- | Some tips for working on this: | + | Tips for writing a good proposal: |
- | * understand basic concepts about writing a [[https://www.kernel.org/doc/html/v5.10/devicetree/writing-schema.html | device tree binding]] file | + | |
- | * start with small and simple ''.txt'' files | + | * understand basic concepts about writing a device tree binding file. Look [[https://www.kernel.org/doc/html/v5.10/devicetree/writing-schema.html | here ]] and [[https://elinux.org/images/6/6b/LPC2018_json-schema_for_Devicetree.pdf | here ]]. |
- | * verify your converted ''.yaml'' file | + | * clone the Linux kernel tree: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git/ |
+ | * demonstrate the knowledge about device tree bindings by writing a small patch to convert a ''.txt'' file to yaml. | ||
+ | * look inside ''Documentation/devicetree/bindings'' | ||
+ | * start with small and simple ''.txt'' file and convert it to yaml | ||
+ | * create a a small [[ http://nickdesaulniers.github.io/blog/2017/05/16/submitting-your-first-patch-to-the-linux-kernel-and-responding-to-feedback/ | patch ]] and review it with the mentor | ||
+ | * verify the patch: | ||
+ | * make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/trivial-devices.yaml | ||
+ | * make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/trivial-devices.yaml | ||
+ | * make DT_CHECKER_FLAGS=-m dt_binding_check | ||
+ | * send the patch to Linux kernel mailing list and work with the community to get it merged | ||
+ | * before submitting the proposal discuss with the mentor about a plan and a set of ''.txt'' files to work on | ||
+ | |||
+ | How to find ideas of patches to create: | ||
+ | |||
+ | 1) Look for small ''txt'' files that might be easier to convert. | ||
+ | * Suggestion is for files to have in mind ''Documentation/devicetree/bindings/{sound|iio|hwmon,regulator, rtc, watchdog}''. | ||
+ | * Use ''git log'' and look into history to see how similar patches where done. | ||
+ | * For example ''git log 715f45854f559f361d2c222a0353a3a1818875ed'' | ||
+ | |||
+ | |||
+ | 2) Cleanup all easy dtbs_check warnings for the platforms, like node | ||
+ | names, unused/not allowed properties. Run ''make dtbs_check''. | ||
Code license: GPL-2.0 OR BSD-3-Clause | Code license: GPL-2.0 OR BSD-3-Clause |