LKML Archive on lore.kernel.org
 help / color / Atom feed
From: Andrew Jeffery <andrew@aj.id.au>
To: linux-aspeed@lists.ozlabs.org
Cc: Andrew Jeffery <andrew@aj.id.au>,
	robh+dt@kernel.org, mark.rutland@arm.com, joel@jms.id.au,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, anoo@us.ibm.com,
	a.filippov@yadro.com, arnd@arndb.de, yang.brianc.w@inventec.com,
	minyard@acm.org, gregkh@linuxfoundation.org,
	haiyue.wang@linux.intel.com, wangzqbj@inspur.com,
	chen.kenyy@inventec.com, linus.walleij@linaro.org,
	linux-gpio@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net, venture@google.com,
	sschaeck@cisco.com, taoren@fb.com, xow@google.com,
	yao.yuan@linaro.org
Subject: [RFC-ish PATCH 00/17] Clean up ASPEED devicetree warnings
Date: Fri, 26 Jul 2019 15:09:42 +0930
Message-ID: <20190726053959.2003-1-andrew@aj.id.au> (raw)

Hello,

The aim of this series is to minimise/eliminate all the warnings from the
ASPEED devicetrees. It mostly achieves its goal, as outlined below.

Using `aspeed_g5_defconfig` we started with the follow warning count:

    $ make dtbs 2>&1 >/dev/null | wc -l
    218

and after the full series is applied we have:

    $ make dtbs 2>&1 >/dev/null | wc -l
    2

for a 100x reduction.

Getting there though isn't without some potential controversy, which I've saved
for the last half of the series. The following patches I think are in pretty
good shape:

  ARM: dts: aspeed-g5: Move EDAC node to APB
  ARM: dts: aspeed-g5: Use recommended generic node name for SDMC
  ARM: dts: aspeed-g5: Fix aspeed,external-nodes description
  ARM: dts: vesnin: Add unit address for memory node
  ARM: dts: fp5280g2: Cleanup gpio-keys-polled properties
  ARM: dts: swift: Cleanup gpio-keys-polled properties
  ARM: dts: witherspoon: Cleanup gpio-keys-polled properties
  ARM: dts: aspeed: Cleanup lpc-ctrl and snoop regs
  ARM: dts: ibm-power9-dual: Add a unit address for OCC nodes

With these patches applied we get to:

    $ make dtbs 2>&1 >/dev/null | wc -l
    144

So they make a dent, but fail to clean up the bulk of the issues. From here
I've mixed in some binding and driver changes with subsequent updates to the
devicetrees:

  dt-bindings: pinctrl: aspeed: Add reg property as a hint
  dt-bindings: misc: Document reg for aspeed,p2a-ctrl nodes
  ARM: dts: aspeed: Add reg hints to syscon children
  dt-bindings: ipmi: aspeed: Introduce a v2 binding for KCS
  ipmi: kcs: Finish configuring ASPEED KCS device before enable
  ipmi: kcs: aspeed: Implement v2 bindings
  ARM: dts: aspeed-g5: Change KCS nodes to v2 binding
  ARM: dts: aspeed-g5: Sort LPC child nodes by unit address

By `dt-bindings: ipmi: aspeed: Introduce a v2 binding for KCS` the warnings are
reduced to:

    $ make dtbs 2>&1 >/dev/null | wc -l
    125

The bang-for-buck is in fixing up the KCS bindings which removes all-but-two of
the remaining warnings (which we can't feasibly remove), but doing so forces
code changes (which I'd avoided up until this point).

Reflecting broadly on the fixes, I think I've made a mistake way back by using
syscon/simple-mfds to expose the innards of the SCU and LPC controllers in the
devicetree. This series cleans up what's currently there, but I have half a
mind to rev the SCU and LPC bindings to not use simple-mfd and instead have a
driver implementation that uses `platform_device_register_full()` or similar to
deal with the mess.

Rob - I'm looking for your thoughts here and on the series, I've never felt
entirely comfortable with what I cooked up. Your advice would be appreciated.

Anyway, everyone, please let me know your thoughts on the bits relevant to you.
If we can agree on a way forward I'll split up the series for subsequent
submissions so it isn't such a spam-fest.

Cheers,

Andrew

Andrew Jeffery (17):
  ARM: dts: aspeed-g5: Move EDAC node to APB
  ARM: dts: aspeed-g5: Use recommended generic node name for SDMC
  ARM: dts: aspeed-g5: Fix aspeed,external-nodes description
  ARM: dts: vesnin: Add unit address for memory node
  ARM: dts: fp5280g2: Cleanup gpio-keys-polled properties
  ARM: dts: swift: Cleanup gpio-keys-polled properties
  ARM: dts: witherspoon: Cleanup gpio-keys-polled properties
  ARM: dts: aspeed: Cleanup lpc-ctrl and snoop regs
  ARM: dts: ibm-power9-dual: Add a unit address for OCC nodes
  dt-bindings: pinctrl: aspeed: Add reg property as a hint
  dt-bindings: misc: Document reg for aspeed,p2a-ctrl nodes
  ARM: dts: aspeed: Add reg hints to syscon children
  dt-bindings: ipmi: aspeed: Introduce a v2 binding for KCS
  ipmi: kcs: Finish configuring ASPEED KCS device before enable
  ipmi: kcs: aspeed: Implement v2 bindings
  ARM: dts: aspeed-g5: Change KCS nodes to v2 binding
  ARM: dts: aspeed-g5: Sort LPC child nodes by unit address

 .../bindings/ipmi/aspeed-kcs-bmc.txt          |  20 ++-
 .../bindings/misc/aspeed-p2a-ctrl.txt         |   1 +
 .../pinctrl/aspeed,ast2400-pinctrl.yaml       |   3 +
 .../pinctrl/aspeed,ast2500-pinctrl.yaml       |   3 +
 .../dts/aspeed-bmc-arm-centriq2400-rep.dts    |   4 -
 .../aspeed-bmc-arm-stardragon4800-rep2.dts    |   4 -
 arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts |   4 -
 .../arm/boot/dts/aspeed-bmc-facebook-yamp.dts |   4 -
 .../boot/dts/aspeed-bmc-inspur-fp5280g2.dts   |   6 -
 .../arm/boot/dts/aspeed-bmc-intel-s2600wf.dts |   4 -
 arch/arm/boot/dts/aspeed-bmc-opp-lanyang.dts  |   4 -
 arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts  |   4 -
 arch/arm/boot/dts/aspeed-bmc-opp-swift.dts    |   6 -
 arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts   |   2 +-
 .../boot/dts/aspeed-bmc-opp-witherspoon.dts   |   6 -
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts    |   2 -
 arch/arm/boot/dts/aspeed-g4.dtsi              |  21 ++-
 arch/arm/boot/dts/aspeed-g5.dtsi              |  73 ++++----
 arch/arm/boot/dts/ibm-power9-dual.dtsi        |   4 +-
 drivers/char/ipmi/kcs_bmc_aspeed.c            | 163 ++++++++++++++----
 20 files changed, 205 insertions(+), 133 deletions(-)

-- 
2.20.1


             reply index

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-26  5:39 Andrew Jeffery [this message]
2019-07-26  5:39 ` [PATCH 01/17] ARM: dts: aspeed-g5: Move EDAC node to APB Andrew Jeffery
2019-07-29 17:26   ` Stefan Schaeckeler (sschaeck)
2019-07-26  5:39 ` [PATCH 02/17] ARM: dts: aspeed-g5: Use recommended generic node name for SDMC Andrew Jeffery
2019-07-29 17:29   ` Stefan Schaeckeler (sschaeck)
2019-07-26  5:39 ` [PATCH 03/17] ARM: dts: aspeed-g5: Fix aspeed,external-nodes description Andrew Jeffery
2019-07-26  5:39 ` [PATCH 04/17] ARM: dts: vesnin: Add unit address for memory node Andrew Jeffery
2019-07-26  7:56   ` Alexander A. Filippov
2019-07-26  5:39 ` [PATCH 05/17] ARM: dts: fp5280g2: Cleanup gpio-keys-polled properties Andrew Jeffery
2019-07-26  5:39 ` [PATCH 06/17] ARM: dts: swift: " Andrew Jeffery
2019-07-26  5:39 ` [PATCH 07/17] ARM: dts: witherspoon: " Andrew Jeffery
2019-07-26  5:39 ` [PATCH 08/17] ARM: dts: aspeed: Cleanup lpc-ctrl and snoop regs Andrew Jeffery
2019-07-26  5:39 ` [PATCH 09/17] ARM: dts: ibm-power9-dual: Add a unit address for OCC nodes Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 10/17] dt-bindings: pinctrl: aspeed: Add reg property as a hint Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 11/17] dt-bindings: misc: Document reg for aspeed,p2a-ctrl nodes Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 12/17] ARM: dts: aspeed: Add reg hints to syscon children Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 13/17] dt-bindings: ipmi: aspeed: Introduce a v2 binding for KCS Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 14/17] ipmi: kcs: Finish configuring ASPEED KCS device before enable Andrew Jeffery
2019-07-26 17:04   ` Wang, Haiyue
2019-07-26 17:24     ` Wang, Haiyue
2019-07-26  5:39 ` [RFC PATCH 15/17] ipmi: kcs: aspeed: Implement v2 bindings Andrew Jeffery
2019-07-26 17:30   ` Wang, Haiyue
2019-07-26  5:39 ` [RFC PATCH 16/17] ARM: dts: aspeed-g5: Change KCS nodes to v2 binding Andrew Jeffery
2019-07-26  5:39 ` [RFC PATCH 17/17] ARM: dts: aspeed-g5: Sort LPC child nodes by unit address Andrew Jeffery
2019-07-29 21:55 ` [RFC-ish PATCH 00/17] Clean up ASPEED devicetree warnings Linus Walleij
2019-07-30  0:49   ` Andrew Jeffery
2019-07-30  0:53 ` Rob Herring
2019-07-30  1:09   ` Andrew Jeffery
2019-08-02  5:51     ` Joel Stanley
2019-08-05  0:48       ` Andrew Jeffery

Reply instructions:

You may reply publically 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=20190726053959.2003-1-andrew@aj.id.au \
    --to=andrew@aj.id.au \
    --cc=a.filippov@yadro.com \
    --cc=anoo@us.ibm.com \
    --cc=arnd@arndb.de \
    --cc=chen.kenyy@inventec.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=haiyue.wang@linux.intel.com \
    --cc=joel@jms.id.au \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=minyard@acm.org \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=robh+dt@kernel.org \
    --cc=sschaeck@cisco.com \
    --cc=taoren@fb.com \
    --cc=venture@google.com \
    --cc=wangzqbj@inspur.com \
    --cc=xow@google.com \
    --cc=yang.brianc.w@inventec.com \
    --cc=yao.yuan@linaro.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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git