From patchwork Thu Dec 7 14:27:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120988 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8426535qgn; Thu, 7 Dec 2017 06:29:04 -0800 (PST) X-Google-Smtp-Source: AGs4zMYMxa9FsdeF8ldt9cNYbfrvl5aE+gdijKoxuaBujcwfCSwOBQl3TkUexbf76MC2/UqjM0gB X-Received: by 10.99.127.67 with SMTP id p3mr20333094pgn.263.1512656943922; Thu, 07 Dec 2017 06:29:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656943; cv=none; d=google.com; s=arc-20160816; b=CvvGXPRzjbfOpSy0hEnZjurMgRYUHfsSZMGPQTdSMjQmE16t14iPv5JLrFzTypkx5k XOtNz1MssiNSaL1mqfrCb5TNeuMPQJY9PJ/2DaT1cKuAZmjfpvYcQRLKub0KeQiH7ldX gJKaY6I5EQR4/D0AoReHCPSkuVyU3AGnoa3camiG+DoeYmPyZbu8JSTy/MlhWQc96aa3 7okhG1tmD1hQ5BvBUENaJXIOioRXcCv1HfyHHG+uENfGVQsoGcqbczZcTTPllwMAVXZB ncRKnkSeGMyiKLXFGyrA6qO9KDnnTQiBNUaakV09zQXy6lAAN8IijzxP2W49f40BVxIA WwFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=bAipUEvgvM1Uc5xrra8bjleth2WsfGM5KkNvI1jPf0A=; b=Tx+rzp3/JNfe8s9XBSG0QglJNoKb5WD9IEOslC2PtnjaxqPJlJpTWcG3Y3k6yEMZg8 21bjsbr0TQQUCnE3GZT98SKEsRjd3JS83X/L2jllMfDY0nCMeIu+ytGOL1W0Qcti7oEF Q482akDsBx6TTboXo1RLzxcvm7e8Q6Vc4oT7qIP7FsonNC4R7797fzb2UqjGAZ04SSoB s3axtrhdzakTEEoeOJURFoN5iLgVsYmRmO5LG1VhUC3oOYhXdYdQGjx0AtxrlQFaSyJz WFu6Lc5rsU+7vP6wFP38vk3oO0KkvLbZEaGXrLAZUxX/GpSlylkP7mVI4HG32uVFg/ZP oo/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=CC1xboEa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 26si4141119pfo.269.2017.12.07.06.29.03; Thu, 07 Dec 2017 06:29:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=CC1xboEa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753839AbdLGO1Y (ORCPT + 22 others); Thu, 7 Dec 2017 09:27:24 -0500 Received: from mail-wr0-f196.google.com ([209.85.128.196]:45782 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753559AbdLGO1U (ORCPT ); Thu, 7 Dec 2017 09:27:20 -0500 Received: by mail-wr0-f196.google.com with SMTP id h1so7653182wre.12 for ; Thu, 07 Dec 2017 06:27:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bAipUEvgvM1Uc5xrra8bjleth2WsfGM5KkNvI1jPf0A=; b=CC1xboEa/+yuNu3DUMFgtZfwKG6mvHhsf3tEyJba5w+ZjHX6MzkdHF0RDe9SYpbAfe ZDlB2KCb2pidhmUjB7og10UsxiIz/OLR6VbfuZPxaSZhYg7JCXMaEQJAP3FWxxr6y/3z bTDXN9hEopJz/x6DvUJTCCzYHVU7evOyAfRuaIp6d66eDWTlPJ3Nf9cezbzJiJo7QR1u z8KU+oDfPvMEXUXE7AE3M0Ih+PdqOPObZx7BTelnnZQDEMrQxKN+HgoDG735o7ahkX8o dQ3Qv6d0SuATBMKpPNouO+YwNxYdu7LAiW/ENg/qf2oYbzFnpN34vUhwQvajludqpk7T tKNg== 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; bh=bAipUEvgvM1Uc5xrra8bjleth2WsfGM5KkNvI1jPf0A=; b=tDuLfFZHc83jyHBWXTulk5JXbk002At+KXuSuGF3XDNQCAk4DAJwgFDP5kiX30JNZK 4WLDZyw8ALaIceIOi+oGAxprqmND3S6FsnOv+ZO9shWCOHUHU4wG6btAhUs3+mUv454u iTAEUH2mQ0f6IrPqP6UT4bI7cCVfNn2OuUjFWSAxViDwS1gty0mVkG1rRsgAqt+xdexb IKgmE6ZxjkLA4CAk10DNRSojwx8/xqqVTykftLMeFW2pXoeOyYTkxeFTCTSv2H6wx9tY H953XKls5sP42VjhJACOW3rDURCDCJj87lqDOzG8Dc9tLaGwYzSZwd8hNB1dzG5i8win E5vw== X-Gm-Message-State: AJaThX598FVe8BTTniywIbdUtOBuikARaNZKA2Nk2WH81nAx+5vdqiS1 YlQcO4Ccm9fhXSZYM7tH6bJOkg== X-Received: by 10.223.195.22 with SMTP id n22mr25876908wrf.212.1512656839229; Thu, 07 Dec 2017 06:27:19 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.18 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:18 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 1/8] net: phy: meson-gxl: check phy_write return value Date: Thu, 7 Dec 2017 15:27:08 +0100 Message-Id: <20171207142715.32578-2-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Always check phy_write return values. Better to be safe than sorry Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 50 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 12 deletions(-) -- 2.14.3 Reviewed-by: Andrew Lunn diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 1ea69b7585d9..7ddb709f69fc 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -25,27 +25,53 @@ static int meson_gxl_config_init(struct phy_device *phydev) { + int ret; + /* Enable Analog and DSP register Bank access by */ - phy_write(phydev, 0x14, 0x0000); - phy_write(phydev, 0x14, 0x0400); - phy_write(phydev, 0x14, 0x0000); - phy_write(phydev, 0x14, 0x0400); + ret = phy_write(phydev, 0x14, 0x0000); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x0400); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x0000); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x0400); + if (ret) + return ret; /* Write Analog register 23 */ - phy_write(phydev, 0x17, 0x8E0D); - phy_write(phydev, 0x14, 0x4417); + ret = phy_write(phydev, 0x17, 0x8E0D); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x4417); + if (ret) + return ret; /* Enable fractional PLL */ - phy_write(phydev, 0x17, 0x0005); - phy_write(phydev, 0x14, 0x5C1B); + ret = phy_write(phydev, 0x17, 0x0005); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x5C1B); + if (ret) + return ret; /* Program fraction FR_PLL_DIV1 */ - phy_write(phydev, 0x17, 0x029A); - phy_write(phydev, 0x14, 0x5C1D); + ret = phy_write(phydev, 0x17, 0x029A); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x5C1D); + if (ret) + return ret; /* Program fraction FR_PLL_DIV1 */ - phy_write(phydev, 0x17, 0xAAAA); - phy_write(phydev, 0x14, 0x5C1C); + ret = phy_write(phydev, 0x17, 0xAAAA); + if (ret) + return ret; + ret = phy_write(phydev, 0x14, 0x5C1C); + if (ret) + return ret; return 0; } From patchwork Thu Dec 7 14:27:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120984 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8424800qgn; Thu, 7 Dec 2017 06:27:29 -0800 (PST) X-Google-Smtp-Source: AGs4zMaMVwTSwYun3S8s4XnHP4W3Bchq1B4jJSNI8+D9e6FYE0eR49R+MK8+4ubte0diBPjhkJMU X-Received: by 10.101.83.201 with SMTP id z9mr24922367pgr.181.1512656848842; Thu, 07 Dec 2017 06:27:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656848; cv=none; d=google.com; s=arc-20160816; b=s9nrf6z7hO1bCuL+9FsEut654jKoFYqMxc1mzwr99OFsEj+PwVKky5KT1/uILXijHd E/aNbYrukyiIxKag7IeXAErThRQXkOKaTi4uO+srLUziZffTkCux55wzJ/AYuJyv/Uen /oOXjwFn7pBPRJV82PdKJ653sjvygIsOFN0bH6naN03Xo6n/3ud/TeQRnqwLUSC4tFeq gKL4ktBpB4ONlzouBP+RcJ6GjF1hVhMMxS1SPan7QJuIs9nJsK43J5MPeEvdfVF0izOO EJKApDZpEiso7fEK7fc+XkIZ9RBYteRG+KCK4nWqQ4g3BLlQm08VEOS1pHufw7KM+dS+ Sr4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=jbX9Qzt4ETVDloZ9SbBVmbstpUnZAlqiEZ57Kqs6F4I=; b=WKBmUeD4q1NwcjHQLvqp3uFXV8vZ9NiKfoZFxcieTCk4DViHbcY7VRiEX3FqrzGeEk ZP14Jt2fu3EMgbd1iWqrpoMUTb/jxR/FyuN2aUqpx4rMksgag1JcKgXTHlZc3JKrnHyv PGH3rV8HflGmqdJ+IwgJnWc1wl0hgPSIjHW6XYXEeKAuF+sWI5VJ3X20F5bBw8sMiJuN wMbqAboTsy7cnkoSzsHR6hvH/WqlSuniWTP5vdt62lMmDjnFBI2c4pjEwofBbxi6UkZG kkzpdQ5O8RnIoGBNjEzC+GgmONBxjE0i9KjrLcEVKpbNLUoT99LL2P1cQj0r3Mv75Qpq 4E3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=w645etGN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a28si3779900pgd.201.2017.12.07.06.27.28; Thu, 07 Dec 2017 06:27:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=w645etGN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753886AbdLGO11 (ORCPT + 22 others); Thu, 7 Dec 2017 09:27:27 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36193 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753583AbdLGO1V (ORCPT ); Thu, 7 Dec 2017 09:27:21 -0500 Received: by mail-wr0-f195.google.com with SMTP id v105so7693222wrc.3 for ; Thu, 07 Dec 2017 06:27:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jbX9Qzt4ETVDloZ9SbBVmbstpUnZAlqiEZ57Kqs6F4I=; b=w645etGNuinIxb58yU/fXJUuJyspRXIykC1XBqhs1Ahih81a0BeJBO8JM1Ql1x7QBx s0ZuI/aX2DUZT9IpOn9YMeHqronR8yfPZq0g1pXIUsiu4zfsr4s5rZXiCCHiEar6fDp2 Jnyhf/0FUSl/+FYJvZ8nhcKRY+kHrAroYiSRZU4/VNbINGR5NlX5dq813YS7vmijhjAU 4mAKmKZOteBS7n/digM+eSWarNAqEOOmFaBA8Iyrd46+zFdVY4m5KidZFFtjniFGEial sV17EAiiuCFMRkVuRKMLoFOphA7h9TWzncrJFUUt+MWPpLPkvQ3xeAQKPzHTzy+MKYTj I3mw== 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; bh=jbX9Qzt4ETVDloZ9SbBVmbstpUnZAlqiEZ57Kqs6F4I=; b=ANFUWugjKyTXl/JC8C4SAKfkPTComtPzjiGo2u8rNnbU56rt+yzps7d87cMTzAlgMj +jCGUVBetJHxdLiKqkB3ILoWJcobiOANcgdZSiIGOPH7ccWG3B3bfd8WR+NTWVWYO8cl f6ZP49M4UgDtJD421ZthvxqONMJRBMm+tYkzxhcvkChJ3cccKIEnCfAJZSPAdMRYG9Ia DU1iDWiPmfmfNqN19I5fmqd46kjsK6PZoz7O6JNbvRShW0GChvK1c453kq7xOGSjIGd2 MOh+9ntFGDj1Ig+a8SPUS6nWgxWDMrzws7kkU2hvcjJKKosg6mqK0Y9DA1DgMjS5qiBO 1KNw== X-Gm-Message-State: AJaThX7BglX1m2qo7k3KqHzrh4cLLmol5UeugaQMaO4AxYjR+UAaqUPi M/4NAibFcthZ+WjxfQeSWsoUYw== X-Received: by 10.223.186.202 with SMTP id w10mr25047315wrg.187.1512656840311; Thu, 07 Dec 2017 06:27:20 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:19 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, Neil Armstrong Subject: [PATCH net-next v2 2/8] net: phy: meson-gxl: define control registers Date: Thu, 7 Dec 2017 15:27:09 +0100 Message-Id: <20171207142715.32578-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Define registers and bits in meson-gxl PHY driver to make a bit more human friendly. No functional change. Signed-off-by: Neil Armstrong Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 64 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 13 deletions(-) -- 2.14.3 diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 7ddb709f69fc..d82aa8cea401 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -22,54 +22,92 @@ #include #include #include +#include + +#define TSTCNTL 20 +#define TSTCNTL_READ BIT(15) +#define TSTCNTL_WRITE BIT(14) +#define TSTCNTL_REG_BANK_SEL GENMASK(12, 11) +#define TSTCNTL_TEST_MODE BIT(10) +#define TSTCNTL_READ_ADDRESS GENMASK(9, 5) +#define TSTCNTL_WRITE_ADDRESS GENMASK(4, 0) +#define TSTREAD1 21 +#define TSTWRITE 23 + +#define BANK_ANALOG_DSP 0 +#define BANK_BIST 3 + +/* Analog/DSP Registers */ +#define A6_CONFIG_REG 0x17 + +/* BIST Registers */ +#define FR_PLL_CONTROL 0x1b +#define FR_PLL_DIV0 0x1c +#define FR_PLL_DIV1 0x1d static int meson_gxl_config_init(struct phy_device *phydev) { int ret; /* Enable Analog and DSP register Bank access by */ - ret = phy_write(phydev, 0x14, 0x0000); + ret = phy_write(phydev, TSTCNTL, 0); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x0400); + ret = phy_write(phydev, TSTCNTL, TSTCNTL_TEST_MODE); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x0000); + ret = phy_write(phydev, TSTCNTL, 0); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x0400); + ret = phy_write(phydev, TSTCNTL, TSTCNTL_TEST_MODE); if (ret) return ret; - /* Write Analog register 23 */ - ret = phy_write(phydev, 0x17, 0x8E0D); + /* Write CONFIG_A6*/ + ret = phy_write(phydev, TSTWRITE, 0x8e0d) if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x4417); + ret = phy_write(phydev, TSTCNTL, + TSTCNTL_WRITE + | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_ANALOG_DSP) + | TSTCNTL_TEST_MODE + | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, A6_CONFIG_REG)); if (ret) return ret; /* Enable fractional PLL */ - ret = phy_write(phydev, 0x17, 0x0005); + ret = phy_write(phydev, TSTWRITE, 0x0005); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x5C1B); + ret = phy_write(phydev, TSTCNTL, + TSTCNTL_WRITE + | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) + | TSTCNTL_TEST_MODE + | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_CONTROL)); if (ret) return ret; /* Program fraction FR_PLL_DIV1 */ - ret = phy_write(phydev, 0x17, 0x029A); + ret = phy_write(phydev, TSTWRITE, 0x029a); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x5C1D); + ret = phy_write(phydev, TSTCNTL, + TSTCNTL_WRITE + | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) + | TSTCNTL_TEST_MODE + | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_DIV1)); if (ret) return ret; /* Program fraction FR_PLL_DIV1 */ - ret = phy_write(phydev, 0x17, 0xAAAA); + ret = phy_write(phydev, TSTWRITE, 0xaaaa); if (ret) return ret; - ret = phy_write(phydev, 0x14, 0x5C1C); + ret = phy_write(phydev, TSTCNTL, + TSTCNTL_WRITE + | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) + | TSTCNTL_TEST_MODE + | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_DIV0)); if (ret) return ret; From patchwork Thu Dec 7 14:27:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120991 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8427432qgn; Thu, 7 Dec 2017 06:29:53 -0800 (PST) X-Google-Smtp-Source: AGs4zMb2jfSqNJSeC2fJEnglPhsc8fLPBb3zlY54iaXla2OY9yugZ3deChSWe83zPLhiAr9AGLxH X-Received: by 10.84.252.145 with SMTP id y17mr2195358pll.147.1512656993842; Thu, 07 Dec 2017 06:29:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656993; cv=none; d=google.com; s=arc-20160816; b=gae1Ds7aOTSU9hfck++IjkBO+ti9OfYKJK0IqXVIcW3D12u/ozuQ1N5FAMVGHyGFxw 87vOg/ILfjtTFb5Cg6gr/yIMzbsfwC5YvPeW1RFg45uMAV7NPwmX/FjfEIOZJ83qt/yt uex9KmkbHTlLYTa0KtninptxQvd2XJXlXgjsJzCvX5Hs6fVR0jW46cAMH3lEjWXVbAzg TMO2CXfiYGg6T+if+2IYObKsKbSWQEmARF0N0j85RaVewJORwtd/zj3c0XmRnneoEPmL FJ9+3prNFx1SsfqTk9E03Ph2Gdl4goLpZ16Xna4t3/Po0ZbnCT8WaWJ9HuQ0R5lanVb8 fmqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=JeYslYrYs80IFg4iNX1KkL4etF5OASMU6dHxAErRtHY=; b=GILxltJj9SxPIoOeS96NtLOML8dBRwc/GSLoS5EfoFGo4e9mtqsuSxfwgPC1cS7M5x Tv4spuCqa++j65n5Sb/PflI2I+0SprQV839vkluAw1AupFSRJub4ICYUwnQI9QCHHSt+ sv2LXDIz5tjpouUzDSiWWb9x3L2jLhm2LuK/ik56sTFMw1ndo22j0DP5t4Q3MH/ZNcsI MqyL6Ji6K7nnZKyBsnYk1skT4qNwGYWSPUd4ebYa7gvMfAmL5KoSCgEPYiqrAFrzqFfT AeZnFqDg88AeVj73ZNimROstH/i0hpSC/zIzAVS2oxh360FP1HQoxbfD5+xRfFIZpqzT z5Bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=mQWhOn9E; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c7si3886914plr.486.2017.12.07.06.29.53; Thu, 07 Dec 2017 06:29:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=mQWhOn9E; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754087AbdLGO3w (ORCPT + 22 others); Thu, 7 Dec 2017 09:29:52 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:35508 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753762AbdLGO1W (ORCPT ); Thu, 7 Dec 2017 09:27:22 -0500 Received: by mail-wm0-f66.google.com with SMTP id f9so13332938wmh.0 for ; Thu, 07 Dec 2017 06:27:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JeYslYrYs80IFg4iNX1KkL4etF5OASMU6dHxAErRtHY=; b=mQWhOn9ENHevACRJOn4KwDhVq9lzjJCrY6QMn+jnsQNH2EhDCGzXmWw9pkWhdpiH/G 1/tkmhPvYyMZ/txdVJj+WtSPaEy/wmFjGYKoJhp7DXUadnY0Uyn0AAXyUTJWGjil0xR5 MSOi71EnHL/oYiCkvt7gC/OYBiqYnhQu9kJ7pTC6elVQMgvEOhER13hQgN+cS6kcWQto vXGlznqVswmtVKlWiDKBP1Bzd6UhLdcV+zZAc+MVPW5HgiH4shkpg2HjupBIXNexSakF +qnSepwoBnGEJ4h/cxI5OmAOe3sHKhlBg+5B5OXVX+vWiHh/4CJwhoUUAMLTPiDKC3rp sfsg== 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; bh=JeYslYrYs80IFg4iNX1KkL4etF5OASMU6dHxAErRtHY=; b=PNAGaktxVxBa2Gbh+vQ6MMO8rP83JuRjdY3zrTsGhAMWzndD/R5ICzQimzmlnFHz+R 6sCb55NFysFw+2x9pb3Kk4ugYZF1HH9ike6oSnAyOO7JRKDK6xkkKcIuoHmlUnocEWFK xZx16bA0TgdOPkc/Yc/3I3INGejWM/eA94gYAowfpl65bhNJbuWj3VXZkRu9tA0gLVgf 6ZhkKFdD7hH/iZUCCzA2bV3aChG5NpvhgdNZ173As85o1wy6x+nMecrabyECtdMWYe/z 7BkXWLT51ExonsOioYZ5j0OUbe4yb1KqqmCPPMfiT+9LSzHC6zpd7zNIQ8SYX1u8AdSo v4Qw== X-Gm-Message-State: AKGB3mIHFYoJp/0hALwYGkxXdYm0qCVmXb2uW+/pFeGhR8homXN27MIZ 3JM1k68fHVZWy3GA54qMtxGiBQ== X-Received: by 10.28.128.214 with SMTP id b205mr1440776wmd.82.1512656841279; Thu, 07 Dec 2017 06:27:21 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:20 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 3/8] net: phy: meson-gxl: add read and write helpers for bank registers Date: Thu, 7 Dec 2017 15:27:10 +0100 Message-Id: <20171207142715.32578-4-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add read and write helpers to manipulate banked registers on this PHY This helps clarify the settings applied to these registers in the init function and upcoming changes. Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 103 ++++++++++++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 36 deletions(-) -- 2.14.3 diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index d82aa8cea401..05054770aefb 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -45,11 +45,13 @@ #define FR_PLL_DIV0 0x1c #define FR_PLL_DIV1 0x1d -static int meson_gxl_config_init(struct phy_device *phydev) +static int meson_gxl_open_banks(struct phy_device *phydev) { int ret; - /* Enable Analog and DSP register Bank access by */ + /* Enable Analog and DSP register Bank access by + * toggling TSTCNTL_TEST_MODE bit in the TSTCNTL register + */ ret = phy_write(phydev, TSTCNTL, 0); if (ret) return ret; @@ -59,55 +61,84 @@ static int meson_gxl_config_init(struct phy_device *phydev) ret = phy_write(phydev, TSTCNTL, 0); if (ret) return ret; - ret = phy_write(phydev, TSTCNTL, TSTCNTL_TEST_MODE); - if (ret) - return ret; + return phy_write(phydev, TSTCNTL, TSTCNTL_TEST_MODE); +} - /* Write CONFIG_A6*/ - ret = phy_write(phydev, TSTWRITE, 0x8e0d) +static void meson_gxl_close_banks(struct phy_device *phydev) +{ + phy_write(phydev, TSTCNTL, 0); +} + +static int meson_gxl_read_reg(struct phy_device *phydev, + unsigned int bank, unsigned int reg) +{ + int ret; + + ret = meson_gxl_open_banks(phydev); if (ret) - return ret; - ret = phy_write(phydev, TSTCNTL, - TSTCNTL_WRITE - | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_ANALOG_DSP) - | TSTCNTL_TEST_MODE - | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, A6_CONFIG_REG)); + goto out; + + ret = phy_write(phydev, TSTCNTL, TSTCNTL_READ | + FIELD_PREP(TSTCNTL_REG_BANK_SEL, bank) | + TSTCNTL_TEST_MODE | + FIELD_PREP(TSTCNTL_READ_ADDRESS, reg)); if (ret) - return ret; + goto out; - /* Enable fractional PLL */ - ret = phy_write(phydev, TSTWRITE, 0x0005); + ret = phy_read(phydev, TSTREAD1); +out: + /* Close the bank access on our way out */ + meson_gxl_close_banks(phydev); + return ret; +} + +static int meson_gxl_write_reg(struct phy_device *phydev, + unsigned int bank, unsigned int reg, + uint16_t value) +{ + int ret; + + ret = meson_gxl_open_banks(phydev); if (ret) - return ret; - ret = phy_write(phydev, TSTCNTL, - TSTCNTL_WRITE - | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) - | TSTCNTL_TEST_MODE - | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_CONTROL)); + goto out; + + ret = phy_write(phydev, TSTWRITE, value); if (ret) - return ret; + goto out; - /* Program fraction FR_PLL_DIV1 */ - ret = phy_write(phydev, TSTWRITE, 0x029a); + ret = phy_write(phydev, TSTCNTL, TSTCNTL_WRITE | + FIELD_PREP(TSTCNTL_REG_BANK_SEL, bank) | + TSTCNTL_TEST_MODE | + FIELD_PREP(TSTCNTL_WRITE_ADDRESS, reg)); + +out: + /* Close the bank access on our way out */ + meson_gxl_close_banks(phydev); + return ret; +} + +static int meson_gxl_config_init(struct phy_device *phydev) +{ + int ret; + + /* Write CONFIG_A6*/ + ret = meson_gxl_write_reg(phydev, BANK_ANALOG_DSP, A6_CONFIG_REG, + 0x8e0d); if (ret) return ret; - ret = phy_write(phydev, TSTCNTL, - TSTCNTL_WRITE - | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) - | TSTCNTL_TEST_MODE - | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_DIV1)); + + /* Enable fractional PLL */ + ret = meson_gxl_write_reg(phydev, BANK_BIST, FR_PLL_CONTROL, 0x5); if (ret) return ret; /* Program fraction FR_PLL_DIV1 */ - ret = phy_write(phydev, TSTWRITE, 0xaaaa); + ret = meson_gxl_write_reg(phydev, BANK_BIST, FR_PLL_DIV1, 0x029a); if (ret) return ret; - ret = phy_write(phydev, TSTCNTL, - TSTCNTL_WRITE - | FIELD_PREP(TSTCNTL_REG_BANK_SEL, BANK_BIST) - | TSTCNTL_TEST_MODE - | FIELD_PREP(TSTCNTL_WRITE_ADDRESS, FR_PLL_DIV0)); + + /* Program fraction FR_PLL_DIV1 */ + ret = meson_gxl_write_reg(phydev, BANK_BIST, FR_PLL_DIV0, 0xaaaa); if (ret) return ret; From patchwork Thu Dec 7 14:27:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120990 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8427073qgn; Thu, 7 Dec 2017 06:29:34 -0800 (PST) X-Google-Smtp-Source: AGs4zMZC2vggaugfXLeGs0kYyP8ooqREJyfx7qCH9XbJPqFbDm0zIoT1jgR/s2jiondl9kkNUZZj X-Received: by 10.99.96.87 with SMTP id u84mr25248257pgb.407.1512656973938; Thu, 07 Dec 2017 06:29:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656973; cv=none; d=google.com; s=arc-20160816; b=tkVE2KsDPQdRuqMn9o24aP7DWv9AKyzugKLYDbKG7m1TRLphA3TJz9MgHc9UwNVHsj s7Bf21gW0WkNmak//sFbiHDu5RodGiSeyZvyYlm6l6o9WUpPOLEbQnyc/9CeYzDPoaWT WKpcs1WL4lnh7VnnXIoXR7Nm35CgrbCjKLbK1GA/M5JWxORJZ+h3Si7ON0zeFViPVxGg XPshkB9KYfK7nYOSz2Gc/WHMkbqQ4YfeShvzTchGYzQpgoyPM2/dRn+g2JBikQ9YDXKS 4NznoAv7N7NZnvRac8pBZSZRH+ywXc2YyKiGXc0EP85I+h+IIj5LY0Ys5rlb8Zvk60Bd hPuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=3+UYMrDQApFhAZNtxozbstALLWZm0nKobEox3zS1hFs=; b=M0y8fF6+37Z3wxRTwCcSviotqZSbrHh04DI3liRJcpmctV1C/DW9UGz6Ffe6GMKsd+ laU8pt+GxlNZv2S8FB8+jWjyRoT9nQAPcLgMtf73pK/j0GNFpzTyI6RL3KN6pWVUme8M cFuzvfeOobp50LNHCKddVKZC3RNDNcvmuMlSukLPWZbX8ARVs7lwUQuTg7QcHIDJht7f 5ScjVTusereH1BqNPIj7DqoCuKldKKPqBqnfFePT7GgtEM8BTfWwvUpenHmEW/9CmnJI gQqh4SEr/0mkvkOAH26qE2XaiwCzFTyMQ8fSxl/M+maMRCSYuBghtglaIx6e1EbOQ26X 3fGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=ExoQOdc8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y72si3847506plh.393.2017.12.07.06.29.32; Thu, 07 Dec 2017 06:29:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=ExoQOdc8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754065AbdLGO3a (ORCPT + 22 others); Thu, 7 Dec 2017 09:29:30 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:42959 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753795AbdLGO1X (ORCPT ); Thu, 7 Dec 2017 09:27:23 -0500 Received: by mail-wm0-f67.google.com with SMTP id l141so13349868wmg.1 for ; Thu, 07 Dec 2017 06:27:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3+UYMrDQApFhAZNtxozbstALLWZm0nKobEox3zS1hFs=; b=ExoQOdc8ChMO5Qlrms90cLV6pwZdA98GbE7AB0SamwS7xmyNXw75bGLZx1zYoR5Boh EentQwHgp7j/Se18WvjuoQd1FkcF4bLqxeWQGES2jJN6eSrjh8mBW54BsttHVLurOCbV 3cmPlCHNXjh/znAeQeSQWW6U6njs6R3QU95VI0JBrV/r6Ef55RAqeGse+D3YZDx0eh1V axjvU+q2jgvLUqfQDfJryzJ1xSn+3bvKf6xnoUYDJawPR3/BQdi9f/zUS//wjmwNceuG W79082XzghbuXr7RacMN4BpHfs8x9xyweERDDNmATl8sv0nmn921ukVGpp5jHJu3W0DZ Chlg== 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; bh=3+UYMrDQApFhAZNtxozbstALLWZm0nKobEox3zS1hFs=; b=YoblsjZNnpGJ/KqePSRCIgUt5PFnZZAhchLx/G/1bJrOtVbN0XGkme5wBN1mZ6PuSa LW2rSNIjgWJ4hqCZgTSxROW9aq7WyakdXBBhWy+YVsmLpB258eDhp5QvUPR0FIXQ1eGi BJqMBsKInUxUiNDTCamUpWTPV5ol39m8KrckEeFmAULSp0huCdOTRILXq+Ch5EJsXLI3 BiTMmF6+okojTZ2c6E0gYK2qIp5kOloPVkh6g/IjXrJd7AZUyUgV+cPEYaZU6Z6HVNau ybN1Tj5p2JEdXF1BvKK3OJzAMJ6oT+1k0A7HsMZgZOpR17vYNkVfCZNf/GI17s77blW3 v5IA== X-Gm-Message-State: AKGB3mLhzr5p/+8UrD/KhXcjL1aBgMU8M0GpCMPpPQvqqe4opxLHdFag 2YPkV35I69LDZFOJJDwvtOrfvA== X-Received: by 10.28.51.21 with SMTP id z21mr1385340wmz.94.1512656842271; Thu, 07 Dec 2017 06:27:22 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:21 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 4/8] net: phy: meson-gxl: use genphy_config_init Date: Thu, 7 Dec 2017 15:27:11 +0100 Message-Id: <20171207142715.32578-5-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use the generic init function to populate some of the phydev structure fields Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.14.3 Reviewed-by: Andrew Lunn diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 05054770aefb..2e8c40df33c2 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -142,7 +142,7 @@ static int meson_gxl_config_init(struct phy_device *phydev) if (ret) return ret; - return 0; + return genphy_config_init(phydev); } static struct phy_driver meson_gxl_phy[] = { From patchwork Thu Dec 7 14:27:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120989 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8426589qgn; Thu, 7 Dec 2017 06:29:06 -0800 (PST) X-Google-Smtp-Source: AGs4zMb1Srh4JN/fxNh+l6OZJmJKLwsr0z4BLs7THzY5T18sNZfTmfBXVixfQr+1bmPzLZYhSupX X-Received: by 10.159.249.75 with SMTP id h11mr4168723pls.223.1512656946413; Thu, 07 Dec 2017 06:29:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656946; cv=none; d=google.com; s=arc-20160816; b=vlyZJrFieRxE3rN7ajKzG0egfWQaqrCcVC2gKqDId6ezFKlPa+SvdJlkgGgg7gjK/1 fow5VhinPTFZbSTJbptq3jSGkJFp9c+2UbipMecnyOQ4yL+78KEMwlNwHcGfYj8Wg5Ki iSuYsChrtRForJ5RotUNtO1Sm0HYFUQiJBasfuUEyzJnu8ZItwuBJiB/vEtyblC3+A4+ VDjR2M49Vw6rzEvwDVeBd8MmY1m9Rd9rQ5SZzSyljkZSUCVLWzZg3pgRzaUS471rSxk5 kHH910XEW3jvidTDr9MVWBV+0I5WCaY6K5VTIzgE2TS6QGdf+A1Dj9u5MiKf+0fQaTi6 EHrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=3UvWykb2FP/peh9qpSptmY33mHqvfp6epBds5Tj7ys0=; b=s0HwTMrFDd5R/mrhFv3h3IOFDUiKx4Zf2WHCqlFbpuWUaMCeL5E8L0wEx9mRc0ArJM 0lGx4viQmKcS8Z3ban0LaIcEms2v87/b1MyzSuyHTZb21VzHmErLrzHgA7MZ96MmsBzn EuxDP8gauh4yj5raDN/bQ0GzpT96WHgnGkmhAmRPP80tazOyyIgclINi5m7vAeDRXGZ2 eDrSLCa5zONKcaUoiFNKIKDzwdv3wUS5ODq7yd7E9izMw81VzP3Sbv9f+XR+IBSVYVLG 4tiTZEiF1gAoVP+zfqLa6QGLp592ziEac0fKWHqbStZf2FyG0qatZmSW9SbDqw5ffVbW BvCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=I0vGMvU1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 26si4141119pfo.269.2017.12.07.06.29.05; Thu, 07 Dec 2017 06:29:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=I0vGMvU1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754060AbdLGO3E (ORCPT + 22 others); Thu, 7 Dec 2017 09:29:04 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:34528 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753818AbdLGO1Y (ORCPT ); Thu, 7 Dec 2017 09:27:24 -0500 Received: by mail-wm0-f53.google.com with SMTP id y82so879646wmg.1 for ; Thu, 07 Dec 2017 06:27:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3UvWykb2FP/peh9qpSptmY33mHqvfp6epBds5Tj7ys0=; b=I0vGMvU1t7Nn4gBUTW+g7CAzedHuwBRgusg/VYotfFt/ggHUEo47dXOS4iwu90Nj/Z NHEssRJB68aFTf0+8L58DOuM2zifuH8zFY1u/y+kTxza82rzCKvexbqEiFFneSbh2Fss cgLr8k2bvLfjWJ7atx2hqlYOUOr+ryEljhpEM0hlZUWY2CUtPK9wHR5XojgG19IeJTTT /aSYRTlB/ly2IJl36dvwddFrM/QnTPpwKLc2SUwcwVNTXBhMDC4lapTPzzG7lwfe4rIW 51SnAAamO6xD0BEpriRNf0XpxK4IPY8hBuHqSVuNC6M+A+cP5ScZfhG40DBY6ps7/MG1 u2WA== 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; bh=3UvWykb2FP/peh9qpSptmY33mHqvfp6epBds5Tj7ys0=; b=iMcbnCMHW4+HzMDAo9s6I1qaP3lwt0sY2hPW/kAYHAO/tvwKOfPmrO8IYw/xff0n0d l0QELJ5wJyRzLIJDX3BrVTTEV/AmcLIX4r/GXripMvBshaj8tocS9/EzpNs35kVF32DE JmnqITMF0iwn9BTbimUP/z/ogyi95P62lHfC1m8zDi+tU3v9RglxFqmIOpwgiwve/FUq HdY0iyj5kIKPmdMMi9q8tYLCeSip3TEx1hc0Iv3nd8YGc6LfaYMwy/c6U8zCigaAV8Lc n2JiVMx7ctYJ1e6NKhk+H4XfzaT2r/PMIQpwapE7CgVpKt2fAVeNSyWf8skPWLlBXrQs BJSQ== X-Gm-Message-State: AKGB3mIDw3mWndW5AsrDVl8WD6uEnpkAQtMJkG8xj9LXZHA2ahOAjgRT 4JWQiiMdNvxJo+41KOlaUv9DXA== X-Received: by 10.28.26.139 with SMTP id a133mr1314607wma.90.1512656843152; Thu, 07 Dec 2017 06:27:23 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:22 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 5/8] net: phy: meson-gxl: detect LPA corruption Date: Thu, 7 Dec 2017 15:27:12 +0100 Message-Id: <20171207142715.32578-6-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The purpose of this change is to fix the incorrect detection of the link partner (LP) advertised capabilities which sometimes happens with this PHY (roughly 1 time in a dozen) This issue may cause the link to be negotiated at 10Mbps/Full or 10Mbps/Half when 100MBps/Full is actually possible. In some case, the link is even completely broken and no communication is possible. To detect the corruption, we must look for a magic undocumented bit in the WOL bank (hint given by the SoC vendor kernel) but this is not enough to cover all cases. We also have to look at the LPA ack. If the LP supports Aneg but did not ack our base code when aneg is completed, we assume something went wrong. The detection of a corrupted LPA triggers a restart of the aneg process. This solves the problem but may take up to 6 retries to complete. Fixes: 7334b3e47aee ("net: phy: Add Meson GXL Internal PHY driver") Signed-off-by: Jerome Brunet --- I suppose this patch probably seems a bit hacky, especially the part about the link partner acknowledge. I'm trying to figure out if the value in MII_LPA makes sense but I don't have such a deep knowledge of the ethernet spec. To me, it does not makes sense for the LP to support ANEG (Bit 1 in MII_EXPENSION), the aneg to have successfully complete and, at the same time, LP does not ACK our base code word, which we should have sent during this aneg. If you think this may have unintended consequences or if you have an idea to this differently, feel free to let me know. drivers/net/phy/meson-gxl.c | 59 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) -- 2.14.3 diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 2e8c40df33c2..726e0eeed475 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -35,11 +35,16 @@ #define TSTWRITE 23 #define BANK_ANALOG_DSP 0 +#define BANK_WOL 1 #define BANK_BIST 3 /* Analog/DSP Registers */ #define A6_CONFIG_REG 0x17 +/* WOL Registers */ +#define LPI_STATUS 0xc +#define LPI_STATUS_RSV12 BIT(12) + /* BIST Registers */ #define FR_PLL_CONTROL 0x1b #define FR_PLL_DIV0 0x1c @@ -145,6 +150,58 @@ static int meson_gxl_config_init(struct phy_device *phydev) return genphy_config_init(phydev); } +/* This specific function is provided to cope with the possible failures of + * this phy during aneg process. When aneg fails, the PHY reports that aneg + * is done but the value found in MII_LPA is wrong: + * - Early failures: MII_LPA is just 0x0001. if MII_EXPANSION reports that + * the link partner (LP) supports aneg but the LP never acked our base + * code word, it is likely that we never sent it to begin with. + * - Late failures: MII_LPA is filled with a value which seems to make sense + * but it actually is not what the LP is advertising. It seems that we + * can detect this using a magic bit in the WOL bank (reg 12 - bit 12). + * If this particular bit is not set when aneg is reported being done, + * it means MII_LPA is likely to be wrong. + * + * In both case, forcing a restart of the aneg process solve the problem. + * When this failure happens, the first retry is usually successful but, + * in some cases, it may take up to 6 retries to get a decent result + */ +int meson_gxl_read_status(struct phy_device *phydev) +{ + int ret, wol, lpa, exp; + + if (phydev->autoneg == AUTONEG_ENABLE) { + ret = genphy_aneg_done(phydev); + if (ret < 0) + return ret; + else if (!ret) + goto read_status_continue; + + /* Aneg is done, let's check everything is fine */ + wol = meson_gxl_read_reg(phydev, BANK_WOL, LPI_STATUS); + if (wol < 0) + return wol; + + lpa = phy_read(phydev, MII_LPA); + if (lpa < 0) + return lpa; + + exp = phy_read(phydev, MII_EXPANSION); + if (exp < 0) + return exp; + + if (!(wol & LPI_STATUS_RSV12) || + ((exp & EXPANSION_NWAY) && !(lpa & LPA_LPACK))) { + /* Looks like aneg failed after all */ + phydev_dbg(phydev, "LPA corruption - aneg restart\n"); + return genphy_restart_aneg(phydev); + } + } + +read_status_continue: + return genphy_read_status(phydev); +} + static struct phy_driver meson_gxl_phy[] = { { .phy_id = 0x01814400, @@ -155,7 +212,7 @@ static struct phy_driver meson_gxl_phy[] = { .config_init = meson_gxl_config_init, .config_aneg = genphy_config_aneg, .aneg_done = genphy_aneg_done, - .read_status = genphy_read_status, + .read_status = meson_gxl_read_status, .suspend = genphy_suspend, .resume = genphy_resume, }, From patchwork Thu Dec 7 14:27:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120987 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8425903qgn; Thu, 7 Dec 2017 06:28:27 -0800 (PST) X-Google-Smtp-Source: AGs4zMaIKPd1ItwtGDhQbmC1Uo3TzwqoqGkxvtRa3su7nl/xPAV8IXphbIFk5Un+Y0CUPWZCJrrf X-Received: by 10.159.234.75 with SMTP id c11mr27282910plr.422.1512656907031; Thu, 07 Dec 2017 06:28:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656907; cv=none; d=google.com; s=arc-20160816; b=EsqMJY1RGhHnyXgA6f1RLGLo8np1vuVZD8JO9kjo8niT/5FlYp12fJhesV8XPZautm cw2hCCCvJ+LS435+585sArz7OKyGHGnlJJzSrb8oH6P/EK8Ik4TvA3TMLBR3IeiDrc27 Nrpz9c1ducV8UvFssxywK38/xd+uq4IcDIsJ0qK8e9hj1LSMi4T8cznpSrUsHnH0c9Id cG6gc7bFfdUgLtNmCSD44FfEb9tPSSmkQQAtN9m5nejtsVmtjiQU24MFTZB1Sd8cJXAP AG7TJy7lMmeI52wfFUganH8Aa8I9dvnBSpTYEp75ocORnI9UPZkCrUdt/59Ts85NCgUz u0Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=k41/HapxpcUteShWzrcLk6o1is4mUHfA9p2+aRvDPxA=; b=pe5jP+78GWjcDqw+yYCKiMP9VvTkXkkXgrQNWPWGapiqPHDvNsh/gf0SgUoK4sbeka mWl2G9kN6dXOgKJ3cvMZTF57vesqvpJyBNCz9eCSj6TU6rHIF1dAXsIgubQ9vsG7hmwO yk2w7vNgirjuuynJBoA6m+3rsHyP7+uqk+rz1ph82pfIMKkt0+az+Kr7eb/Rp3B0i4HP osQmDRq3do6A9sho0GYcJT5eoruL9nW1hfr7RujC8s3nMIlc0KbdMhOleenJIofP21it vqjADm+65ec/Uiqhg7zjgko5wK1ar39a6tfN3x6TNrSeIfWHliHZXvJ52D/VhZw/FNeI fknA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=F1SFKqpY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f65si4141473pfj.298.2017.12.07.06.28.26; Thu, 07 Dec 2017 06:28:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=F1SFKqpY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753492AbdLGO2Z (ORCPT + 22 others); Thu, 7 Dec 2017 09:28:25 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:33499 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753559AbdLGO1Z (ORCPT ); Thu, 7 Dec 2017 09:27:25 -0500 Received: by mail-wm0-f65.google.com with SMTP id g130so894466wme.0 for ; Thu, 07 Dec 2017 06:27:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=k41/HapxpcUteShWzrcLk6o1is4mUHfA9p2+aRvDPxA=; b=F1SFKqpYxgHELHqUkO6OMmL9IvNfp1jGFCizUHPhmHvV3DNsT4IgsSHa46qT0fqpSS /U1GgZ+L7JZwnWnGVEwt1QNqBB6EuSkoCaXpAUdgXMdSH+vgXgavS+HQPwNJtY3Q4KIn ig2hheIi9jmbps4DXJYRynGNPZMFRJhXt3lyFaBou4CCFQY7cH0idravIz93t+GfHe3b niEl+LydNTA3EFGfEG7OUAMNvx4liSJfC1g+PnCLHVEKllrwbENFka59x/98pPiy6vlm c6neTaJbKk0+967tpnjJ0WI/MwwNQv5jDDMlEQY0yjSez8OJMx7bR9qMdI8cyusj24I7 GjYw== 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; bh=k41/HapxpcUteShWzrcLk6o1is4mUHfA9p2+aRvDPxA=; b=oW8COj2xjE2b8UZsJwghcJkhGR/09JPCJ3vtDS7d5/JXz0D2oL2XBOmoUkaU4tIE0r TwKentODulHjuuVWPNrIzMj9pm7jCL2ZjHuWGeOEHiZRPzN7NKkVybag/yXCl9d8IAgu 90xPwi57BEzd2odfIEvhVr5O+0Zi4wbeKXb8e0520d4T9CAIfGh9f9WSQwu1uFXKVHlN a6HeYSzBuEXIz20jPmNUe0eGbYXjBDKkf1p0iO+KtjrXmt8hP7mloyx9sHG6rF6U5RwU aWphk8Yra5c9Yt8ambBNnZLeCa81zjLBx4HaOBg64I6TeDo8btx1m7YLcqI5ChjYZPpf 6Wkw== X-Gm-Message-State: AKGB3mJ+QS02l3nVtIagRhac8L0og/FuJiCfW4dXrK55/6ydG56PZpHN mPifKXwLp2TRcmCTxGzohg5FXA== X-Received: by 10.28.110.26 with SMTP id j26mr1289069wmc.46.1512656844203; Thu, 07 Dec 2017 06:27:24 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:23 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 6/8] net: phy: meson-gxl: leave CONFIG_A6 untouched Date: Thu, 7 Dec 2017 15:27:13 +0100 Message-Id: <20171207142715.32578-7-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The PHY performs just as well when left in its default configuration and it makes senses because this poke gets reset just after init. According to the documentation, all registers in the Analog/DSP bank are reset when there is a mode switch from 10BT to 100BT. In the end, we have used the default configuration so far and there is no reason to change now. Remove CONFIG_A6 poke to make this clear. Signed-off-by: Jerome Brunet --- Out of curiosity, I tried to re-apply the ANALOG/DSP settings on speed changes (patch available here [0] if someone wants to try) but I did not notice any change as a result. In the end, I thought it was safer to keep on using the ANALOG settings we have been actually using so far, everybody seems to be happy with them [0]: https://github.com/jeromebrunet/linux/commit/b594288e629a61574e76112497474fd3cf46c781 drivers/net/phy/meson-gxl.c | 9 --------- 1 file changed, 9 deletions(-) -- 2.14.3 Reviewed-by: Andrew Lunn diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 726e0eeed475..5325940fe899 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -38,9 +38,6 @@ #define BANK_WOL 1 #define BANK_BIST 3 -/* Analog/DSP Registers */ -#define A6_CONFIG_REG 0x17 - /* WOL Registers */ #define LPI_STATUS 0xc #define LPI_STATUS_RSV12 BIT(12) @@ -126,12 +123,6 @@ static int meson_gxl_config_init(struct phy_device *phydev) { int ret; - /* Write CONFIG_A6*/ - ret = meson_gxl_write_reg(phydev, BANK_ANALOG_DSP, A6_CONFIG_REG, - 0x8e0d); - if (ret) - return ret; - /* Enable fractional PLL */ ret = meson_gxl_write_reg(phydev, BANK_BIST, FR_PLL_CONTROL, 0x5); if (ret) From patchwork Thu Dec 7 14:27:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120986 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8425476qgn; Thu, 7 Dec 2017 06:28:05 -0800 (PST) X-Google-Smtp-Source: AGs4zMbB0KTDtUDEY6TSBV8Cme7z07zfLZAcpPOpwJDBfNVnX085FK9UCwCizisydEg9usdCmElp X-Received: by 10.84.169.67 with SMTP id g61mr26010936plb.152.1512656885559; Thu, 07 Dec 2017 06:28:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656885; cv=none; d=google.com; s=arc-20160816; b=WH/albz0vLVvptjePOR9lV2iYUQdadOoTCn8dYYzuWGcj+sS5buc7uQjwJeRFKf4LR EFWdM079FXzxJO0gGod2QoGPxMb+x5ZvSNedEcF3ZWaYassIFlwsizMmwPPqnDk6XP9E dHE35r9YWkRM6uoF8I32a/54ZxPe3p1pF6FZ41G+gTD5DI7/8lZz2Z5OXYZfQuu9fNt+ s8eS6qxwdagHZQgAoQ5orGZuzJpzGLhdCZA+gsthPGgdy6sVmxqYCc6JmTEqos0Dz4LR nTYmTtlxRPFAnoJL8finZL3rGUlZxgiPLuh84FDxz5FnJVCGXBqNJPimcAh+UHmjtYkL uWVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=D9e33m8eYc8i3EnNuM0oIMqS70qglGoD6u5VklvZrbo=; b=SZNuLZxT7P/HkwE+B85rC57UhM/kVJx0ZVJQujvRfbECN7rO+now6Yb9KUdfFixsA5 tKnNqy4EAcpEaZ5H3bpybwp/T2fX9KhNQ0dJvWCyn5Svb7eG3OMi9BmdPNi2PyK2JQRa Kvl8mxeaayZ75OGDScR2lu/YK1jU4iadZcICS0PZMSCZsyneL9LMMFZ9kFhAQYnUu9Wm xCfwSc/jocgDOoQ+L6OUOrf6aM5YRWFu7LkxHRZRFLU3EUbfqV7/WTLavrXtqQxuVc0I Nwrf17XLEAXmT0KqZc0jRQ2p+xPM9czN6CscdCGL00bDAjZuTap8jm81ydNLUPGLmjcQ s/uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=Seru7aNo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 92si3781739pli.692.2017.12.07.06.28.05; Thu, 07 Dec 2017 06:28:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=Seru7aNo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753975AbdLGO2D (ORCPT + 22 others); Thu, 7 Dec 2017 09:28:03 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:41371 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753854AbdLGO10 (ORCPT ); Thu, 7 Dec 2017 09:27:26 -0500 Received: by mail-wm0-f66.google.com with SMTP id g75so13503135wme.0 for ; Thu, 07 Dec 2017 06:27:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D9e33m8eYc8i3EnNuM0oIMqS70qglGoD6u5VklvZrbo=; b=Seru7aNoof5wMNGUqn2SOLwZWYltExTKXuASWi+jmi5ioMpD+JY68To0bMVdFUZ7o9 m/J4XJctM62wLZEO3dvHWD8qiVfS6sWTLngdMkuyoEr7ct7fyzI9zt2DCQoxL7OE/iwg oQ8BEQ4CLbNui3OtUCvgrpSaOE2/0MxWhfP3WkU9RfE29+6ofiufJaUroqNVsOG65w3z M0ugmDTUOBs9jd8XTTSDf9x/BZK55wrIBWul12ZFAoLgoqI5fDipUVpDGp+isZxdfj+h S/9ozUqC1DkD899nXDuzvGkdMTprnK/xLmJ2XRMZQ2USfxOZgGEubNBK7JAd/DFnpsGD fN9Q== 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; bh=D9e33m8eYc8i3EnNuM0oIMqS70qglGoD6u5VklvZrbo=; b=Yf0JqV7EGtYNaFloBOCg8AenGPV7tl6WEr3VZqxhSBbDsQ6LFB11qg1CG5CNAm9x+q XFtWzMcyqMLtZ+jAmiOxO2JQbBqAQqm97SZi5tVvzw6C5JKX5tA6U8PgXbNd/8T2jI6h EuhF2KN4dPMA3YfSGOIWtmlhxN+5JgydDK9hxr/5clDNZKwVpYWlMyfQ8RTlhl47ptLQ Qnt12QuaGxr92s3iBvmQsWmS3Zdxfvv4ihPxChKFKL0ZTU6be9rsipO+7OI0/r9KcVxn EqxzW7wLClZd9Bmsb/dQE0/A/5aDu49r9yuAdqTT7ASZ+OqYZPTcc0vD2+cidEpXa5gW 5iHQ== X-Gm-Message-State: AKGB3mJHIBy5J3xi8ywvqZC/itEMhyb+Xwr6gRXsBqtBPm84sJRHYkM2 uarlTvBRwe0lauq9H+g9B1zouA== X-Received: by 10.28.224.4 with SMTP id x4mr1288856wmg.118.1512656845491; Thu, 07 Dec 2017 06:27:25 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:24 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 7/8] net: phy: meson-gxl: add interrupt support Date: Thu, 7 Dec 2017 15:27:14 +0100 Message-Id: <20171207142715.32578-8-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Enable interrupt support in meson-gxl PHY driver Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) -- 2.14.3 diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 5325940fe899..861b021b9758 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -33,6 +33,14 @@ #define TSTCNTL_WRITE_ADDRESS GENMASK(4, 0) #define TSTREAD1 21 #define TSTWRITE 23 +#define INTSRC_FLAG 29 +#define INTSRC_ANEG_PR BIT(1) +#define INTSRC_PARALLEL_FAULT BIT(2) +#define INTSRC_ANEG_LP_ACK BIT(3) +#define INTSRC_LINK_DOWN BIT(4) +#define INTSRC_REMOTE_FAULT BIT(5) +#define INTSRC_ANEG_COMPLETE BIT(6) +#define INTSRC_MASK 30 #define BANK_ANALOG_DSP 0 #define BANK_WOL 1 @@ -193,17 +201,44 @@ int meson_gxl_read_status(struct phy_device *phydev) return genphy_read_status(phydev); } +static int meson_gxl_ack_interrupt(struct phy_device *phydev) +{ + int ret = phy_read(phydev, INTSRC_FLAG); + + return ret < 0 ? ret : 0; +} + +static int meson_gxl_config_intr(struct phy_device *phydev) +{ + u16 val; + + if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { + val = INTSRC_ANEG_PR + | INTSRC_PARALLEL_FAULT + | INTSRC_ANEG_LP_ACK + | INTSRC_LINK_DOWN + | INTSRC_REMOTE_FAULT + | INTSRC_ANEG_COMPLETE; + } else { + val = 0; + } + + return phy_write(phydev, INTSRC_MASK, val); +} + static struct phy_driver meson_gxl_phy[] = { { .phy_id = 0x01814400, .phy_id_mask = 0xfffffff0, .name = "Meson GXL Internal PHY", .features = PHY_BASIC_FEATURES, - .flags = PHY_IS_INTERNAL, + .flags = PHY_IS_INTERNAL | PHY_HAS_INTERRUPT, .config_init = meson_gxl_config_init, .config_aneg = genphy_config_aneg, .aneg_done = genphy_aneg_done, .read_status = meson_gxl_read_status, + .ack_interrupt = meson_gxl_ack_interrupt, + .config_intr = meson_gxl_config_intr, .suspend = genphy_suspend, .resume = genphy_resume, }, From patchwork Thu Dec 7 14:27:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 120985 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8424888qgn; Thu, 7 Dec 2017 06:27:32 -0800 (PST) X-Google-Smtp-Source: AGs4zMZb4yKPgfCdOr8tTC6ESiKyAHt0hoHpHSYQdnXtSFRO7WcWq5BzxRKWZtoxfCGjrN352eOj X-Received: by 10.101.78.2 with SMTP id r2mr26243473pgt.320.1512656852829; Thu, 07 Dec 2017 06:27:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512656852; cv=none; d=google.com; s=arc-20160816; b=iHwFBKmqM9s0WgVBX5CeeEiKLvUHL600I38VcVn2uxt9gFDHSVVklvkmeiXzsN5qj9 glORjq9ZISuH5IHnzn5doxm5CxmjihvXhBzgslLGw+QL9PBlnHpD6JVZdMf0nzVdCadM +wRfOkT34ItELl2KEExG9doytxLvjKVLV3ZO/6I7kU1qCjny0LH474WiTKXWD4SkqaAl Gm3OO/Pj9dSFQfTFavLjWNZ/JZKWwRGOfrFe9p+WYd41oSpaDKDn0TonrObmyB7nyeyd u/69Bey9NN+wkuXe5Ew9222332g8i5z23XqZqMyyoyMVVexHN3C+/G2PXCiynoglHNBh 5f2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=uFSdkqjmv/1cJKZrtoEi2N85tU6MudkMrjWL0DYF1QA=; b=AfwqEmaMT0zNwvHBDAyRTqneNy20BtxBVWnJNcK4Ug/f8cucOsxUdWV+pzJRBAj0ln H01Klk8lfmxhuUREWP+CfoibYoL/fGsnDnSHPq2w4CdzTSDgP9J1qCsTVcovx0MBZVda +WaGGOItCWc0QQnJwj+sANVYBkWlQoZwFp4kOk+4lR26eQHRMLZy+ijp+IFUJDPxa8v1 qyRmFMvOLnZs65nlnJ/E3LJY/bVkHXJ/ovAgKxtiMsEFo84N8OO7Tvio5ZqbhUCNX55A Z2eO8KriubEdkdBAn1RS1ilpPq8YTKHHqlDC0KiD+SMRiq6Jo9Ro6aJbg8QOR2ZbQn6M C5QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=V89VCdbO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a28si3779900pgd.201.2017.12.07.06.27.32; Thu, 07 Dec 2017 06:27:32 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=V89VCdbO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753918AbdLGO1a (ORCPT + 22 others); Thu, 7 Dec 2017 09:27:30 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:39259 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753884AbdLGO11 (ORCPT ); Thu, 7 Dec 2017 09:27:27 -0500 Received: by mail-wm0-f67.google.com with SMTP id i11so13166628wmf.4 for ; Thu, 07 Dec 2017 06:27:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uFSdkqjmv/1cJKZrtoEi2N85tU6MudkMrjWL0DYF1QA=; b=V89VCdbOwqjtmV7/wHtmzAcTC5q6LDUI3Ju1Hlh1X0jFhT2Ssyr+gNhrEcIhB2k2rU 2DTSQT+Dkbr+BvA0YfhL+0L7QJX1PS4I/9JdnMgJF/3xDqRh6rwdsOQVS6aRuFdyrRT/ U+ZXIDOK0qo4idOT3NbRsLh8aIkUG9pEZbIG4HURoRuqmxODKkzmtYWNbjfM/hsfF5zH +6Nhp5pESbwquzEw7lDpHo1n8fyZIB33w1Eoo+oB/jmg+Z9M7WRbpx5eH/VuUiU/0iUI NXPiw1ygkPmcPralK4ViABinqz8fH9TItd8NQLFJlRzct8ca7wPyH4qB/0TzzFqi+1E/ RK1g== 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; bh=uFSdkqjmv/1cJKZrtoEi2N85tU6MudkMrjWL0DYF1QA=; b=sjfEGVYrtpzIsxxDH/Fv4QOn1M9qfBbJGZZwBLwzCPFsQapgBh97lw4psZ42FhYWSB 89CONjnxqrarqYJJiyEzl+fLXeyn/JPY52U9406k4GWC2BzsS1qO6AzQ28bv/ESsqD4/ I+dH5pRaXz760/lbqfw4xjgN+CR4O7d1EkfUoz9jcWVRuSLaVaYu3K0h1ZEEnbdVN+FJ 2iEjE6qULx+/Ys0JCAsXyLaSth0x3AgNzsWdAtWPeC/F8QWIfObN42voAfSlwMxDm6tX 2b7nfybdrGxwj5Um18oMXUVjoQNN54m2cxpROYDJMwaDGJZyDWstP6JdmweKxuNfC2OH oWxA== X-Gm-Message-State: AKGB3mL+t4gf4ErDqBdi7CbYgX/UwCKvRQk5yiA9WP/f6/M3A9rvSiCT 1lbHFVRiGgdJoDJRiUfzuQM7OA== X-Received: by 10.28.174.133 with SMTP id x127mr1258988wme.107.1512656846422; Thu, 07 Dec 2017 06:27:26 -0800 (PST) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id t138sm6264520wme.16.2017.12.07.06.27.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Dec 2017 06:27:25 -0800 (PST) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli Cc: Jerome Brunet , Kevin Hilman , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 8/8] net: phy: meson-gxl: join the authors Date: Thu, 7 Dec 2017 15:27:15 +0100 Message-Id: <20171207142715.32578-9-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com> References: <20171207142715.32578-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Following previous changes, join the other authors of this driver and take the blame with them Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 1 + 1 file changed, 1 insertion(+) -- 2.14.3 Reviewed-by: Andrew Lunn diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index 861b021b9758..4cd5b2622ae1 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -256,4 +256,5 @@ MODULE_DEVICE_TABLE(mdio, meson_gxl_tbl); MODULE_DESCRIPTION("Amlogic Meson GXL Internal PHY driver"); MODULE_AUTHOR("Baoqi wang"); MODULE_AUTHOR("Neil Armstrong "); +MODULE_AUTHOR("Jerome Brunet "); MODULE_LICENSE("GPL");