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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id BF660EB64DA for ; Thu, 20 Jul 2023 22:00:02 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4FC97857BF; Thu, 20 Jul 2023 23:59:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org 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=kernel.org header.i=@kernel.org header.b="ndwuwpsd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 66782867BC; Thu, 20 Jul 2023 23:59:51 +0200 (CEST) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 03F7E856A7 for ; Thu, 20 Jul 2023 23:59:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rogerq@kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5DFFB61C37; Thu, 20 Jul 2023 21:59:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 271CDC433CB; Thu, 20 Jul 2023 21:59:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689890386; bh=8p4VTR/i0LG+oFLr6VTb1diu+j5qv7yuUJ3pEMcpCCs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ndwuwpsdMp8k5n8CqyNs7mBbNNRdwLdIoDuIYGUgF5+3V5vWa5s3RizuLB6k3r/Uu tZnBKhS7uHUAKVEubYNPiFJ/GcUk3Kze4xUw3OmOaAh5U+zvzp7PETG+SKzkGkf5Ng gd4fThdpnLdKkrtqBu8jL0y3OmtrvP2U8VDUU2Pu8jbL/liVsJbCl2VHA94+YdBLQN VPtLoNB431/aRKRkzMmJOdZ0V/a2exxdcqJ5uXl8IUvb+6xXf9qPAsSnx8nNsG+/E3 KGcWOVltR0YgCGkPO/qJQLeF54hoGKmoyClwmZQbvP6MYAD5K7Zs0NI8myAcNS2AjD aHy5x/XvV5+uQ== From: Roger Quadros To: joe.hershberger@ni.com, nm@ti.com Cc: rfried.dev@gmail.com, r-gunasekaran@ti.com, s-vadapalli@ti.com, mripard@kernel.org, sjg@chromium.org, pbrobinson@gmail.com, srk@ti.com, u-boot@lists.denx.de, Roger Quadros Subject: [PATCH 1/2] net: ti: am65-cpsw-nuss: Use approved property to get efuse address Date: Fri, 21 Jul 2023 00:59:34 +0300 Message-Id: <20230720215935.107398-2-rogerq@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230720215935.107398-1-rogerq@kernel.org> References: <20230720215935.107398-1-rogerq@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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.8 at phobos.denx.de X-Virus-Status: Clean The approved DT property for MAC efuse (ROM) address is "ti,syscon-efuse". Use that and drop custom property "mac_efuse". Signed-off-by: Roger Quadros --- configs/am62x_evm_a53_defconfig | 1 + drivers/net/ti/am65-cpsw-nuss.c | 52 +++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig index 7c3bc184cf..6757fe662d 100644 --- a/configs/am62x_evm_a53_defconfig +++ b/configs/am62x_evm_a53_defconfig @@ -102,3 +102,4 @@ CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 +CONFIG_SYSCON=y diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c index 523a4c9f91..ee46676ec8 100644 --- a/drivers/net/ti/am65-cpsw-nuss.c +++ b/drivers/net/ti/am65-cpsw-nuss.c @@ -21,7 +21,9 @@ #include #include #include +#include #include +#include #include #include @@ -101,7 +103,6 @@ struct am65_cpsw_common { fdt_addr_t mdio_base; fdt_addr_t ale_base; fdt_addr_t gmii_sel; - fdt_addr_t mac_efuse; struct clk fclk; struct power_domain pwrdmn; @@ -516,24 +517,45 @@ static void am65_cpsw_stop(struct udevice *dev) common->started = false; } +static int am65_cpsw_am654_get_efuse_macid(struct udevice *dev, + int slave, u8 *mac_addr) +{ + u32 mac_lo, mac_hi, offset; + struct regmap *syscon; + int ret; + + syscon = syscon_regmap_lookup_by_phandle(dev, "ti,syscon-efuse"); + if (IS_ERR(syscon)) { + if (PTR_ERR(syscon) == -ENODEV) + return 0; + return PTR_ERR(syscon); + } + + ret = dev_read_u32_index(dev, "ti,syscon-efuse", 1, &offset); + if (ret) + return ret; + + regmap_read(syscon, offset, &mac_lo); + regmap_read(syscon, offset + 4, &mac_hi); + + mac_addr[0] = (mac_hi >> 8) & 0xff; + mac_addr[1] = mac_hi & 0xff; + mac_addr[2] = (mac_lo >> 24) & 0xff; + mac_addr[3] = (mac_lo >> 16) & 0xff; + mac_addr[4] = (mac_lo >> 8) & 0xff; + mac_addr[5] = mac_lo & 0xff; + + return 0; +} + static int am65_cpsw_read_rom_hwaddr(struct udevice *dev) { struct am65_cpsw_priv *priv = dev_get_priv(dev); - struct am65_cpsw_common *common = priv->cpsw_common; struct eth_pdata *pdata = dev_get_plat(dev); - u32 mac_hi, mac_lo; - - if (common->mac_efuse == FDT_ADDR_T_NONE) - return -1; - mac_lo = readl(common->mac_efuse); - mac_hi = readl(common->mac_efuse + 4); - pdata->enetaddr[0] = (mac_hi >> 8) & 0xff; - pdata->enetaddr[1] = mac_hi & 0xff; - pdata->enetaddr[2] = (mac_lo >> 24) & 0xff; - pdata->enetaddr[3] = (mac_lo >> 16) & 0xff; - pdata->enetaddr[4] = (mac_lo >> 8) & 0xff; - pdata->enetaddr[5] = mac_lo & 0xff; + am65_cpsw_am654_get_efuse_macid(dev, + priv->port_id, + pdata->enetaddr); return 0; } @@ -710,8 +732,6 @@ static int am65_cpsw_probe_nuss(struct udevice *dev) cpsw_common->ss_base = dev_read_addr(dev); if (cpsw_common->ss_base == FDT_ADDR_T_NONE) return -EINVAL; - cpsw_common->mac_efuse = devfdt_get_addr_name(dev, "mac_efuse"); - /* no err check - optional */ ret = power_domain_get_by_index(dev, &cpsw_common->pwrdmn, 0); if (ret) { -- 2.34.1