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 15/20] net: tsec: Support <reg> property from the subnode "queue-group"
Date: Tue,  2 Mar 2021 23:34:46 +0800	[thread overview]
Message-ID: <20210302153451.19440-16-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20210302153451.19440-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>
---

 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 24f9962b82..5012cd29f1 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -831,13 +831,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-02 15:34 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-02 15:34 [PATCH 00/20] ppc: qemu: Add eTSEC support Bin Meng
2021-03-02 15:34 ` [PATCH 01/20] net: phy: xilinx: Remove non-DM prototype of phy_connect_gmii2rgmii() Bin Meng
2021-03-02 15:40   ` Michal Simek
2021-03-02 17:52   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 02/20] net: phy: xilinx: Convert to use APIs which support live DT Bin Meng
2021-03-02 15:40   ` Vladimir Oltean
2021-03-04  5:36     ` Bin Meng
2021-03-04 23:05       ` Vladimir Oltean
2021-03-11 10:33         ` Bin Meng
2021-03-11 10:37           ` Vladimir Oltean
2021-03-11 10:58             ` Bin Meng
2021-03-11 11:02               ` Vladimir Oltean
2021-03-02 17:51   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 03/20] net: phy: fixed: Remove non-DM prototype of phy_connect_fixed() Bin Meng
2021-03-02 17:42   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 04/20] net: phy: fixed: Convert to use APIs which support live DT Bin Meng
2021-03-02 17:42   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 05/20] dt-bindings: net: Add the old DT bindings for "fixed-link" Bin Meng
2021-03-02 17:50   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 06/20] of: extra: Introduce ofnode_phy_is_fixed_link() API Bin Meng
2021-03-05  4:08   ` Simon Glass
2021-03-09  2:41     ` Bin Meng
2021-03-02 15:34 ` [PATCH 07/20] test: dm: Add a case to test ofnode_phy_is_fixed_link() Bin Meng
2021-03-05  4:08   ` Simon Glass
2021-03-02 15:34 ` [PATCH 08/20] dm: mdio: Use ofnode_phy_is_fixed_link() API Bin Meng
2021-03-02 17:41   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 09/20] net: tsec: " Bin Meng
2021-03-02 17:42   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 10/20] net: phy: Simplify the logic of phy_connect_fixed() Bin Meng
2021-03-02 17:46   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 11/20] net: phy: fixed: Make driver ops static Bin Meng
2021-03-02 17:47   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 12/20] net: phy: fixed: Add the missing ending newline Bin Meng
2021-03-02 17:48   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 13/20] net: phy: fixed: Support the old DT binding Bin Meng
2021-03-02 17:49   ` Ramon Fried
2021-03-02 15:34 ` [PATCH 14/20] dt-bindings: net: Update Freescale TSEC to support "queue-group" Bin Meng
2021-03-02 17:50   ` Ramon Fried
2021-03-02 15:34 ` Bin Meng [this message]
2021-03-02 17:50   ` [PATCH 15/20] net: tsec: Support <reg> property from the subnode "queue-group" Ramon Fried
2021-03-02 15:34 ` [PATCH 16/20] dm: core: Correctly read <ranges> of simple-bus Bin Meng
2021-03-03 13:23   ` Tom Rini
2021-03-02 15:34 ` [PATCH 17/20] test: dm: Add a test case for simple-bus <ranges> Bin Meng
2021-03-05  4:08   ` Simon Glass
2021-03-02 15:34 ` [PATCH 18/20] ppc: qemu: Create a virtual memory mapping of the platform bus Bin Meng
2021-03-02 15:34 ` [PATCH 19/20] ppc: qemu: Enable eTSEC support Bin Meng
2021-03-02 15:34 ` [PATCH 20/20] doc: board: qemu-ppce500: Document eTSEC usage Bin Meng
2021-03-03  1:08 ` [PATCH 00/20] ppc: qemu: Add eTSEC support Bin Meng
2021-03-03  1:53   ` Simon Glass
2021-03-03  2:11     ` Bin Meng
2021-03-03 16:48       ` Tom Rini
2021-03-03 17:21         ` Simon Glass
2021-03-04  1:57           ` Bin Meng
2021-03-04  2:16             ` Simon Glass

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=20210302153451.19440-16-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