mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Waqar Hameed <waqar.hameed@axis.com>
To: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Abel Vesa <abelvesa@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: <kernel@axis.com>, <linux-arm-msm@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 00/38] arm: dts: qcom: Format with dtfmt
Date: Fri, 2 Oct 2026 00:36:30 +0200	[thread overview]
Message-ID: <cover.1790892852.git.waqar.hameed@axis.com> (raw)

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@axis.com/

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


             reply	other threads:[~2026-10-01 22:36 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 22:36 Waqar Hameed [this message]
2026-10-01 22:36 ` [PATCH 02/38] arm: dts: qcom: pm8841: Remove superfluous empty lines Waqar Hameed
2026-10-01 22:36 ` [PATCH 01/38] arm: dts: qcom: pm8226: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 03/38] arm: dts: qcom: pm8921: Remove superfluous empty lines Waqar Hameed
2026-10-01 22:36 ` [PATCH 04/38] arm: dts: qcom: pm8941: " Waqar Hameed
2026-10-01 22:36 ` [PATCH 05/38] arm: dts: qcom: pm8084: Remove superfluous empty line Waqar Hameed
2026-10-01 22:36 ` [PATCH 06/38] arm: dts: qcom: apq8026: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 07/38] arm: dts: qcom: apq8026: Add space between OR-operator Waqar Hameed
2026-10-01 22:36 ` [PATCH 09/38] arm: dts: qcom: apq8060: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 08/38] arm: dts: qcom: apq8060: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 11/38] arm: dts: qcom: apq8064: " Waqar Hameed
2026-10-01 22:36 ` [PATCH 10/38] arm: dts: qcom: apq8060: Indent property data with tab Waqar Hameed
2026-10-01 22:36 ` [PATCH 12/38] arm: dts: qcom: apq8064: Remove empty line at end of node Waqar Hameed
2026-10-01 22:36 ` [PATCH 14/38] arm: dts: qcom: apq8064: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 13/38] arm: dts: qcom: apq8064: Add space before line comments Waqar Hameed
2026-10-01 22:36 ` [PATCH 16/38] arm: dts: qcom: ipq4018: Indent closing brace properly Waqar Hameed
2026-10-01 22:36 ` [PATCH 15/38] arm: dts: qcom: apq8064: Remove tab after property name Waqar Hameed
2026-10-01 22:36 ` [PATCH 17/38] arm: dts: qcom: ipq4019: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 18/38] arm: dts: qcom: ipq4019: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 19/38] arm: dts: qcom: ipq4019: Break long property array data Waqar Hameed
2026-10-01 22:36 ` [PATCH 20/38] arm: dts: qcom: ipq8064: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 21/38] arm: dts: qcom: ipq8064: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 23/38] arm: dts: qcom: msm8226: Add space between OR-operator Waqar Hameed
2026-10-01 22:36 ` [PATCH 22/38] arm: dts: qcom: ipq8064: Break long property array data Waqar Hameed
2026-10-01 22:36 ` [PATCH 24/38] arm: dts: qcom: msm8226: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 25/38] arm: dts: qcom: ipq8064: Break long property array data Waqar Hameed
2026-10-01 22:36 ` [PATCH 26/38] arm: dts: qcom: msm8226: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 28/38] arm: dts: qcom: msm8660: Remove space inside array property Waqar Hameed
2026-10-01 22:36 ` [PATCH 27/38] arm: dts: qcom: msm8660: Remove empty line at end of node Waqar Hameed
2026-10-01 22:36 ` [PATCH 30/38] arm: dts: qcom: msm8916: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 29/38] arm: dts: qcom: msm8660: Align closing array bracket Waqar Hameed
2026-10-01 22:36 ` [PATCH 32/38] " Waqar Hameed
2026-10-01 22:36 ` [PATCH 31/38] arm: dts: qcom: msm8960: Properly indent subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 34/38] arm: dts: qcom: msm8974: Align closing brace properly Waqar Hameed
2026-10-01 22:36 ` [PATCH 33/38] arm: dts: qcom: msm8974: Align multiple property data Waqar Hameed
2026-10-01 22:36 ` [PATCH 35/38] arm: dts: qcom: msm8974: Add newline between subnodes Waqar Hameed
2026-10-01 22:36 ` [PATCH 37/38] arm: dts: qcom: sdx65: Remove empty line at end of node Waqar Hameed
2026-10-01 22:36 ` [PATCH 36/38] arm: dts: qcom: sdx55: Properly indent subnode Waqar Hameed
2026-10-01 22:36 ` [PATCH 38/38] arm: dts: qcom: sdx65: Align multiple property data Waqar Hameed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1790892852.git.waqar.hameed@axis.com \
    --to=waqar.hameed@axis.com \
    --cc=abelvesa@kernel.org \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@axis.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®