This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gsoc:2024-gsoc-device-tree-bindings [2024/02/08 12:15] dbaluta [Proposal 1: Convert device tree bindings to DT schema] |
gsoc:2024-gsoc-device-tree-bindings [2024/05/23 12:32] (current) dbaluta [Proposal 1: Convert device tree bindings to DT schema] |
||
---|---|---|---|
Line 11: | Line 11: | ||
A device tree bindings file offers information about the properties supported by Linux kernel device tree blob. | 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/'' | + | Location for this documents is under ''Documentation/devicetree/bindings/''. |
- | d | + | |
- | ` | + | |
- | + | ||
- | **To be updated** | + | |
==== Proposal 1: Convert device tree bindings to DT schema ==== | ==== Proposal 1: Convert device tree bindings to DT schema ==== | ||
1 contributor medium-size (175hours) | 1 contributor medium-size (175hours) | ||
+ | |||
Level of difficulty: Intermediate | Level of difficulty: Intermediate | ||
Line 33: | 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 ]] of a conversion patch looks like. |
- | Tips for writing a good proposal: | + | Before writing your proposal you need to: |
- | * 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 ]]. | + | - Watch this [[https://www.youtube.com/watch?v=JrwZ4xLBU38|presentation]] from Krzysztof and get a feel of the work should be done in the project. |
- | * clone the Linux kernel tree: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git/ | + | - Write an email to project Mentor announcing your intention to work on the proposal. |
- | * demonstrate the knowledge about device tree bindings by writing a small patch to convert a ''.txt'' file to yaml. | + | - Create a small patch that converts a device tree binding ''.txt'' file to ''yaml'' |
- | * look inside ''Documentation/devicetree/bindings'' | + | |
- | * start with small and simple ''.txt'' file and convert it to yaml | + | How to create a small patch? |
- | * 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: | + | - clone the Linux kernel tree: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git/ |
+ | - look inside ''Documentation/devicetree/bindings'' | ||
+ | * start with small and simple ''.txt'' file and convert it to yaml | ||
+ | * discuss with your mentor about your chosen file and after that start working on the patch | ||
+ | - Watch again the [[https://www.youtube.com/watch?v=JrwZ4xLBU38|presentation]] and read about how to create your first [[ http://nickdesaulniers.github.io/blog/2017/05/16/submitting-your-first-patch-to-the-linux-kernel-and-responding-to-feedback/ | patch ]]. | ||
+ | - Review patch your mentor by email first and after that send it to community | ||
+ | - Always verify your patch before submitting for review | ||
* 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 | * 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: | + | Desired knowledge: C, shell scripting, make, git |
- | 1) Look for small ''txt'' files that might be easier to convert. | + | Code license: GPL-2.0-only OR BSD-2-Clause |
- | * 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''. | + | |
- | + | ||
- | Desired knowledge: C, shell scripting, make, git | + | |
- | Code license: GPL-2.0 OR BSD-3-Clause | + | |
The project is considered successful if the code is accepted into mainline Linux kernel tree. | The project is considered successful if the code is accepted into mainline Linux kernel tree. | ||
Line 69: | Line 59: | ||
- | ==== How do I get started? ==== | + | |