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 11:13] 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 13: | Line 13: | ||
Location for this documents is under ''Documentation/devicetree/bindings/'' | Location for this documents is under ''Documentation/devicetree/bindings/'' | ||
d | d | ||
+ | ` | ||
==== Proposal 1: Convert device tree bindings to DT schema ==== | ==== Proposal 1: Convert device tree bindings to DT schema ==== | ||
Line 31: | Line 32: | ||
* 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 ]]. | * 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 ]]. | ||
- | * demonstrate the knowledge by writing a small patch to convert a ''.txt'' file to yaml. | + | * 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 | * 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 | * 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 | ||
Line 37: | Line 40: | ||
* make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/trivial-devices.yaml | * 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 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 | * 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 | * 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 |