From: Divya Koppera <Divya.Koppera@microchip.com>
To: <andrew@lunn.ch>, <hkallweit1@gmail.com>, <linux@armlinux.org.uk>,
<davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
<pabeni@redhat.com>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Cc: <UNGLinuxDriver@microchip.com>
Subject: [PATCH net-next] net: phy: micrel: Adding SQI support for lan8814 phy
Date: Thu, 25 Aug 2022 13:35:49 +0530 [thread overview]
Message-ID: <20220825080549.9444-1-Divya.Koppera@microchip.com> (raw)
Supports SQI(Signal Quality Index) for lan8814 phy, where
it has SQI index of 0-7 values and this indicator can be used
for cable integrity diagnostic and investigating other noise
sources.
Signed-off-by: Divya Koppera <Divya.Koppera@microchip.com>
---
drivers/net/phy/micrel.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index e78d0bf69bc3..3775da7afc64 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1975,6 +1975,13 @@ static int ksz886x_cable_test_get_status(struct phy_device *phydev,
#define LAN8814_CLOCK_MANAGEMENT 0xd
#define LAN8814_LINK_QUALITY 0x8e
+#define LAN8814_DCQ_CTRL 0xe6
+#define LAN8814_DCQ_CTRL_READ_CAPTURE_ BIT(15)
+#define LAN8814_DCQ_CTRL_CHANNEL_MASK GENMASK(1, 0)
+#define LAN8814_DCQ_SQI 0xe4
+#define LAN8814_DCQ_SQI_MAX 7
+#define LAN8814_DCQ_SQI_VAL_MASK GENMASK(3, 1)
+
static int lanphy_read_page_reg(struct phy_device *phydev, int page, u32 addr)
{
int data;
@@ -2927,6 +2934,32 @@ static int lan8814_probe(struct phy_device *phydev)
return 0;
}
+static int lan8814_get_sqi(struct phy_device *phydev)
+{
+ int rc, val;
+
+ val = lanphy_read_page_reg(phydev, 1, LAN8814_DCQ_CTRL);
+ if (val < 0)
+ return val;
+
+ val &= ~LAN8814_DCQ_CTRL_CHANNEL_MASK;
+ val |= LAN8814_DCQ_CTRL_READ_CAPTURE_;
+ rc = lanphy_write_page_reg(phydev, 1, LAN8814_DCQ_CTRL, val);
+ if (rc < 0)
+ return rc;
+
+ rc = lanphy_read_page_reg(phydev, 1, LAN8814_DCQ_SQI);
+ if (rc < 0)
+ return rc;
+
+ return FIELD_GET(LAN8814_DCQ_SQI_VAL_MASK, rc);
+}
+
+static int lan8814_get_sqi_max(struct phy_device *phydev)
+{
+ return LAN8814_DCQ_SQI_MAX;
+}
+
static struct phy_driver ksphy_driver[] = {
{
.phy_id = PHY_ID_KS8737,
@@ -3117,6 +3150,8 @@ static struct phy_driver ksphy_driver[] = {
.resume = kszphy_resume,
.config_intr = lan8814_config_intr,
.handle_interrupt = lan8814_handle_interrupt,
+ .get_sqi = lan8814_get_sqi,
+ .get_sqi_max = lan8814_get_sqi_max,
}, {
.phy_id = PHY_ID_LAN8804,
.phy_id_mask = MICREL_PHY_ID_MASK,
--
2.17.1
next reply other threads:[~2022-08-25 8:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-25 8:05 Divya Koppera [this message]
2022-08-25 13:19 ` [PATCH net-next] net: phy: micrel: Adding SQI support for lan8814 phy Andrew Lunn
2022-08-26 3:46 ` Divya.Koppera
2022-08-25 21:53 ` Andrew Lunn
2022-08-26 3:50 ` Divya.Koppera
2022-08-26 19:42 ` Andrew Lunn
2022-08-29 5:23 ` Divya.Koppera
2022-08-26 8:42 ` Michael Walle
2022-08-26 9:11 ` Divya.Koppera
2022-08-26 9:26 ` Michael Walle
2022-08-26 9:54 ` Oleksij Rempel
2022-08-26 10:43 ` Oleksij Rempel
2022-08-26 19:51 ` Andrew Lunn
2022-08-29 5:50 ` Divya.Koppera
2022-08-29 12:30 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220825080549.9444-1-Divya.Koppera@microchip.com \
--to=divya.koppera@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.