linux-hwmon.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Jeffery <andrew@codeconstruct.com.au>
To: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	Linus Walleij <linusw@kernel.org>
Cc: Joel Stanley <joel@jms.id.au>,
	linux-hwmon@vger.kernel.org,  devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	 openbmc@lists.ozlabs.org, linux-gpio@vger.kernel.org,
	 linux-mmc@vger.kernel.org, linux-crypto@vger.kernel.org,
	 linux-iio@vger.kernel.org,
	Andrew Jeffery <andrew@codeconstruct.com.au>
Subject: [PATCH RFC 03/16] pinctrl: aspeed: g5: Allow use of LPC node instead of LPC host controller
Date: Thu, 11 Dec 2025 17:45:45 +0900	[thread overview]
Message-ID: <20251211-dev-dt-warnings-all-v1-3-21b18b9ada77@codeconstruct.com.au> (raw)
In-Reply-To: <20251211-dev-dt-warnings-all-v1-0-21b18b9ada77@codeconstruct.com.au>

There's currently a wart where the Aspeed LPC host controller has no
binding specified, but the pinctrl binding depends on referencing its
node.

Allow specification of a phandle to the parent LPC controller instead.
Fall back to testing for a compatible parent node if the provided
phandle doesn't directly resolve to the LPC controller node.

Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
---
 drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c b/drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c
index d4c364d19d64..7d818b4da1e3 100644
--- a/drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c
+++ b/drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c
@@ -2648,24 +2648,34 @@ static struct regmap *aspeed_g5_acquire_regmap(struct aspeed_pinmux_data *ctx,
 	}
 
 	if (ip == ASPEED_IP_LPC) {
-		struct device_node *np;
+		struct device_node *np, *rnp;
 		struct regmap *map;
 
 		np = of_parse_phandle(ctx->dev->of_node,
 					"aspeed,external-nodes", 1);
-		if (np) {
-			if (!of_device_is_compatible(np->parent, "aspeed,ast2500-lpc-v2"))
-				return ERR_PTR(-ENODEV);
-
-			map = syscon_node_to_regmap(np->parent);
-			of_node_put(np);
-			if (IS_ERR(map))
-				return map;
-		} else
+		if (!np)
 			return ERR_PTR(-ENODEV);
 
+		if (of_device_is_compatible(np, "aspeed,ast2500-lpc-v2")) {
+			rnp = np;
+		} else if (of_device_is_compatible(np->parent, "aspeed,ast2500-lpc-v2")) {
+			/* Maintain compatibility with old aspeed,ast2500-lhc node */
+			rnp = np->parent;
+		} else {
+			map = ERR_PTR(-ENODEV);
+			goto put_external_node;
+		}
+
+		map = syscon_node_to_regmap(rnp);
+		if (IS_ERR(map))
+			goto put_external_node;
+
 		ctx->maps[ASPEED_IP_LPC] = map;
 		dev_dbg(ctx->dev, "Acquired LPC regmap");
+
+put_external_node:
+		of_node_put(np);
+
 		return map;
 	}
 

-- 
2.47.3


  parent reply	other threads:[~2025-12-11  8:46 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-11  8:45 [PATCH RFC 00/16] Eliminate warnings for AST2500 and AST2600 EVB devicetrees Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 01/16] dt-bindings: hwmon: Convert aspeed,ast2400-pwm-tacho to DT schema Andrew Jeffery
2025-12-11 20:27   ` Guenter Roeck
2025-12-12  5:53     ` Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 02/16] pinctrl: aspeed: g5: Constrain LPC binding revision workaround to AST2500 Andrew Jeffery
2025-12-11  8:45 ` Andrew Jeffery [this message]
2025-12-11  8:45 ` [PATCH RFC 04/16] ARM: dts: aspeed: g5: Use LPC phandle for pinctrl aspeed,external-nodes Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 05/16] ARM: dts: aspeed: Remove unspecified LPC host controller node Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 06/16] dt-bindings: mmc: Switch ref to sdhci-common.yaml Andrew Jeffery
2025-12-11 11:31   ` Ulf Hansson
2025-12-11 15:57   ` Rob Herring (Arm)
2025-12-11 17:03     ` Rob Herring
2025-12-11  8:45 ` [PATCH RFC 07/16] ARM: dts: aspeed: Remove sdhci-drive-type property from AST2600 EVB Andrew Jeffery
2025-12-11 11:31   ` Ulf Hansson
2025-12-11  8:45 ` [PATCH RFC 08/16] ARM: dts: aspeed: Use specified wp-inverted property for " Andrew Jeffery
2025-12-11 11:31   ` Ulf Hansson
2025-12-11  8:45 ` [PATCH RFC 09/16] dt-bindings: bus: aspeed: Require syscon for AST2600 AHB controller Andrew Jeffery
2025-12-11 19:56   ` Rob Herring (Arm)
2025-12-11  8:45 ` [PATCH RFC 10/16] dt-bindings: crypto: Document aspeed,ahbc property for Aspeed ACRY Andrew Jeffery
2025-12-11 19:57   ` Rob Herring (Arm)
2025-12-11  8:45 ` [PATCH RFC 11/16] ARM: dts: aspeed: Drop syscon compatible from EDAC in g6 dtsi Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 12/16] ARM: dts: aspeed: g6: Drop unspecified aspeed,ast2600-udma node Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 13/16] ARM: dts: aspeed: ast2600-evb: Tidy up A0 work-around for UART5 Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 14/16] dt-bindings: iio: adc: Allow interrupts property for AST2600 Andrew Jeffery
2025-12-11 19:57   ` Rob Herring (Arm)
2025-12-11  8:45 ` [PATCH RFC 15/16] ARM: dts: aspeed: g6: Drop clocks property from arm,armv7-timer Andrew Jeffery
2025-12-11  8:45 ` [PATCH RFC 16/16] dt-bindings: mfd: Document smp-memram node for AST2600 SCU Andrew Jeffery
2025-12-11 15:57   ` Rob Herring (Arm)
2025-12-12  5:57     ` Andrew Jeffery
2025-12-11 14:07 ` [PATCH RFC 00/16] Eliminate warnings for AST2500 and AST2600 EVB devicetrees Rob Herring
2025-12-12 15:06 ` Rob Herring

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=20251211-dev-dt-warnings-all-v1-3-21b18b9ada77@codeconstruct.com.au \
    --to=andrew@codeconstruct.com.au \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=joel@jms.id.au \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=openbmc@lists.ozlabs.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;
as well as URLs for NNTP newsgroup(s).