From patchwork Wed Feb 1 06:58:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Sae X-Patchwork-Id: 51191 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2388:b0:96:219d:e725 with SMTP id i8csp230678dyf; Tue, 31 Jan 2023 23:00:27 -0800 (PST) X-Google-Smtp-Source: AK7set9A5+Dsds4/uHYingdc+pT5C3xJ3W32Wb3z7qZS+0cAAm6bDEYSl58+XC1nWGxsFE+HqRpM X-Received: by 2002:a17:90b:4fd2:b0:230:3af9:177 with SMTP id qa18-20020a17090b4fd200b002303af90177mr89949pjb.8.1675234826964; Tue, 31 Jan 2023 23:00:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675234826; cv=none; d=google.com; s=arc-20160816; b=gm2P6PFEgsI1NNlNC3lMptTAsPCMCkJz2T64fRANfv89CAZtDalLpk0piA2kq8Z7pg IZtkk+1iauvZBRFoilJFAN0AUP2LYeagexjiKSRC+F8Xi6EzFHUZbMZkG911YUe9I/jj woXAWXq/VI2O+KGZoI6G6Ys5R41OtHkRsAR61THA91Dvdl49+2+alwEQ5rI7kBjmQcZN sNxP8ZAugziW9oCQHs5btLjcGN15FELtopz/JHvN2AxdHoVbmJa8s7+8ByS7AoFmwyCZ 55Gu5akxTFbfO5QlKonKikPYGYhmBgetbJocSVeojqzqMTfl8W997cH1xengFJJGxYzF ud+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=BGCBjqRSgrvslYtblF3RwhiSkZSHuFNowQzNFgL2gkY=; b=vT+XSR0ssBLo2fY+yppjZKGf0/1+6MDQ3GxNTbQKyKx+O6JETVr2CPVIvIONf3OoSP otfNZcJaVkRzw6VjgnzYmlE1AhGzjyCJmryUjCETOxo0b3LVtpWz0vrZmdsodKfSmyLe trYM7TzDxJFmL+JUBjN31CJw4+No0XhCbRpZnqjrynm8M58bBjOxILctL/xlpdaSy+Kw 15Ei/wBJni7AqPJ1bpVu7zNl/rBDfA3JgC+311dqWeIVQBLgCjRFCYPuOkb+F2W4y3Po wxBTraB6RmsyDkevwuT0MFxQ6Aazr9AqnTFiziQtelcyWQAOM7c3EH8tZU0xjkYQE0uy wJqg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=motor-comm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m2-20020a637102000000b004df2f0ecb87si17043861pgc.865.2023.01.31.23.00.14; Tue, 31 Jan 2023 23:00:26 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=motor-comm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231624AbjBAG6o (ORCPT + 99 others); Wed, 1 Feb 2023 01:58:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230214AbjBAG6g (ORCPT ); Wed, 1 Feb 2023 01:58:36 -0500 Received: from out29-151.mail.aliyun.com (out29-151.mail.aliyun.com [115.124.29.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F060E3C19; Tue, 31 Jan 2023 22:58:33 -0800 (PST) X-Alimail-AntiSpam: AC=CONTINUE;BC=0.08936244|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0211176-0.234236-0.744646;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047206;MF=frank.sae@motor-comm.com;NM=1;PH=DS;RN=18;RT=18;SR=0;TI=SMTPD_---.R6w7.xj_1675234709; Received: from sun-VirtualBox..(mailfrom:Frank.Sae@motor-comm.com fp:SMTPD_---.R6w7.xj_1675234709) by smtp.aliyun-inc.com; Wed, 01 Feb 2023 14:58:30 +0800 From: Frank Sae To: Peter Geis , Andrew Lunn , Heiner Kallweit , Russell King , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , yanhong.wang@starfivetech.com Cc: xiaogang.fan@motor-comm.com, fei.zhang@motor-comm.com, hua.sun@motor-comm.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Frank , devicetree@vger.kernel.org Subject: [PATCH net-next v4 4/5] net: phy: Add dts support for Motorcomm yt8531s gigabit ethernet phy Date: Wed, 1 Feb 2023 14:58:10 +0800 Message-Id: <20230201065811.3650-5-Frank.Sae@motor-comm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230201065811.3650-1-Frank.Sae@motor-comm.com> References: <20230201065811.3650-1-Frank.Sae@motor-comm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756611033723470061?= X-GMAIL-MSGID: =?utf-8?q?1756611033723470061?= Add dts support for Motorcomm yt8531s gigabit ethernet phy. Change yt8521_probe to support clk config of yt8531s. Becase yt8521_probe does the things which yt8531s is needed, so removed yt8531s function. This patch has been verified on AM335x platform with yt8531s board. Signed-off-by: Frank Sae Reviewed-by: Andrew Lunn --- drivers/net/phy/motorcomm.c | 51 ++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c index ee30e8ac1a7f..bdc6a55d59f1 100644 --- a/drivers/net/phy/motorcomm.c +++ b/drivers/net/phy/motorcomm.c @@ -258,8 +258,6 @@ #define YT8531_SCR_CLK_SRC_CLOCK_FROM_DIGITAL 3 #define YT8531_SCR_CLK_SRC_REF_25M 4 #define YT8531_SCR_CLK_SRC_SSC_25M 5 -#define YT8531S_SYNCE_CFG_REG 0xA012 -#define YT8531S_SCR_SYNCE_ENABLE BIT(6) /* Extended Register end */ @@ -858,7 +856,32 @@ static int yt8521_probe(struct phy_device *phydev) return -EINVAL; } } else if (phydev->drv->phy_id == PHY_ID_YT8531S) { - return 0; + switch (freq) { + case YTPHY_DTS_OUTPUT_CLK_DIS: + mask = YT8531_SCR_SYNCE_ENABLE; + val = 0; + break; + case YTPHY_DTS_OUTPUT_CLK_25M: + mask = YT8531_SCR_SYNCE_ENABLE | + YT8531_SCR_CLK_SRC_MASK | + YT8531_SCR_CLK_FRE_SEL_125M; + val = YT8531_SCR_SYNCE_ENABLE | + FIELD_PREP(YT8531_SCR_CLK_SRC_MASK, + YT8531_SCR_CLK_SRC_REF_25M); + break; + case YTPHY_DTS_OUTPUT_CLK_125M: + mask = YT8531_SCR_SYNCE_ENABLE | + YT8531_SCR_CLK_SRC_MASK | + YT8531_SCR_CLK_FRE_SEL_125M; + val = YT8531_SCR_SYNCE_ENABLE | + YT8531_SCR_CLK_FRE_SEL_125M | + FIELD_PREP(YT8531_SCR_CLK_SRC_MASK, + YT8531_SCR_CLK_SRC_PLL_125M); + break; + default: + phydev_warn(phydev, "Freq err:%u\n", freq); + return -EINVAL; + } } else { phydev_warn(phydev, "PHY id err\n"); return -EINVAL; @@ -868,26 +891,6 @@ static int yt8521_probe(struct phy_device *phydev) val); } -/** - * yt8531s_probe() - read chip config then set suitable polling_mode - * @phydev: a pointer to a &struct phy_device - * - * returns 0 or negative errno code - */ -static int yt8531s_probe(struct phy_device *phydev) -{ - int ret; - - /* Disable SyncE clock output by default */ - ret = ytphy_modify_ext_with_lock(phydev, YT8531S_SYNCE_CFG_REG, - YT8531S_SCR_SYNCE_ENABLE, 0); - if (ret < 0) - return ret; - - /* same as yt8521_probe */ - return yt8521_probe(phydev); -} - /** * ytphy_utp_read_lpa() - read LPA then setup lp_advertising for utp * @phydev: a pointer to a &struct phy_device @@ -1970,7 +1973,7 @@ static struct phy_driver motorcomm_phy_drvs[] = { PHY_ID_MATCH_EXACT(PHY_ID_YT8531S), .name = "YT8531S Gigabit Ethernet", .get_features = yt8521_get_features, - .probe = yt8531s_probe, + .probe = yt8521_probe, .read_page = yt8521_read_page, .write_page = yt8521_write_page, .get_wol = ytphy_get_wol,