User Tools

Site Tools


gsoc:2023-gsoc-device-tree-bindings

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc:2023-gsoc-device-tree-bindings [2023/01/19 09:35]
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 9: Line 9:
 ===== Device tree bindings ===== ===== Device tree bindings =====
  
-**Proposals to be updated**+A device tree bindings file offers information about the properties supported by Linux kernel device tree blob. 
  
 +Location for this documents is under ''​Documentation/​devicetree/​bindings/''​
 +d
 +`
 ==== Proposal 1: Convert device tree bindings to DT schema ==== ==== 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.
 +
 +In order to improve validation of dts files, Linux kernel switched to writing device tree bindings using [[ https://​www.kernel.org/​doc/​Documentation/​devicetree/​writing-schema.rst | json-schema]].
 +
 +The goal of the project is to convert as much ''​.txt''​ files into ''​.yaml''​ json-schema files. ​
 +
 +''​
 +$ linux/​Documentation/​devicetree/​bindings$ find . -name '​*.txt'​ | wc -l
 +1795
 +''​
 +
 +You can have a look at this [[https://​lore.kernel.org/​lkml/​20230211134755.86061-1-krzysztof.kozlowski@linaro.org/​T/​ | example ]].
 +
 +Tips for writing a good proposal:
 +
 +  * 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 ]].
 +  * 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''​.
  
  
gsoc/2023-gsoc-device-tree-bindings.1674120932.txt.gz ยท Last modified: 2023/01/19 09:35 by dbaluta