public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 16/21] net: tsec: Support <reg> property from the subnode "queue-group"
Date: Fri, 12 Mar 2021 21:35:57 +0800	[thread overview]
Message-ID: <20210312133602.31105-17-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20210312133602.31105-1-bmeng.cn@gmail.com>

At present the tsec driver uses a non-standard DT bindings to get
its <reg> base / size. The upstream Linux kernel seems to require
the <reg> base / size to be put under a subnode of the eTSEC node
with a name prefix "queue-group". This is not documented in the
kernel DT bindings, but it looks every dtsi file that contains the
eTSEC node was written like this.

This commit updates the tsec driver to handle this case.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
---

(no changes since v1)

 drivers/net/tsec.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index f801d020fb..49bed0c1dd 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -827,13 +827,35 @@ int tsec_probe(struct udevice *dev)
 	struct tsec_data *data;
 	const char *phy_mode;
 	fdt_addr_t reg;
-	ofnode parent;
+	ofnode parent, child;
 	int ret;
 
 	data = (struct tsec_data *)dev_get_driver_data(dev);
 
 	pdata->iobase = (phys_addr_t)dev_read_addr(dev);
-	priv->regs = dev_remap_addr(dev);
+	if (pdata->iobase != FDT_ADDR_T_NONE) {
+		priv->regs = dev_remap_addr(dev);
+	} else {
+		ofnode_for_each_subnode(child, dev_ofnode(dev)) {
+			if (!strncmp(ofnode_get_name(child), "queue-group",
+				     strlen("queue-group"))) {
+				reg = ofnode_get_addr(child);
+				if (reg == FDT_ADDR_T_NONE) {
+					printf("No 'reg' property of <queue-group>\n");
+					return -ENOENT;
+				}
+				pdata->iobase = reg;
+				priv->regs = map_physmem(pdata->iobase, 0,
+							 MAP_NOCACHE);
+				break;
+			}
+		}
+
+		if (!ofnode_valid(child)) {
+			printf("No child node for <queue-group>?\n");
+			return -ENOENT;
+		}
+	}
 
 	ret = dev_read_phandle_with_args(dev, "tbi-handle", NULL, 0, 0,
 					 &phandle_args);
-- 
2.25.1

  parent reply	other threads:[~2021-03-12 13:35 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-12 13:35 [PATCH v2 00/21] ppc: qemu: Add eTSEC support Bin Meng
2021-03-12 13:35 ` [PATCH v2 01/21] dt-bindings: net: Add the old DT bindings for "fixed-link" Bin Meng
2021-03-13 12:10   ` Vladimir Oltean
2021-03-13 12:59   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 02/21] of: extra: Introduce ofnode_phy_is_fixed_link() API Bin Meng
2021-03-13 12:14   ` Vladimir Oltean
2021-03-13 12:29     ` Vladimir Oltean
2021-03-13 14:34       ` Bin Meng
2021-03-13 13:03   ` Vladimir Oltean
2021-03-13 14:32     ` Bin Meng
2021-03-12 13:35 ` [PATCH v2 03/21] test: dm: Add a case to test ofnode_phy_is_fixed_link() Bin Meng
2021-03-13 13:13   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 04/21] dm: mdio: Use ofnode_phy_is_fixed_link() API Bin Meng
2021-03-13 13:13   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 05/21] net: phy: fixed: Be compatible with live OF tree Bin Meng
2021-03-13 13:15   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 06/21] net: phy: fixed: Drop #ifdef CONFIG_DM_ETH around phy_connect_fixed Bin Meng
2021-03-13 13:15   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 07/21] net: phy: xilinx: Be compatible with live OF tree Bin Meng
2021-03-12 14:11   ` Michal Simek
2021-03-12 13:35 ` [PATCH v2 08/21] net: phy: xilinx: Drop #ifdef CONFIG_DM_ETH around phy_connect_gmii2rgmii() Bin Meng
2021-03-13 13:16   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 09/21] net: phy: Simplify the logic of phy_connect_fixed() Bin Meng
2021-03-13 13:17   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 10/21] net: phy: fixed: Make driver ops static Bin Meng
2021-03-13 13:17   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 11/21] net: phy: fixed: Add the missing ending newline Bin Meng
2021-03-13 13:18   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 12/21] net: phy: fixed: Support the old DT binding Bin Meng
2021-03-13 13:19   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 13/21] net: tsec: Use dm_eth_phy_connect() directly for the DM case Bin Meng
2021-03-13 13:20   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 14/21] sandbox: Add a DSA sandbox driver and unit test Bin Meng
2021-03-12 13:35 ` [PATCH v2 15/21] dt-bindings: net: Update Freescale TSEC to support "queue-group" Bin Meng
2021-03-13 12:50   ` Vladimir Oltean
2021-03-12 13:35 ` Bin Meng [this message]
2021-03-13 13:28   ` [PATCH v2 16/21] net: tsec: Support <reg> property from the subnode "queue-group" Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 17/21] dm: core: Correctly read <ranges> of simple-bus Bin Meng
2021-03-12 15:47   ` Simon Glass
2021-03-12 13:35 ` [PATCH v2 18/21] test: dm: Add a test case for simple-bus <ranges> Bin Meng
2021-03-12 13:36 ` [PATCH v2 19/21] ppc: qemu: Create a virtual memory mapping of the platform bus Bin Meng
2021-03-13 13:48   ` Vladimir Oltean
2021-03-12 13:36 ` [PATCH v2 20/21] ppc: qemu: Enable eTSEC support Bin Meng
2021-03-13 13:49   ` Vladimir Oltean
2021-03-12 13:36 ` [PATCH v2 21/21] doc: board: qemu-ppce500: Document eTSEC usage Bin Meng
2021-03-13 13:50   ` Vladimir Oltean
2021-03-12 15:12 ` [PATCH v2 00/21] ppc: qemu: Add eTSEC support Bin Meng

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=20210312133602.31105-17-bmeng.cn@gmail.com \
    --to=bmeng.cn@gmail.com \
    --cc=u-boot@lists.denx.de \
    /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