Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1154122rwl; Fri, 24 Mar 2023 07:02:27 -0700 (PDT) X-Google-Smtp-Source: AK7set80QXzFZfwi9CcLZpQjdBI5lhl/Qw7voBExL1+3YPPT8x6/9jjDSGod6q01h+fG9MwQg1Pg X-Received: by 2002:a17:906:6d19:b0:93b:2be7:3ce4 with SMTP id m25-20020a1709066d1900b0093b2be73ce4mr10132902ejr.1.1679666546741; Fri, 24 Mar 2023 07:02:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679666546; cv=none; d=google.com; s=arc-20160816; b=KQ07vvVcMIAgdVEpR3zqP6SN1pf159btmC5Tq4+vvVybxR9iyA49wpIkXqfgwllYGm 9ep7Xc7OtpTuDWTHhhxG5SA5Bunb/+zZk2YVYcDDbiKIIItJlNqMxKyxAgRK4fuM2CM+ KnTac9w8cA/swGt82/XfADHEC+GcKtHrsf+YULaFJ5f/zxTWMIqjxz/jy6N+KJHFjX4k oSVNBSJSWmm9vDrSQTXB3cCf5HSIsT6AifzFUAeOGPBF5lesxY/Rt9hmno0qR/1vzwPB sFl9aYv7KVgEgHUphaw0pMsljI23QvP0GK/ln8QTZL5u0QT7zDots4R+NKepGjA9CCfu Op5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=0CzCezUBFius1/QvCjfVKLrX7WEPXSwgwzTCxhDCoiA=; b=jI3OTsAM9JquW5lhSXYw8Mswyqt+A/kAVy/dFceBawgd349JVi5S32I1X38Gu1Zk3U RQsdTjxIvXDaBJtCcxi6doHWs7uw1uXNKOtlrWiZ+damMe8hGO+nfNuC+baBHJWcqRwc PeAGIMuLAOn5poBs6whQ+jjr/NuLQBPrp43HOhhzK09BNpupYRYa/zRqEC+++JKKI7x5 F0FKwHROLMLrZ12xo74h9IPPKNHzCEYDgSzJMlNUadDMkFEGcuZhkf6yqnX1cQE0+hFF uOHr1sONSsiUgeOStg9xYIY69OEwb3jXJKmxRId8eascKJQLuMSZU8IacA5tSMkdLw7q SMAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b="qCS/UYSh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wu13-20020a170906eecd00b009328d67f308si23244230ejb.503.2023.03.24.07.01.57; Fri, 24 Mar 2023 07:02:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b="qCS/UYSh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232017AbjCXOAp (ORCPT + 99 others); Fri, 24 Mar 2023 10:00:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232070AbjCXOAP (ORCPT ); Fri, 24 Mar 2023 10:00:15 -0400 Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F02E1BAE8 for ; Fri, 24 Mar 2023 06:59:49 -0700 (PDT) Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 8CA7A4166C for ; Fri, 24 Mar 2023 13:59:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1679666379; bh=0CzCezUBFius1/QvCjfVKLrX7WEPXSwgwzTCxhDCoiA=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=qCS/UYShWWjYuJUvfsWa0wZfBAz++eP8q3/uuyMzQE6UymynpR/k+3ZP7G3OhQ+IR VJVjGR3TpTyVLYfTbFEJachqmC3rzEQS6JsE8Ecrad3RMSECIZutCHxQ1eHUxzxTEQ +8OrsiALQyVBbd/+bxsPs8hdItxnoJ55bvuKbQvOhQLnxpMXaMnRFnR2E25T1DC3HH auJ8JG0bXb/Ixdf19v/32NeojMFyPw9fwNYfxanTXNJDyZAyJWkDXMQTNIZkXCGz9C dqOTYKIoDtWhdNnYeWS0qRe95NCHzJfz1lQ5ZiWrhSfoUkrXmFcyzOilhKZAMmo5Dc Gsava+tZTrtGQ== Received: by mail-qv1-f71.google.com with SMTP id v8-20020a0ccd88000000b005c1927d1609so1041544qvm.12 for ; Fri, 24 Mar 2023 06:59:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679666378; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0CzCezUBFius1/QvCjfVKLrX7WEPXSwgwzTCxhDCoiA=; b=VF39DkfZJPtF7FnA58cWF1idvBA3L+e9oKwRQCBQ5ZHzLv9D24m86aKYXn05pQC5eG LFemeV4Y2JQj0U4vte4eO1VLYfA7nmSc8CVNlOamdWNNJ0oZcaPv78uSqYrfK8Cl5xux a+VSOYnKqEHr5sxm5D4tSIxcqT4voA7t0abcVqSmNFNzEExQrQWousgUn//ebUc4LN38 gjD/AiWIWuLQ32cuGLINTq6AuankB2TZHG33ej3OjSLcCiAoCtO2IEGjrAwhpNNdjdh3 S+idD/FBS5YjBjFkJfEdJ2xC6ZhbzA7DxV/Gsjpohjdmwyjye5nNsDsrvavYx/Fi8a3H Yu5Q== X-Gm-Message-State: AO0yUKX+tdJqQgDDHbZal8tB4yNYjlblVP9zT1ipWSoVjxukhFmRV4Hp mM8PtGdYQPvpvKkq4v+kf9MQ8kIjG3YfOc1XW6ILPTzxtntG4icwMT7bEkUne/fVi2zdObfimRZ qJHnCTUESO38J+KUXHYGfzSLsKgsAWaC2ns8hg1/OYrp5IwItZHGY/EcIOQ== X-Received: by 2002:a37:a8cf:0:b0:745:8c04:2777 with SMTP id r198-20020a37a8cf000000b007458c042777mr503411qke.13.1679666377807; Fri, 24 Mar 2023 06:59:37 -0700 (PDT) X-Received: by 2002:a37:a8cf:0:b0:745:8c04:2777 with SMTP id r198-20020a37a8cf000000b007458c042777mr503392qke.13.1679666377512; Fri, 24 Mar 2023 06:59:37 -0700 (PDT) MIME-Version: 1.0 References: <20230324022819.2324-1-samin.guo@starfivetech.com> <20230324022819.2324-7-samin.guo@starfivetech.com> In-Reply-To: <20230324022819.2324-7-samin.guo@starfivetech.com> From: Emil Renner Berthing Date: Fri, 24 Mar 2023 14:59:21 +0100 Message-ID: Subject: Re: [PATCH v8 6/6] net: stmmac: starfive_dmac: Add phy interface settings To: Samin Guo Cc: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, netdev@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Jose Abreu , Richard Cochran , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou , Andrew Lunn , Heiner Kallweit , Peter Geis , Yanhong Wang , Tommaso Merciai Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 24 Mar 2023 at 03:30, Samin Guo wrote: > > dwmac supports multiple modess. When working under rmii and rgmii, > you need to set different phy interfaces. > > According to the dwmac document, when working in rmii, it needs to be > set to 0x4, and rgmii needs to be set to 0x1. > > The phy interface needs to be set in syscon, the format is as follows: > starfive,syscon: <&syscon, offset, shift> > > Tested-by: Tommaso Merciai > Signed-off-by: Samin Guo > --- > .../ethernet/stmicro/stmmac/dwmac-starfive.c | 47 +++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > index ef5a769b1c75..84690c8f0250 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > @@ -13,6 +13,10 @@ > > #include "stmmac_platform.h" > > +#define STARFIVE_DWMAC_PHY_INFT_RGMII 0x1 > +#define STARFIVE_DWMAC_PHY_INFT_RMII 0x4 > +#define STARFIVE_DWMAC_PHY_INFT_FIELD 0x7U > + > struct starfive_dwmac { > struct device *dev; > struct clk *clk_tx; > @@ -44,6 +48,43 @@ static void starfive_dwmac_fix_mac_speed(void *priv, unsigned int speed) > dev_err(dwmac->dev, "failed to set tx rate %lu\n", rate); > } > > +static int starfive_dwmac_set_mode(struct plat_stmmacenet_data *plat_dat) > +{ > + struct starfive_dwmac *dwmac = plat_dat->bsp_priv; > + struct regmap *regmap; > + unsigned int args[2]; > + unsigned int mode; > + > + switch (plat_dat->interface) { > + case PHY_INTERFACE_MODE_RMII: > + mode = STARFIVE_DWMAC_PHY_INFT_RMII; > + break; > + > + case PHY_INTERFACE_MODE_RGMII: > + case PHY_INTERFACE_MODE_RGMII_ID: > + mode = STARFIVE_DWMAC_PHY_INFT_RGMII; > + break; > + > + default: > + dev_err(dwmac->dev, "unsupported interface %d\n", > + plat_dat->interface); > + return -EINVAL; > + } > + > + regmap = syscon_regmap_lookup_by_phandle_args(dwmac->dev->of_node, > + "starfive,syscon", > + 2, args); > + if (IS_ERR(regmap)) { > + dev_err(dwmac->dev, "syscon regmap failed.\n"); > + return -ENXIO; > + } > + > + /* args[0]:offset args[1]: shift */ > + return regmap_update_bits(regmap, args[0], > + STARFIVE_DWMAC_PHY_INFT_FIELD << args[1], > + mode << args[1]); > +} > + > static int starfive_dwmac_probe(struct platform_device *pdev) > { > struct plat_stmmacenet_data *plat_dat; > @@ -89,6 +130,12 @@ static int starfive_dwmac_probe(struct platform_device *pdev) > plat_dat->bsp_priv = dwmac; > plat_dat->dma_cfg->dche = true; > > + err = starfive_dwmac_set_mode(plat_dat); > + if (err) { > + dev_err(&pdev->dev, "dwmac set mode failed.\n"); > + return err; > + } Usually it's better to keep all error messages at the same "level". Like this you'll get two error messages if syscon_regmap_lookup_by_phandle_args fails. So I'd suggest moving this message into the starfive_dwmac_set_mode function and while you're at it you can do err = regmap_update_bits(...); if (err) return dev_err_probe(dwmac->dev, err, "error setting phy mode\n"); Also the file is called dwmac-starfive.c, so I'd expect the patch header to be "net: stmmac: dwmac-starfive: Add phy interface settings". /Emil > err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); > if (err) { > stmmac_remove_config_dt(pdev, plat_dat); > -- > 2.17.1 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv