From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 532D5C07E95 for ; Fri, 16 Jul 2021 09:19:34 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5B03A613D4 for ; Fri, 16 Jul 2021 09:19:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B03A613D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7A806829EF; Fri, 16 Jul 2021 11:19:30 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="egpg3Om4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 133AD829FC; Fri, 16 Jul 2021 11:19:28 +0200 (CEST) Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 80F1B8200B for ; Fri, 16 Jul 2021 11:19:24 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=mibodhi@gmail.com Received: by mail-qk1-x732.google.com with SMTP id r125so8048688qkf.1 for ; Fri, 16 Jul 2021 02:19:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6m2yajQqIGhxM6wo2QRISqv+uT6xafTasVXHt3ZiodE=; b=egpg3Om4Lttn3tb8GxnV2KM+E/OTUhk4cXBfKXJusWXgC27jvsOA03T2KwmHeHqEha 1JFyHZTF8/HUboQYzg4m9q/6xs5fbTPNpwv6JMZHcj3paNCnokX5se/jRrr+IVOrZs73 AYWYq7A45kKd8u/adGnPWW7GauBwJpX4kIVYTLpRJs+wIleBn4cVbX41Urh5G7xSk/PR 4PIMURfJP1EBN2MGIOfA5BJEnA8lIDD2im7RHnB5VIBUtjU5KlYbwVSegcITm4ERsnwU rP0u8nwOa1ib9ode26TI11/UToO/vSlwlH92gPhn8bgyAfoLuqhrtQh//0sIvT4PHKqT 6Z3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6m2yajQqIGhxM6wo2QRISqv+uT6xafTasVXHt3ZiodE=; b=mH70rSBqjNT7BnBPxxNn+xXBt2x8UbU9e0npiK7iH2XtiyXm15ycmg3PGrX0zJZnS4 D7NZCJoX+M49+/ze8Vgjo9+E/GK1/hKl7yK10sgYHPQduVm6mld5Fu/ijs4bBkvEDxql 36WpbZm1wo8NrEEZebrdkdNNoYJRsP2JmanFINiteufML9B3c39wLvy+UmoFDkurkpN9 5tx2lFuT8FStaXX3Dz8nqrOUdsZIVPRqs2neTeURK4o0Xe+7UooB1fbBmnQcTkYDg0dw 6s/lj8JDI8YfZvORbeuEUVUHxTD1Z35lxibua2voGoX8ylI6iMDFFurwERGzklxddxn5 3eLw== X-Gm-Message-State: AOAM532vY+qLnjVQeoXWOs00fZ0QeaFtrc95BJ0gdhEA/nWuRNgg52X5 IYORxBcP+cdjPKF+qjb1Uug= X-Google-Smtp-Source: ABdhPJwCHBSzVgN7OADP2PVzhyw3hNkhk58bHx3pNL2qA+Y7I64OLm8Ee9BC+tpqSH1KUcDBF6SJVw== X-Received: by 2002:a37:5d3:: with SMTP id 202mr1286060qkf.125.1626427163310; Fri, 16 Jul 2021 02:19:23 -0700 (PDT) Received: from localhost.localdomain ([66.218.48.116]) by smtp.gmail.com with ESMTPSA id s13sm3613417qkm.87.2021.07.16.02.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jul 2021 02:19:23 -0700 (PDT) From: Tony Dinh To: Stefan Roese , U-Boot Mailing List Cc: Tom Rini , Chris Packham , Tony Dinh Subject: [RESEND PATCH 2/3] Marvell Sheevaplug: Use Ethernet PHY name and address from device tree Date: Fri, 16 Jul 2021 02:18:04 -0700 Message-Id: <20210716091804.14965-1-mibodhi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210714043547.19065-3-mibodhi@gmail.com> References: <20210714043547.19065-3-mibodhi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean - In DM Ethernet, the old "egiga0" name is no longer valid, so replace it with Ethernet PHY name from device tree. Also, Ethernet PHY address is available so read it from device tree. Signed-off-by: Tony Dinh --- board/Marvell/sheevaplug/sheevaplug.c | 54 +++++++++++++++++++++------ 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/board/Marvell/sheevaplug/sheevaplug.c b/board/Marvell/sheevaplug/sheevaplug.c index 0cc7f2b392..5952d158b2 100644 --- a/board/Marvell/sheevaplug/sheevaplug.c +++ b/board/Marvell/sheevaplug/sheevaplug.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* + * Copyright (C) 2021 Tony Dinh * (C) Copyright 2009 * Marvell Semiconductor * Written-by: Prafulla Wadaskar @@ -100,36 +101,65 @@ int board_init(void) return 0; } +static int fdt_get_phy_addr(const char *path) +{ + const void *fdt = gd->fdt_blob; + const u32 *reg; + const u32 *val; + int node, phandle, addr; + + /* Find the node by its full path */ + node = fdt_path_offset(fdt, path); + if (node >= 0) { + /* Look up phy-handle */ + val = fdt_getprop(fdt, node, "phy-handle", NULL); + if (val) { + phandle = fdt32_to_cpu(*val); + if (!phandle) + return -1; + /* Follow it to its node */ + node = fdt_node_offset_by_phandle(fdt, phandle); + if (node) { + /* Look up reg */ + reg = fdt_getprop(fdt, node, "reg", NULL); + if (reg) { + addr = fdt32_to_cpu(*reg); + return addr; + } + } + } + } + return -1; +} + #ifdef CONFIG_RESET_PHY_R /* Configure and enable MV88E1116 PHY */ void reset_phy(void) { u16 reg; - u16 devadr; - char *name = "egiga0"; + int phyaddr; + char *name = "ethernet-controller@72000"; + char *eth0_path = "/ocp@f1000000/ethernet-controller@72000/ethernet0-port@0"; if (miiphy_set_current_dev(name)) return; - /* command to read PHY dev address */ - if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) { - printf("Err..%s could not read PHY dev address\n", - __FUNCTION__); + phyaddr = fdt_get_phy_addr(eth0_path); + if (phyaddr < 0) return; - } /* * Enable RGMII delay on Tx and Rx for CPU port * Ref: sec 4.7.2 of chip datasheet */ - miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2); - miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, ®); + miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 2); + miiphy_read(name, phyaddr, MV88E1116_MAC_CTRL_REG, ®); reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL); - miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg); - miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0); + miiphy_write(name, phyaddr, MV88E1116_MAC_CTRL_REG, reg); + miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 0); /* reset the phy */ - miiphy_reset(name, devadr); + miiphy_reset(name, phyaddr); printf("88E1116 Initialized on %s\n", name); } -- 2.20.1