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 9563EC07E9A for ; Wed, 14 Jul 2021 04:36:57 +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 169A5613B0 for ; Wed, 14 Jul 2021 04:36:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 169A5613B0 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 1C95A82BE8; Wed, 14 Jul 2021 06:36:55 +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="ut1RYOez"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BB27B82EA7; Wed, 14 Jul 2021 06:36:53 +0200 (CEST) Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) (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 D768382BE8 for ; Wed, 14 Jul 2021 06:36:49 +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-x729.google.com with SMTP id r125so414620qkf.1 for ; Tue, 13 Jul 2021 21:36:49 -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=15dTa8EyY4WAGsVUZuW7bdPLpp8VWGrtA/F0Z2c5L1M=; b=ut1RYOez/ka5RSR3et3TFDQb94IOKVTQjRF/s/GxI6+7OSahnktHB26FpN64rO56Oe OvkNAJfcA2KXGGcdjLJCDwqJVLzCfJR2VbuY5rBIL79SnqhgXHBmXqUVjNkvrTznoHhG FocxmWvWkOVgZ+mdCFOSiSIeBNMvx1MpMjLnIzalX2v9dadO3l6iJoygo9SLZ+Qc3TzT u2hc/CRhruQH38rfmzN7TKg+Sm7F6+BcJ5VqPynLiQt4h2M3WUH4S9jdpl9hGYLMLBlC f5yhlYDG0V856sWbIYvDXrqLE5AxZT1eKTvScS9LFQJvYZWOCDNQCFT7VYKSTCrjomhr MM0g== 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=15dTa8EyY4WAGsVUZuW7bdPLpp8VWGrtA/F0Z2c5L1M=; b=ZFjkjt8tBYsOhMzAoITqwwoJgLEmFjKGOBs/UqjhwWNU2RScLPoVU442qgbph7EPVo ZEs6dwJ3QgDzG0covx/ebs6RO6XcfJwzawuzqpsoqyCTbgIDE7oBDCOvtsVez2Kj9+Dk SHfgiTysqrT1YaqmgWssvrDTWMIMBRFwqF9vilH4Sf2XqYvt5voOESwFShmXlt6D0tNi z0S3pKTuvkIUT61dWWNGlQmyfDGJrxqz9wnnvOi7jhwb1NIQQXo8FddEn/HJz59Xs1Wh AHec5k9KbgGqtdMvvEnXhu97lAXTjwEuBWukw8fLdUzcCvDjf4xl1A9Mz6L89LtXajx0 4NeQ== X-Gm-Message-State: AOAM532LjWpGI6bMcDpMjpX6lGssaOZwsY9UTxBjNZ+jQ9kKOAU1Bmhp kpuRpVGWlBC0EzqEoUcqYm23mNbU1XiZOA== X-Google-Smtp-Source: ABdhPJxYGMp+6isjtUhTOQPa2/f+LFjVRjkb3LmaFx1IpN7/qh8W3tOhRB0P/7VB5TBzojbp+6vSHg== X-Received: by 2002:a05:620a:41d:: with SMTP id 29mr7944476qkp.18.1626237408663; Tue, 13 Jul 2021 21:36:48 -0700 (PDT) Received: from localhost.localdomain ([66.218.48.116]) by smtp.gmail.com with ESMTPSA id y2sm518484qkl.58.2021.07.13.21.36.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 21:36:48 -0700 (PDT) From: Tony Dinh To: U-Boot Mailing List , sr@denx.de, prafulla@marvell.com Cc: Tom Rini , judge.packham@gmail.com, Tony Dinh Subject: [PATCH 2/3] Marvell Sheevaplug: Use Ethernet PHY name and address from device tree Date: Tue, 13 Jul 2021 21:35:45 -0700 Message-Id: <20210714043547.19065-3-mibodhi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210714043547.19065-1-mibodhi@gmail.com> References: <20210714043547.19065-1-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..7ba56a44e4 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"; + u16 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