From patchwork Wed Jan 16 20:52:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1026207 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QE5v03OI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43fztH0SBtz9sDP for ; Thu, 17 Jan 2019 07:52:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726833AbfAPUwe (ORCPT ); Wed, 16 Jan 2019 15:52:34 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:42485 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726783AbfAPUwe (ORCPT ); Wed, 16 Jan 2019 15:52:34 -0500 Received: by mail-wr1-f67.google.com with SMTP id q18so8534951wrx.9 for ; Wed, 16 Jan 2019 12:52:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=pIsZ2hL2Hidvfl8Z+8jPLHFWNMCFSaPaHjtJs7PiGD8=; b=QE5v03OITXrG43slasi+QyisM/0oRddUQl5sV9yzYi/BQ2ctvJVoNKZMpXCmvjT1cJ b1c6fx54JfFG96rvjU3HdxPdQ1rZyTHD+m0Z37PtftqctaOOMnfTkGG3hM7HfD4JfA+U Vhog7R8TvE7vsZIMVhpEl+SNEkOJXnsWN0ag10BZ73ZwaoX5IPO82uge4+n26Y2sOYmj gw6xLxsk994rqIEO7zlW4sJl/UtDF/ndwGkNCjx8Vu8MPUMVX5dbt6nph6inBmGqY6MK ybNboKJUy3LJ2R+D8GS7jK3kcpXU3EZWODDd3TXDJ52F0RpwGJo1GqV8GSuPznKt956i x5pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=pIsZ2hL2Hidvfl8Z+8jPLHFWNMCFSaPaHjtJs7PiGD8=; b=btBfEAUkxOyPnD577MU60gUaThgi+A//aYa/A7eTUD7SILHBGdxRi0ZxvH0FGumy3l YzMHJGLWGp+rD1e3vhui/2x2+ue2AB5cXK+zmTcvSuPhnmYojyU5DhAFwv859JdR1atj xoA8Mh9AuUVyOaTUYZtWwkwKdwYpIEsNPoSG2A7jBhTBZTgencs32J0GVW/hyC/cL687 fHVKqXy28x6zyGtqCpHvUyZl/uXeZ4w0LOJ3ceOoRjlG94xkbHHcoXqxMVIGrMKW3W3N Yc+YV60+EOBNDaR1nA1vilsJkcZk+a47dsIZYJYPMMWdPhwx2Sah7EeBgoOOOBFTCN1e cWlQ== X-Gm-Message-State: AJcUukeJ8B2RFfYNLlaOeefSLRd2oqjge7y3a+G8mjUut1h6rsMh0QvW x7P3tWiFRvZ3VvT6cRLP36LGfNKj X-Google-Smtp-Source: ALg8bN6vFhkAObU3rcNPzpGXkbQfCsfwAwjRsYYFSymU792xMIOu/b84ZNHNjOj+1VBfCrZ20Fnb7w== X-Received: by 2002:adf:cd0e:: with SMTP id w14mr9480308wrm.218.1547671951435; Wed, 16 Jan 2019 12:52:31 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:75ce:7fb:35bc:2da7? (p200300EA8BF1E20075CE07FB35BC2DA7.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:75ce:7fb:35bc:2da7]) by smtp.googlemail.com with ESMTPSA id n15sm67080701wrt.21.2019.01.16.12.52.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Jan 2019 12:52:30 -0800 (PST) To: Florian Fainelli , Andrew Lunn , David Miller Cc: "netdev@vger.kernel.org" From: Heiner Kallweit Subject: [PATCH net-next] net: phy: micrel: use phy_read_mmd and phy_write_mmd Message-ID: Date: Wed, 16 Jan 2019 21:52:22 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This driver implements open-coded versions of phy_read_mmd() and phy_write_mmd() for KSZ9031. That's not needed, let's use the phylib functions directly. This is compile-tested only because I have no such hardware. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn --- drivers/net/phy/micrel.c | 43 ++++++++++------------------------------ 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 7828d17f0..48135a9b9 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -426,9 +426,6 @@ static int ksz9021_config_init(struct phy_device *phydev) return 0; } -#define MII_KSZ9031RN_MMD_CTRL_REG 0x0d -#define MII_KSZ9031RN_MMD_REGDATA_REG 0x0e -#define OP_DATA 1 #define KSZ9031_PS_TO_REG 60 /* Extended registers */ @@ -446,24 +443,6 @@ static int ksz9021_config_init(struct phy_device *phydev) #define MII_KSZ9031RN_EDPD 0x23 #define MII_KSZ9031RN_EDPD_ENABLE BIT(0) -static int ksz9031_extended_write(struct phy_device *phydev, - u8 mode, u32 dev_addr, u32 regnum, u16 val) -{ - phy_write(phydev, MII_KSZ9031RN_MMD_CTRL_REG, dev_addr); - phy_write(phydev, MII_KSZ9031RN_MMD_REGDATA_REG, regnum); - phy_write(phydev, MII_KSZ9031RN_MMD_CTRL_REG, (mode << 14) | dev_addr); - return phy_write(phydev, MII_KSZ9031RN_MMD_REGDATA_REG, val); -} - -static int ksz9031_extended_read(struct phy_device *phydev, - u8 mode, u32 dev_addr, u32 regnum) -{ - phy_write(phydev, MII_KSZ9031RN_MMD_CTRL_REG, dev_addr); - phy_write(phydev, MII_KSZ9031RN_MMD_REGDATA_REG, regnum); - phy_write(phydev, MII_KSZ9031RN_MMD_CTRL_REG, (mode << 14) | dev_addr); - return phy_read(phydev, MII_KSZ9031RN_MMD_REGDATA_REG); -} - static int ksz9031_of_load_skew_values(struct phy_device *phydev, const struct device_node *of_node, u16 reg, size_t field_sz, @@ -484,7 +463,7 @@ static int ksz9031_of_load_skew_values(struct phy_device *phydev, return 0; if (matches < numfields) - newval = ksz9031_extended_read(phydev, OP_DATA, 2, reg); + newval = phy_read_mmd(phydev, 2, reg); else newval = 0; @@ -498,7 +477,7 @@ static int ksz9031_of_load_skew_values(struct phy_device *phydev, << (field_sz * i)); } - return ksz9031_extended_write(phydev, OP_DATA, 2, reg, newval); + return phy_write_mmd(phydev, 2, reg, newval); } /* Center KSZ9031RNX FLP timing at 16ms. */ @@ -506,13 +485,13 @@ static int ksz9031_center_flp_timing(struct phy_device *phydev) { int result; - result = ksz9031_extended_write(phydev, OP_DATA, 0, - MII_KSZ9031RN_FLP_BURST_TX_HI, 0x0006); + result = phy_write_mmd(phydev, 0, MII_KSZ9031RN_FLP_BURST_TX_HI, + 0x0006); if (result) return result; - result = ksz9031_extended_write(phydev, OP_DATA, 0, - MII_KSZ9031RN_FLP_BURST_TX_LO, 0x1A80); + result = phy_write_mmd(phydev, 0, MII_KSZ9031RN_FLP_BURST_TX_LO, + 0x1A80); if (result) return result; @@ -524,11 +503,11 @@ static int ksz9031_enable_edpd(struct phy_device *phydev) { int reg; - reg = ksz9031_extended_read(phydev, OP_DATA, 0x1C, MII_KSZ9031RN_EDPD); + reg = phy_read_mmd(phydev, 0x1C, MII_KSZ9031RN_EDPD); if (reg < 0) return reg; - return ksz9031_extended_write(phydev, OP_DATA, 0x1C, MII_KSZ9031RN_EDPD, - reg | MII_KSZ9031RN_EDPD_ENABLE); + return phy_write_mmd(phydev, 0x1C, MII_KSZ9031RN_EDPD, + reg | MII_KSZ9031RN_EDPD_ENABLE); } static int ksz9031_config_init(struct phy_device *phydev) @@ -654,7 +633,7 @@ static int ksz9131_of_load_skew_values(struct phy_device *phydev, return 0; if (matches < numfields) - newval = ksz9031_extended_read(phydev, OP_DATA, 2, reg); + newval = phy_read_mmd(phydev, 2, reg); else newval = 0; @@ -668,7 +647,7 @@ static int ksz9131_of_load_skew_values(struct phy_device *phydev, << (field_sz * i)); } - return ksz9031_extended_write(phydev, OP_DATA, 2, reg, newval); + return phy_write_mmd(phydev, 2, reg, newval); } static int ksz9131_config_init(struct phy_device *phydev)