[PATCH 00/38] arm: dts: qcom: Format with dtfmt
From: Waqar Hameed
Date: Thu Oct 01 2026 - 18:39:07 EST
I was looking through the notes for the last Devicetree microconference
at Linux Plumbers (LPC) 2025 [1], and realized that the tool I have been
working on might be of interest here: dtfmt - a Devicetree Source
formatter [2].
dtfmt uses a parser with lexical grammar (tree-sitter) directly ported
from the actual Device Tree Compiler's (dtc) lexer/parser, also
(hand)written by me [3]. It is primarily designed for the Linux kernel
and currently parses all 6872 devicetree files in the tree successfully
(found with `find . -iregex ".+\.dts[io]?$"`).
This tool was developed out of frustration when reviewing devicetree
patches internally at my company Axis. I would have published it earlier
if I was aware of the on-going discussions at LPC 2025. It only caught
my attention since I'm planning to attend LPC this year (especially the
Devicetree microconference and would therefore love to discuss this more
in-person!).
This patch series is only a small demonstration of dtfmt, primarily to
get Konrad Dybcio in the "To:"-field (who did the presentation on LPC
2025). Obviously one can run dtfmt for all files and generate a much
bigger diff. There have been patches sent for
`arch/arm64/boot/dts/exynos/` previously [4].
Please note that since we don't currently have a _definitive_ style
guide for Devictree Source files, dtfmt tries to be pragmatic and try to
"guess" the intended style (e.g. alignment of arrays and comma separated
property data). Some things have been left out (for now) or manually
edited, because it's too hard to implement without any concrete style
decisions in place (e.g. alignment of comments, long line wrapping
etc.). dtfmt will continue to develop and will always align with the
Linux kernel. Feedback (and collaboration) is therefore greatly
appreciated!
[1] https://lpc.events/event/19/sessions/237/attachments/1713/4459/Notes%20-%20Devicetree%20MC%20-%20LPC%202025.pdf
[2] https://codeberg.org/whame/dtfmt
Mirror: https://github.com/whame/dtfmt
[3] https://codeberg.org/whame/tree-sitter-devicetree
Mirror: https://github.com/whame/tree-sitter-devicetree
[4] https://lore.kernel.org/lkml/cover.1790629313.git.waqar.hameed@xxxxxxxx/
Waqar Hameed (38):
arm: dts: qcom: pm8226: Add newline between subnodes
arm: dts: qcom: pm8841: Remove superfluous empty lines
arm: dts: qcom: pm8921: Remove superfluous empty lines
arm: dts: qcom: pm8941: Remove superfluous empty lines
arm: dts: qcom: pm8084: Remove superfluous empty line
arm: dts: qcom: apq8026: Add newline between subnodes
arm: dts: qcom: apq8026: Add space between OR-operator
arm: dts: qcom: apq8060: Add newline between subnodes
arm: dts: qcom: apq8060: Align multiple property data
arm: dts: qcom: apq8060: Indent property data with tab
arm: dts: qcom: apq8064: Add newline between subnodes
arm: dts: qcom: apq8064: Remove empty line at end of node
arm: dts: qcom: apq8064: Add space before line comments
arm: dts: qcom: apq8064: Align multiple property data
arm: dts: qcom: apq8064: Remove tab after property name
arm: dts: qcom: ipq4018: Indent closing brace properly
arm: dts: qcom: ipq4019: Add newline between subnodes
arm: dts: qcom: ipq4019: Align multiple property data
arm: dts: qcom: ipq4019: Break long property array data
arm: dts: qcom: ipq8064: Add newline between subnodes
arm: dts: qcom: ipq8064: Align multiple property data
arm: dts: qcom: ipq8064: Break long property array data
arm: dts: qcom: msm8226: Add space between OR-operator
arm: dts: qcom: msm8226: Add newline between subnodes
arm: dts: qcom: ipq8064: Break long property array data
arm: dts: qcom: msm8226: Align multiple property data
arm: dts: qcom: msm8660: Remove empty line at end of node
arm: dts: qcom: msm8660: Remove space inside array property
arm: dts: qcom: msm8660: Align closing array bracket
arm: dts: qcom: msm8916: Add newline between subnodes
arm: dts: qcom: msm8960: Properly indent subnodes
arm: dts: qcom: msm8660: Align closing array bracket
arm: dts: qcom: msm8974: Align multiple property data
arm: dts: qcom: msm8974: Align closing brace properly
arm: dts: qcom: msm8974: Add newline between subnodes
arm: dts: qcom: sdx55: Properly indent subnode
arm: dts: qcom: sdx65: Remove empty line at end of node
arm: dts: qcom: sdx65: Align multiple property data
arch/arm/boot/dts/qcom/pm8226.dtsi | 5 +
arch/arm/boot/dts/qcom/pm8841.dtsi | 2 -
arch/arm/boot/dts/qcom/pm8921.dtsi | 2 -
arch/arm/boot/dts/qcom/pm8941.dtsi | 3 -
arch/arm/boot/dts/qcom/pma8084.dtsi | 1 -
.../dts/qcom/qcom-apq8026-asus-sparrow.dts | 32 +++++
.../boot/dts/qcom/qcom-apq8026-lg-lenok.dts | 27 +++++
.../qcom/qcom-apq8026-samsung-milletwifi.dts | 4 +-
.../dts/qcom/qcom-apq8060-dragonboard.dts | 54 ++++++---
.../dts/qcom/qcom-apq8064-asus-nexus7-flo.dts | 7 +-
.../qcom-apq8064-sony-xperia-lagan-yuga.dts | 1 -
arch/arm/boot/dts/qcom/qcom-apq8064.dtsi | 114 +++++++++---------
.../boot/dts/qcom/qcom-ipq4018-ap120c-ac.dtsi | 3 +-
.../boot/dts/qcom/qcom-ipq4019-ap.dk01.1.dtsi | 1 +
.../boot/dts/qcom/qcom-ipq4019-ap.dk04.1.dtsi | 11 +-
.../dts/qcom/qcom-ipq4019-ap.dk07.1-c1.dts | 3 +-
arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi | 16 ++-
arch/arm/boot/dts/qcom/qcom-ipq8064-v1.0.dtsi | 1 +
arch/arm/boot/dts/qcom/qcom-ipq8064-v2.0.dtsi | 1 +
arch/arm/boot/dts/qcom/qcom-ipq8064.dtsi | 29 +++--
.../qcom-msm8226-samsung-matisse-common.dtsi | 4 +-
arch/arm/boot/dts/qcom/qcom-msm8226.dtsi | 18 ++-
arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts | 2 +-
arch/arm/boot/dts/qcom/qcom-msm8660.dtsi | 6 +-
arch/arm/boot/dts/qcom/qcom-msm8916-smp.dtsi | 3 +
arch/arm/boot/dts/qcom/qcom-msm8960-cdp.dts | 18 +--
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 24 +++-
arch/arm/boot/dts/qcom/qcom-sdx55-t55.dts | 10 +-
arch/arm/boot/dts/qcom/qcom-sdx65.dtsi | 14 +--
29 files changed, 264 insertions(+), 152 deletions(-)
base-commit: 6c2cb8b8b843d216ab549b678a0d8831c43153e0
--
2.43.0