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? ==== | + | |