aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorTim Harvey <tharvey@gateworks.com>2021-06-17 16:08:54 -0700
committerRamon Fried <rfried.dev@gmail.com>2021-06-18 11:29:17 +0300
commit54c321f9deeba309989f0828e4d0427cbfbefcd3 (patch)
tree3cdea4854ba0e8755aff49c43579eb2756ff3349 /drivers/net
parent75efe7dc996ddb9835590b1a8970f19b5c4b1ade (diff)
downloadu-boot-54c321f9deeba309989f0828e4d0427cbfbefcd3.zip
u-boot-54c321f9deeba309989f0828e4d0427cbfbefcd3.tar.gz
u-boot-54c321f9deeba309989f0828e4d0427cbfbefcd3.tar.bz2
net: octeontx: smi: use dt live tree API
clean up octeontx_smi_probe by using the live-tree API. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/octeontx/smi.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/drivers/net/octeontx/smi.c b/drivers/net/octeontx/smi.c
index 27f4423..d70fa82 100644
--- a/drivers/net/octeontx/smi.c
+++ b/drivers/net/octeontx/smi.c
@@ -314,10 +314,12 @@ read_error:
int octeontx_smi_probe(struct udevice *dev)
{
- int ret, subnode, cnt = 0, node = dev_ofnode(dev).of_offset;
- struct mii_dev *bus;
- struct octeontx_smi_priv *priv;
pci_dev_t bdf = dm_pci_get_bdf(dev);
+ struct octeontx_smi_priv *priv;
+ struct mii_dev *bus;
+ int ret, cnt = 0;
+ ofnode subnode;
+ u64 baseaddr;
debug("SMI PCI device: %x\n", bdf);
if (!dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, PCI_REGION_MEM)) {
@@ -325,14 +327,12 @@ int octeontx_smi_probe(struct udevice *dev)
return -1;
}
- node = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
- "cavium,thunder-8890-mdio-nexus");
- fdt_for_each_subnode(subnode, gd->fdt_blob, node) {
- ret = fdt_node_check_compatible(gd->fdt_blob, subnode,
- "cavium,thunder-8890-mdio");
- if (ret)
+ dev_for_each_subnode(subnode, dev) {
+ if (!ofnode_device_is_compatible(subnode,
+ "cavium,thunder-8890-mdio"))
+ continue;
+ if (ofnode_read_u64(subnode, "reg", &baseaddr))
continue;
-
bus = mdio_alloc();
priv = malloc(sizeof(*priv));
if (!bus || !priv) {
@@ -347,9 +347,7 @@ int octeontx_smi_probe(struct udevice *dev)
bus->priv = priv;
priv->mode = CLAUSE22;
- priv->baseaddr = (void __iomem *)fdtdec_get_addr(gd->fdt_blob,
- subnode,
- "reg");
+ priv->baseaddr = (void __iomem *)baseaddr;
debug("mdio base addr %p\n", priv->baseaddr);
/* use given name or generate its own unique name */