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:26] 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 ==== | ==== Proposal 1: Convert device tree bindings to DT schema ==== | ||
| Line 25: | Line 27: | ||
| '' | '' | ||
| - | 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 ]]. |
| + | |||
| + | 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''. | ||
| Code license: GPL-2.0 OR BSD-3-Clause | Code license: GPL-2.0 OR BSD-3-Clause | ||